Compare commits

...

14 Commits

Author SHA1 Message Date
Jovan Krunić
68c5fcacbb 0.19.0 2019-05-17 12:33:37 +02:00
Karl-Philipp Wulfert
56d43bb59a build: update dependencies 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
2ad314eda6 docs: correct copyright years 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
f2a86fb6bd test: add tests to ensure consistency of model 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
198f48add4 test: adjust tests 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
5e29203e3d test: make sure to write report 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
ca72c20bd0 fix: adjust model to remove references from things without references
Fixes #69
2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
da0507ee34 fix: add thing without references, split thing
References #69
2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
1a73208c6f style: correct indentation and format in Thing.ts 2019-05-17 08:50:20 +00:00
Karl-Philipp Wulfert
1d6a2b7841 fix: remove references from origins
References #69
2019-05-17 08:50:20 +00:00
Jovan Krunić
e3d3d022c7 test: add test files for plugin routes 2019-05-16 17:05:25 +02:00
Jovan Krunić
bff6079f60 refactor: add plugin meta data interface
Closes #67
2019-05-16 17:05:24 +02:00
Jovan Krunić
bac09ffebc refactor: unify use of the image field
Closes #44
2019-05-15 14:22:35 +02:00
Karl-Philipp Wulfert
1c5a931e09 docs: update changelog 2019-05-14 14:42:41 +02:00
88 changed files with 1372 additions and 1070 deletions

View File

@@ -1,3 +1,12 @@
# [0.18.0](https://gitlab.com/openstapps/core/compare/v0.17.0...v0.18.0) (2019-05-14)
### Features
* add study module interface ([d3790ad](https://gitlab.com/openstapps/core/commit/d3790ad))
# [0.17.0](https://gitlab.com/openstapps/core/compare/v0.16.0...v0.17.0) (2019-04-16)

512
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "@openstapps/core",
"version": "0.18.0",
"version": "0.19.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -72,14 +72,6 @@
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
}
}
},
"@babel/parser": {
@@ -154,18 +146,28 @@
"dev": true
},
"@openstapps/configuration": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/@openstapps/configuration/-/configuration-0.12.0.tgz",
"integrity": "sha512-3gmpIqQ/QrUaams0xtUsysAwzlMAoxPzldGZjymMApgqzZArhjbSdd2S7KvgYeIZb+nA+etklr+LIcHyHQGxxQ==",
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@openstapps/configuration/-/configuration-0.14.0.tgz",
"integrity": "sha512-0eiupryX/yOD76Q/aNgY//0uoJ0v2OEGRunqQjfAXW5humTRH2wUKv89IdqbhqV+w2At0Qlg0xd8SvfSNL43JQ==",
"dev": true,
"requires": {
"@types/node": "10.14.4",
"@types/semver": "6.0.0",
"@types/yaml": "1.0.2",
"chalk": "2.4.2",
"commander": "2.20.0",
"tslint": "5.15.0",
"semver": "6.0.0",
"tslint": "5.16.0",
"tslint-eslint-rules": "5.4.0",
"yaml": "1.5.0"
},
"dependencies": {
"@types/node": {
"version": "10.14.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
"integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==",
"dev": true
}
}
},
"@openstapps/core-tools": {
@@ -198,26 +200,76 @@
"resolved": "https://registry.npmjs.org/@krlwlfrt/async-pool/-/async-pool-0.0.3.tgz",
"integrity": "sha512-/1kQ293t30sgnFRo/8cuMH2kE/kpf8K98yFLgJWYLnWy3SddbzDKK0J8JKy8LIf1wW+Tc833NazDluRxnVSA/g==",
"dev": true
},
"@openstapps/logger": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-0.0.5.tgz",
"integrity": "sha512-XzWt+5h4Y7ki0IFXrIuT7Qc6CHU+5QmrS0bf9wzP+OQ0qiEGb4KoJ3/y5CiXCebI3JC2wPJsUDpKYitV+kLWCQ==",
"dev": true,
"requires": {
"@types/circular-json": "0.4.0",
"@types/node": "10.12.18",
"@types/nodemailer": "4.6.5",
"circular-json": "0.5.9",
"nodemailer": "5.1.1"
},
"dependencies": {
"@types/node": {
"version": "10.12.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
"integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==",
"dev": true
}
}
},
"@types/node": {
"version": "10.14.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
"integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==",
"dev": true
},
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
}
}
},
"@openstapps/logger": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-0.0.5.tgz",
"integrity": "sha512-XzWt+5h4Y7ki0IFXrIuT7Qc6CHU+5QmrS0bf9wzP+OQ0qiEGb4KoJ3/y5CiXCebI3JC2wPJsUDpKYitV+kLWCQ==",
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-0.1.0.tgz",
"integrity": "sha512-5z7Yf3WrzayEVNPp1TBoGiCVgPlQtqzOFh0yQ06gac/vFedWLPLBmENGDdRoEKar8bXzghkxDLy6Rvj/8HEQaQ==",
"dev": true,
"requires": {
"@types/circular-json": "0.4.0",
"@types/node": "10.12.18",
"@types/nodemailer": "4.6.5",
"circular-json": "0.5.9",
"nodemailer": "5.1.1"
"@types/node": "10.14.6",
"@types/nodemailer": "4.6.8",
"chalk": "2.4.2",
"flatted": "2.0.0",
"nodemailer": "6.1.1"
},
"dependencies": {
"@types/node": {
"version": "10.12.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
"integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==",
"@types/nodemailer": {
"version": "4.6.8",
"resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-4.6.8.tgz",
"integrity": "sha512-IX1P3bxDP1VIdZf6/kIWYNmSejkYm9MOyMEtoDFi4DVzKjJ3kY4GhOcOAKs6lZRjqVVmF9UjPOZXuQczlpZThw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"nodemailer": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.1.1.tgz",
"integrity": "sha512-/x5MRIh56VyuuhLfcz+DL2SlBARpZpgQIf2A4Ao4hMb69MHSgDIMPwYmFwesGT1lkRDZ0eBSoym5+JoIZ3N+cQ==",
"dev": true
}
}
@@ -241,9 +293,9 @@
"dev": true
},
"@types/fs-extra": {
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.5.tgz",
"integrity": "sha512-w7iqhDH9mN8eLClQOYTkhdYUOSpp25eXxfc6VbFOGtzxW34JcvctH2bKjj4jD4++z4R5iO5D+pg48W2e03I65A==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.1.0.tgz",
"integrity": "sha512-AInn5+UBFIK9FK5xc9yP5e3TQSPNNgjHByqYcj9g5elVBnDQcQL7PlO1CIRy2gWlbwK7UPYqi7vRvFA44dCmYQ==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -286,9 +338,9 @@
"integrity": "sha512-MhCUjojzDhVLnZnxwPwa+rETFRDQ0ffjxYdrqOP6TBO2O0/Z64PV5tNeYApo4bc4y4frbWOrRwv/eEkXlI13Rw=="
},
"@types/lodash": {
"version": "4.14.123",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz",
"integrity": "sha512-pQvPkc4Nltyx7G1Ww45OjVqUsJP4UsZm+GWJpigXgkikZqJgRm4c48g027o6tdgubWHwFRF15iFd+Y4Pmqv6+Q==",
"version": "4.14.129",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.129.tgz",
"integrity": "sha512-oYaV0eSlnOacOr7i4X1FFdH8ttSlb57gu3I9MuStIv2CYkISEY84dNHYsC3bF6sNH7qYcu1BtVrCtQ8Q4KPTfQ==",
"dev": true
},
"@types/marked": {
@@ -316,10 +368,9 @@
"dev": true
},
"@types/node": {
"version": "10.14.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz",
"integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==",
"dev": true
"version": "10.14.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz",
"integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg=="
},
"@types/nodemailer": {
"version": "4.6.5",
@@ -341,6 +392,12 @@
"@types/node": "*"
}
},
"@types/semver": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.0.0.tgz",
"integrity": "sha512-OO0srjOGH99a4LUN2its3+r6CBYcplhJ466yLqs+zvAWgphCpS8hYZEZ797tRDP/QKcqTdb/YCN6ifASoAWkrQ==",
"dev": true
},
"@types/shelljs": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.5.tgz",
@@ -392,9 +449,9 @@
"dev": true
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"ansi-styles": {
@@ -475,44 +532,6 @@
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
},
"dependencies": {
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
}
}
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -622,23 +641,6 @@
"string-width": "^2.1.1",
"strip-ansi": "^4.0.0",
"wrap-ansi": "^2.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
}
}
},
"code-point-at": {
@@ -691,15 +693,15 @@
"dev": true
},
"conventional-changelog": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.4.tgz",
"integrity": "sha512-uMeTSzEb2oKFlL00Oh9j3+00PFq1MNneLzyy0TBftxo4PFrs7OiaRJXmXtEgSvJDdkc0RSd6ch2N+yTxPagZ0A==",
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.8.tgz",
"integrity": "sha512-fb3/DOLLrQdNqN0yYn/lT6HcNsAa9A+VTDBqlZBMQcEPPIeJIMI+DBs3yu+eiYOLi22w9oShq3nn/zN6qm1Hmw==",
"dev": true,
"requires": {
"conventional-changelog-angular": "^5.0.3",
"conventional-changelog-atom": "^2.0.1",
"conventional-changelog-codemirror": "^2.0.1",
"conventional-changelog-conventionalcommits": "^1.1.2",
"conventional-changelog-conventionalcommits": "^3.0.2",
"conventional-changelog-core": "^3.2.2",
"conventional-changelog-ember": "^2.0.2",
"conventional-changelog-eslint": "^3.0.2",
@@ -729,13 +731,13 @@
}
},
"conventional-changelog-cli": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.12.tgz",
"integrity": "sha512-6wh9W5Gpr9DM40E8cFi0qa6JotVm4Jq+suksuqgKnm544H8ZXsRhgGNXShDASOteY9brv9fX8/+fE/QL1wHqbA==",
"version": "2.0.21",
"resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.21.tgz",
"integrity": "sha512-gMT1XvSVmo9Np1WUXz8Mvt3K+OtzR+Xu13z0jq/3qsXBbLuYc2/oaUXVr68r3fYOL8E9dN2uvX7Hc7RkeWvRVA==",
"dev": true,
"requires": {
"add-stream": "^1.0.0",
"conventional-changelog": "^3.0.6",
"conventional-changelog": "^3.1.8",
"lodash": "^4.2.1",
"meow": "^4.0.0",
"tempfile": "^1.1.1"
@@ -751,9 +753,9 @@
}
},
"conventional-changelog-conventionalcommits": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-1.1.2.tgz",
"integrity": "sha512-t8VyibJHGrtsDwSHjgpW9v7oBbqDGQooCMo/a2rc0z5cousV5O11palcSPpyshEVWVijxPtzBNG02EQkMDJ8CA==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-3.0.2.tgz",
"integrity": "sha512-w1+fQSDnm/7+sPKIYC5nfRVYDszt+6HdWizrigSqWFVIiiBVzkHGeqDLMSHc+Qq9qssHVAxAak5206epZyK87A==",
"dev": true,
"requires": {
"compare-func": "^1.3.1",
@@ -849,6 +851,14 @@
"semver": "^5.5.0",
"split": "^1.0.0",
"through2": "^3.0.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"conventional-commits-filter": {
@@ -915,6 +925,14 @@
"semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"currently-unhandled": {
@@ -1191,6 +1209,12 @@
"is-buffer": "~2.0.3"
}
},
"flatted": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
"integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
"dev": true
},
"foreground-child": {
"version": "1.5.6",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
@@ -1573,6 +1597,14 @@
"requires": {
"meow": "^4.0.0",
"semver": "^5.5.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"gitconfiglocal": {
@@ -1585,9 +1617,9 @@
}
},
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -1599,9 +1631,9 @@
}
},
"globals": {
"version": "11.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
"integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
"globby": {
@@ -1658,15 +1690,6 @@
"function-bind": "^1.1.1"
}
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -1888,52 +1911,44 @@
"dev": true
},
"istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
"integrity": "sha512-LXTBICkMARVgo579kWDm8SqfB6nvSDKNqIOBEjmJRnL04JvoMHCYGWaMddQnseJYtkEuEvO/sIcOxPLk9gERug==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
"integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
"dev": true
},
"istanbul-lib-hook": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.6.tgz",
"integrity": "sha512-829DKONApZ7UCiPXcOYWSgkFXa4+vNYoNOt3F+4uDJLKL1OotAoVwvThoEj1i8jmOj7odbYcR3rnaHu+QroaXg==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
"integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
"dev": true,
"requires": {
"append-transform": "^1.0.0"
}
},
"istanbul-lib-instrument": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.2.0.tgz",
"integrity": "sha512-06IM3xShbNW4NgZv5AP4QH0oHqf1/ivFo8eFys0ZjPXHGldHJQWb3riYOKXqmOqfxXBfxu4B+g/iuhOPZH0RJg==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
"integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
"dev": true,
"requires": {
"@babel/generator": "^7.0.0",
"@babel/parser": "^7.0.0",
"@babel/template": "^7.0.0",
"@babel/traverse": "^7.0.0",
"@babel/types": "^7.0.0",
"istanbul-lib-coverage": "^2.0.4",
"@babel/generator": "^7.4.0",
"@babel/parser": "^7.4.3",
"@babel/template": "^7.4.0",
"@babel/traverse": "^7.4.3",
"@babel/types": "^7.4.0",
"istanbul-lib-coverage": "^2.0.5",
"semver": "^6.0.0"
},
"dependencies": {
"semver": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
"integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==",
"dev": true
}
}
},
"istanbul-lib-report": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.7.tgz",
"integrity": "sha512-wLH6beJBFbRBLiTlMOBxmb85cnVM1Vyl36N48e4e/aTKSM3WbOx7zbVIH1SQ537fhhsPbX0/C5JB4qsmyRXXyA==",
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
"integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
"dev": true,
"requires": {
"istanbul-lib-coverage": "^2.0.4",
"istanbul-lib-coverage": "^2.0.5",
"make-dir": "^2.1.0",
"supports-color": "^6.0.0"
"supports-color": "^6.1.0"
},
"dependencies": {
"supports-color": {
@@ -1948,15 +1963,15 @@
}
},
"istanbul-lib-source-maps": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.5.tgz",
"integrity": "sha512-eDhZ7r6r1d1zQPVZehLc3D0K14vRba/eBYkz3rw16DLOrrTzve9RmnkcwrrkWVgO1FL3EK5knujVe5S8QHE9xw==",
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
"integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
"dev": true,
"requires": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^2.0.4",
"istanbul-lib-coverage": "^2.0.5",
"make-dir": "^2.1.0",
"rimraf": "^2.6.2",
"rimraf": "^2.6.3",
"source-map": "^0.6.1"
},
"dependencies": {
@@ -1972,18 +1987,18 @@
}
},
"istanbul-reports": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.3.tgz",
"integrity": "sha512-T6EbPuc8Cb620LWAYyZ4D8SSn06dY9i1+IgUX2lTH8gbwflMc9Obd33zHTyNX653ybjpamAHS9toKS3E6cGhTw==",
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz",
"integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==",
"dev": true,
"requires": {
"handlebars": "^4.1.0"
"handlebars": "^4.1.2"
}
},
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
@@ -2179,6 +2194,14 @@
"requires": {
"pify": "^4.0.1",
"semver": "^5.6.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"make-error": {
@@ -2269,9 +2292,9 @@
}
},
"minimist": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
},
"minimist-options": {
@@ -2291,14 +2314,6 @@
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"mocha": {
@@ -2341,6 +2356,20 @@
"locate-path": "^3.0.0"
}
},
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -2547,9 +2576,9 @@
"dev": true
},
"neo-async": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
"integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
"dev": true
},
"nested-error-stacks": {
@@ -2572,6 +2601,14 @@
"requires": {
"object.getownpropertydescriptors": "^2.0.3",
"semver": "^5.7.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"nodemailer": {
@@ -2590,6 +2627,14 @@
"resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"npm-run-path": {
@@ -2608,9 +2653,9 @@
"dev": true
},
"nyc": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-14.0.0.tgz",
"integrity": "sha512-R1zC6UZak6pzn5BZQorkSH5GdOGafrwyeja+eimS5Tu+KJ/hCgBc8qA1QWSzxQmT2FDl2lbpqPw7tBDbSvhAHg==",
"version": "14.1.1",
"resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
"integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
"dev": true,
"requires": {
"archy": "^1.0.0",
@@ -2621,19 +2666,20 @@
"find-up": "^3.0.0",
"foreground-child": "^1.5.6",
"glob": "^7.1.3",
"istanbul-lib-coverage": "^2.0.4",
"istanbul-lib-hook": "^2.0.6",
"istanbul-lib-instrument": "^3.2.0",
"istanbul-lib-report": "^2.0.7",
"istanbul-lib-source-maps": "^3.0.5",
"istanbul-reports": "^2.2.2",
"istanbul-lib-coverage": "^2.0.5",
"istanbul-lib-hook": "^2.0.7",
"istanbul-lib-instrument": "^3.3.0",
"istanbul-lib-report": "^2.0.8",
"istanbul-lib-source-maps": "^3.0.6",
"istanbul-reports": "^2.2.4",
"js-yaml": "^3.13.1",
"make-dir": "^2.1.0",
"merge-source-map": "^1.1.0",
"resolve-from": "^4.0.0",
"rimraf": "^2.6.3",
"signal-exit": "^3.0.2",
"spawn-wrap": "^1.4.2",
"test-exclude": "^5.2.2",
"test-exclude": "^5.2.3",
"uuid": "^3.3.2",
"yargs": "^13.2.2",
"yargs-parser": "^13.0.0"
@@ -3104,9 +3150,9 @@
"dev": true
},
"resolve": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
"integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
"integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -3134,9 +3180,9 @@
"dev": true
},
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
"integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==",
"dev": true
},
"set-blocking": {
@@ -3313,23 +3359,6 @@
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
}
}
},
"string_decoder": {
@@ -3342,12 +3371,12 @@
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "^3.0.0"
}
},
"strip-bom": {
@@ -3391,20 +3420,12 @@
"requires": {
"os-tmpdir": "^1.0.0",
"uuid": "^2.0.1"
},
"dependencies": {
"uuid": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
"dev": true
}
}
},
"test-exclude": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.2.tgz",
"integrity": "sha512-N2pvaLpT8guUpb5Fe1GJlmvmzH3x+DAKmmyEQmFP792QcLYoGE1syxztSvPD1V8yPe6VrcCt6YGQVjSRjCASsA==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
"integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
"dev": true,
"requires": {
"glob": "^7.1.3",
@@ -3564,12 +3585,12 @@
"dev": true
},
"tslint": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.15.0.tgz",
"integrity": "sha512-6bIEujKR21/3nyeoX2uBnE8s+tMXCQXhqMmaIPJpHmXJoBJPTLcI7/VHRtUwMhnLVdwLqqY3zmd8Dxqa5CVdJA==",
"version": "5.16.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz",
"integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==",
"dev": true,
"requires": {
"babel-code-frame": "^6.22.0",
"@babel/code-frame": "^7.0.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
@@ -3582,6 +3603,14 @@
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.29.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
}
},
"tslint-eslint-rules": {
@@ -3667,15 +3696,15 @@
"dev": true
},
"typescript": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.3.tgz",
"integrity": "sha512-FFgHdPt4T/duxx6Ndf7hwgMZZjZpB+U0nMNGVCYPq0rEzWKjEDobm4J6yb3CS7naZ0yURFqdw9Gwc7UOh/P9oQ==",
"version": "3.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==",
"dev": true
},
"uglify-js": {
"version": "3.5.9",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.9.tgz",
"integrity": "sha512-WpT0RqsDtAWPNJK955DEnb6xjymR8Fn0OlK4TT4pS0ASYsVPqr5ELhgwOwLCP5J5vHeJ4xmMmz3DEgdqC10JeQ==",
"version": "3.5.12",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.12.tgz",
"integrity": "sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q==",
"dev": true,
"optional": true,
"requires": {
@@ -3704,6 +3733,12 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"uuid": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
"dev": true
},
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -3754,6 +3789,12 @@
"strip-ansi": "^3.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -3773,6 +3814,15 @@
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
}
}
},

View File

@@ -1,6 +1,6 @@
{
"name": "@openstapps/core",
"version": "0.18.0",
"version": "0.19.0",
"description": "StAppsCore - Generalized model of data",
"keywords": [
"Model",
@@ -22,7 +22,7 @@
"pack": "openstapps-core-tools pack",
"prepublishOnly": "npm ci && npm run build",
"schema": "node --max-old-space-size=8192 --stack-size=10240 ./node_modules/.bin/openstapps-core-tools schema src/core lib/schema",
"test": "nyc mocha --require ts-node/register --ui mocha-typescript test/*.spec.ts",
"test": "nyc mocha --require ts-node/register --require source-map-support/register --ui mocha-typescript test/*.spec.ts",
"tslint": "tslint 'src/**/*.ts'"
},
"author": "Karl-Philipp Wulfert <krlwlfrt@gmail.com>",
@@ -39,6 +39,7 @@
"dependencies": {
"@types/geojson": "1.0.6",
"@types/json-patch": "0.0.30",
"@types/node": "10.14.6",
"fast-clone": "1.5.13",
"json-patch": "0.7.0",
"jsonschema": "1.2.4",
@@ -46,23 +47,23 @@
},
"devDependencies": {
"@krlwlfrt/async-pool": "0.1.0",
"@openstapps/configuration": "0.12.0",
"@openstapps/configuration": "0.14.0",
"@openstapps/core-tools": "0.6.0",
"@openstapps/logger": "0.0.5",
"@openstapps/logger": "0.1.0",
"@types/chai": "4.1.7",
"@types/node": "10.14.4",
"@types/rimraf": "2.0.2",
"chai": "4.2.0",
"commander": "2.20.0",
"conventional-changelog-cli": "2.0.12",
"conventional-changelog-cli": "2.0.21",
"mocha": "6.1.4",
"mocha-typescript": "1.1.17",
"nyc": "14.0.0",
"nyc": "14.1.1",
"rimraf": "2.6.3",
"source-map-support": "0.5.12",
"ts-node": "8.1.0",
"tslint": "5.15.0",
"tslint": "5.16.0",
"typedoc": "0.14.2",
"typescript": "3.4.3"
"typescript": "3.4.5"
},
"nyc": {
"check-coverage": true,
@@ -70,7 +71,7 @@
"lines": 95,
"statements": 95,
"functions": 95,
"branches": 95,
"branches": 85,
"include": [
"src/core/Route.ts",
"src/core/Thing.ts",
@@ -85,5 +86,10 @@
"text-summary"
],
"all": true
},
"openstappsConfiguration": {
"hasCli": false,
"standardBuild": false,
"standardDocumentation": false
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -12,8 +12,8 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCOrganization} from './things/Organization';
import {SCPerson} from './things/Person';
import {SCOrganizationWithoutReferences} from './things/Organization';
import {SCPersonWithoutReferences} from './things/Person';
import {SCMetaTranslations, SCTranslations} from './types/i18n';
import {SCISO8601Date} from './types/Time';
import {SCUuid} from './types/UUID';
@@ -49,9 +49,9 @@ export enum SCThingType {
}
/**
* A thing
* A thing without references
*/
export interface SCThing {
export interface SCThingWithoutReferences {
/**
* Alternate names of the thing
*/
@@ -63,7 +63,7 @@ export interface SCThing {
*/
description?: string;
/**
* Image of the thing
* URL of an image of the thing
*/
image?: string;
/**
@@ -72,10 +72,6 @@ export interface SCThing {
* @minLength 1
*/
name: string;
/**
* Origin of the thing
*/
origin: SCThingRemoteOrigin | SCThingUserOrigin;
/**
* Translations of specific values of the object
*
@@ -96,6 +92,16 @@ export interface SCThing {
url?: string;
}
/**
* A thing
*/
export interface SCThing extends SCThingWithoutReferences {
/**
* Origin of the thing
*/
origin: SCThingRemoteOrigin | SCThingUserOrigin;
}
/**
* Possible types of an origin
*/
@@ -113,7 +119,7 @@ export interface SCThingOrigin {
*
* e.g. restaurant of a dish
*/
maintainer?: SCPerson | SCOrganization;
maintainer?: SCPersonWithoutReferences | SCOrganizationWithoutReferences;
/**
* When the thing was modified last in the origin
@@ -150,7 +156,7 @@ export interface SCThingRemoteOrigin extends SCThingOrigin {
*
* e.g. an organizer for an event
*/
responsibleEntity?: SCPerson | SCOrganization;
responsibleEntity?: SCPersonWithoutReferences | SCOrganizationWithoutReferences;
/**
* Type of the origin
@@ -256,7 +262,7 @@ export class SCThingMeta implements SCMetaTranslations<SCThing> {
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
type: 'Ding',
},
@@ -275,5 +281,6 @@ export class SCThingMeta implements SCMetaTranslations<SCThing> {
return this._instance.get(this.name) as T;
}
protected constructor() {}
protected constructor() {
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,39 +12,46 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing} from '../Thing';
import {SCThingMeta} from '../Thing';
import {SCThing, SCThingMeta, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
/**
* An academic degree without references
*/
export interface SCAcademicDegreeWithoutReferences extends SCThing {
export interface SCAcademicDegreeWithoutReferences
extends SCThingWithoutReferences {
/**
* The achievable academic degree
*/
academicDegree: SCGermanAcademicDegree;
/**
* The achievable academic degree with academic field specification
* The achievable academic degree with academic field specification
* (eg. Master of Science)
*/
academicDegreewithField: string;
/**
* The achievable academic degree with academic field specification
* The achievable academic degree with academic field specification
* shorted (eg. M.Sc.).
*/
academicDegreewithFieldShort: string;
}
export interface SCAcademicDegree extends SCAcademicDegreeWithoutReferences {
/**
* An academic degree
*/
export interface SCAcademicDegree
extends SCAcademicDegreeWithoutReferences, SCThing {
// noop
}
/**
* Meta information about academic degrees
*/
export class SCAcademicDegreeMeta extends SCThingMeta implements SCMetaTranslations<SCAcademicDegree> {
export class SCAcademicDegreeMeta
extends SCThingMeta
implements SCMetaTranslations<SCAcademicDegree> {
/**
* Translations of fields
*/
@@ -86,11 +93,12 @@ export class SCAcademicDegreeMeta extends SCThingMeta implements SCMetaTranslati
/**
* Types of (german) academic degrees
*/
export type SCGermanAcademicDegree = 'bachelor' |
'diploma' |
'doctor' |
'licentiate' |
'magister' |
'master' |
'master pupil' |
'state examination' ;
export type SCGermanAcademicDegree =
'bachelor'
| 'diploma'
| 'doctor'
| 'licentiate'
| 'magister'
| 'master'
| 'master pupil'
| 'state examination' ;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,14 +12,15 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta} from '../Thing';
import {SCThing, SCThingMeta, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
import {SCISO8601Date} from '../types/Time';
/**
* An academic term without references
*/
export interface SCAcademicTermWithoutReferences extends SCThing {
export interface SCAcademicTermWithoutReferences
extends SCThingWithoutReferences {
/**
* Short name of the academic term, using the given pattern
*/
@@ -46,31 +47,40 @@ export interface SCAcademicTermWithoutReferences extends SCThing {
startDate: SCISO8601Date;
}
/**
* An academic term
*/
export interface SCAcademicTerm
extends SCAcademicTermWithoutReferences, SCThing {
// noop
}
/**
* Meta information about academic terms
*/
export class SCAcademicTermWithoutReferencesMeta extends SCThingMeta implements SCMetaTranslations<SCThing> {
export class SCAcademicTermWithoutReferencesMeta
extends SCThingMeta implements SCMetaTranslations<SCThing> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingTranslatableProperties} from '../Thing';
import {SCThingMeta, SCThingTranslatableProperties, SCThingWithoutReferences} from '../Thing';
import {SCOrganizationWithoutReferences} from '../things/Organization';
import {SCPersonWithoutReferences} from '../things/Person';
import {SCLanguage, SCMetaTranslations, SCTranslations} from '../types/i18n';
@@ -21,12 +21,14 @@ import {
SCAcademicPriceGroup,
SCThingThatCanBeOffered,
SCThingThatCanBeOfferedTranslatableProperties,
SCThingThatCanBeOfferedWithoutReferences,
} from './ThingThatCanBeOffered';
/**
* A creative work without references
*/
export interface SCCreativeWorkWithoutReferences extends SCThing {
export interface SCCreativeWorkWithoutReferences
extends SCThingWithoutReferences, SCThingThatCanBeOfferedWithoutReferences {
/**
* Date the creative work was published
*/
@@ -51,7 +53,8 @@ export interface SCCreativeWorkWithoutReferences extends SCThing {
/**
* A creative work
*/
export interface SCCreativeWork extends SCCreativeWorkWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup> {
export interface SCCreativeWork
extends SCCreativeWorkWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup> {
/**
* Authors of the creative work
*/
@@ -82,28 +85,29 @@ export interface SCCreativeWorkTranslatableProperties
/**
* Meta information about creative works
*/
export class SCCreativeWorkMeta extends SCThingMeta implements SCMetaTranslations<SCCreativeWork> {
export class SCCreativeWorkMeta
extends SCThingMeta implements SCMetaTranslations<SCCreativeWork> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta} from '../Thing';
import {SCThing, SCThingMeta, SCThingWithoutReferences} from '../Thing';
import {SCCatalogWithoutReferences} from '../things/Catalog';
import {SCPersonWithoutReferences} from '../things/Person';
import {SCSemesterWithoutReferences} from '../things/Semester';
@@ -22,7 +22,8 @@ import {SCCreativeWorkWithoutReferences} from './CreativeWork';
/**
* An event without references
*/
export interface SCEventWithoutReferences extends SCThing {
export interface SCEventWithoutReferences
extends SCThingWithoutReferences {
/**
* Maximum number of participants of the event
*
@@ -41,7 +42,8 @@ export interface SCEventWithoutReferences extends SCThing {
/**
* An event
*/
export interface SCEvent extends SCEventWithoutReferences {
export interface SCEvent
extends SCEventWithoutReferences, SCThing {
/**
* Academic terms that an event belongs to, e.g. semester(s).
*/
@@ -73,28 +75,29 @@ export interface SCEvent extends SCEventWithoutReferences {
/**
* Meta information about events
*/
export class SCEventMeta extends SCThingMeta implements SCMetaTranslations<SCEvent> {
export class SCEventMeta
extends SCThingMeta implements SCMetaTranslations<SCEvent> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingTranslatableProperties} from '../Thing';
import {SCThing, SCThingMeta, SCThingTranslatableProperties, SCThingWithoutReferences} from '../Thing';
import {SCGeoInformation} from '../types/GeoInformation';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCPostalAddress} from '../types/PostalAddress';
@@ -20,7 +20,8 @@ import {SCPostalAddress} from '../types/PostalAddress';
/**
* A place without references
*/
export interface SCPlaceWithoutReferences extends SCThing {
export interface SCPlaceWithoutReferences
extends SCThingWithoutReferences {
/**
* Address of the place
*/
@@ -44,38 +45,53 @@ export interface SCPlaceWithoutReferences extends SCThing {
* Translated fields of a place
*/
translations?: SCTranslations<SCPlaceWithoutReferencesTranslatableProperties>;
}
export interface SCPlaceWithoutReferencesTranslatableProperties extends SCThingTranslatableProperties {
/**
* A place
*/
export interface SCPlace
extends SCPlaceWithoutReferences, SCThing {
/**
* Translated fields of a place
*/
translations?: SCTranslations<SCPlaceWithoutReferencesTranslatableProperties>;
}
/**
* Translatable properties of a place without references
*/
export interface SCPlaceWithoutReferencesTranslatableProperties
extends SCThingTranslatableProperties {
address?: SCPostalAddress;
}
/**
* Meta information about creative works
*/
export class SCPlaceWithoutReferencesMeta extends SCThingMeta implements SCMetaTranslations<SCPlaceWithoutReferences> {
export class SCPlaceWithoutReferencesMeta
extends SCThingMeta implements SCMetaTranslations<SCPlaceWithoutReferences> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018, 2019 StApps
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,24 +12,27 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingUserOrigin} from '../Thing';
import {SCThing, SCThingUserOrigin, SCThingWithoutReferences} from '../Thing';
/**
* An encapsulation of the data (e.g. a thing) that is saved, which provides additional information.
*/
export interface SCSaveableThingWithoutReferences extends SCThing {
export interface SCSaveableThingWithoutReferences
extends SCThingWithoutReferences {
// noop
}
/**
* An encapsulation of the data (e.g. a thing) that is saved, which provides additional information.
*/
export interface SCSaveableThing<T extends SCThingWithoutReferences>
extends SCSaveableThingWithoutReferences, SCThing {
/**
* The contained data
*/
data: T;
/**
* Type of the origin
*/
origin: SCThingUserOrigin;
}
/**
* An encapsulation of the data (e.g. a thing) that is saved, which provides additional information.
*/
export interface SCSaveableThing<T extends SCThing> extends SCSaveableThingWithoutReferences {
/**
* The contained data
*/
data: T;
}

View File

@@ -19,22 +19,26 @@ import {SCInPlace} from '../types/Places';
/**
* A thing that is or happens in a place
*/
export interface SCThingInPlace extends SCThing, SCInPlace {}
export interface SCThingInPlace
extends SCThing, SCInPlace {
// noop
}
/**
* Meta information about thing in a place
*/
export class SCThingInPlaceMeta extends SCThingMeta implements SCMetaTranslations<SCThingInPlace> {
export class SCThingInPlaceMeta
extends SCThingMeta implements SCMetaTranslations<SCThingInPlace> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
inPlace: 'Ort',
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
inPlace: 'location',
},
};
@@ -42,12 +46,12 @@ export class SCThingInPlaceMeta extends SCThingMeta implements SCMetaTranslation
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta} from '../Thing';
import {SCThing, SCThingMeta, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
/**
@@ -24,41 +24,50 @@ export type SCThingThatAcceptsPaymentsAcceptedPayments =
| 'Cafeteria Card';
/**
* A place without references that accepts payments
* A thing without references that accepts payments
*/
export interface SCThingThatAcceptsPaymentsWithoutReferences extends SCThing {
export interface SCThingThatAcceptsPaymentsWithoutReferences
extends SCThingWithoutReferences {
/**
* Accepted payments of the place
*/
paymentsAccepted?: SCThingThatAcceptsPaymentsAcceptedPayments[];
}
/**
* A thing that accepts payments
*/
export interface SCThingThatAcceptsPayments
extends SCThingThatAcceptsPaymentsWithoutReferences, SCThing {
// noop
}
/**
* Meta information about a thing without references that accepts payments
*/
export class SCThingThatAcceptsPaymentsWithoutReferencesMeta extends SCThingMeta implements
SCMetaTranslations<SCThingThatAcceptsPaymentsWithoutReferences> {
export class SCThingThatAcceptsPaymentsWithoutReferencesMeta
extends SCThingMeta implements SCMetaTranslations<SCThingThatAcceptsPaymentsWithoutReferences> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};
}

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingTranslatableProperties} from '../Thing';
import {SCThing, SCThingTranslatableProperties, SCThingWithoutReferences} from '../Thing';
import {SCOrganizationWithoutReferences} from '../things/Organization';
import {SCPersonWithoutReferences} from '../things/Person';
import {SCTranslations} from '../types/i18n';
@@ -32,7 +32,8 @@ export interface SCPriceGroup {
/**
* Price distinctions for academic context
*/
export interface SCAcademicPriceGroup extends SCPriceGroup {
export interface SCAcademicPriceGroup
extends SCPriceGroup {
/**
* Price for employees
*/
@@ -52,7 +53,8 @@ export interface SCAcademicPriceGroup extends SCPriceGroup {
/**
* A thing without references that can be offered
*/
export interface SCThingThatCanBeOfferedWithoutReferences extends SCThing {
export interface SCThingThatCanBeOfferedWithoutReferences
extends SCThingWithoutReferences {
/**
* Translations of a thing that can be offered
*/
@@ -63,11 +65,16 @@ export interface SCThingThatCanBeOfferedWithoutReferences extends SCThing {
* A thing that can be offered
*/
export interface SCThingThatCanBeOffered<T extends SCPriceGroup>
extends SCThing {
extends SCThing, SCThingThatCanBeOfferedWithoutReferences {
/**
* List of offers for that thing
*/
offers?: Array<SCThingThatCanBeOfferedOffer<T>>;
/**
* Translations of a thing that can be offered
*/
translations?: SCTranslations<SCThingThatCanBeOfferedTranslatableProperties>;
}
/**

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingTranslatableProperties} from '../Thing';
import {SCThing, SCThingMeta, SCThingTranslatableProperties, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCMap} from '../types/Map';
@@ -22,9 +22,8 @@ import {SCMap} from '../types/Map';
* !!! BEWARE !!!
* `T` should be a union type - e.g. `T = 'foo' | 'bar' | 'foobar';`
*/
export interface SCThingWithCategoriesWithoutReferences<T,
U extends SCThingWithCategoriesSpecificValues>
extends SCThing {
export interface SCThingWithCategoriesWithoutReferences<T, U extends SCThingWithCategoriesSpecificValues>
extends SCThingWithoutReferences {
/**
* Categories of a thing with categories
*/
@@ -43,10 +42,22 @@ export interface SCThingWithCategoriesWithoutReferences<T,
translations?: SCTranslations<SCThingWithCategoriesTranslatableProperties>;
}
/**
* A thing with categories
*/
export interface SCThingWithCategories<T, U extends SCThingWithCategoriesSpecificValues>
extends SCThing, SCThingWithCategoriesWithoutReferences<T, U> {
/**
* Translated fields of a thing with categories
*/
translations?: SCTranslations<SCThingWithCategoriesTranslatableProperties>;
}
/**
* Translatable properties of a thing with categories
*/
export interface SCThingWithCategoriesTranslatableProperties extends SCThingTranslatableProperties {
export interface SCThingWithCategoriesTranslatableProperties
extends SCThingTranslatableProperties {
/**
* translations of the categories of a thing with categories
*/
@@ -70,7 +81,7 @@ export interface SCThingWithCategoriesSpecificValues {
description?: string;
/**
* Category specific image of a thing
* URL of a category specific image of a thing
*/
image?: string;
@@ -88,8 +99,8 @@ export interface SCThingWithCategoriesSpecificValues {
/**
* Meta information about a thing without references that accepts payments
*/
export class SCThingWithCategoriesWithoutReferencesMeta<T, U> implements
SCMetaTranslations<SCThingWithCategoriesWithoutReferences<T, U>> {
export class SCThingWithCategoriesWithoutReferencesMeta<T, U>
implements SCMetaTranslations<SCThingWithCategoriesWithoutReferences<T, U>> {
protected static _instance: SCThingMeta;
@@ -98,22 +109,22 @@ export class SCThingWithCategoriesWithoutReferencesMeta<T, U> implements
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
},
};

View File

@@ -1,23 +0,0 @@
/*
* Copyright (C) 2018 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingTranslatableProperties} from '../Thing';
import {SCTranslations} from '../types/i18n';
/**
* A thing that has translations
*/
export interface SCThingWithTranslations extends SCThing {
translations: SCTranslations<SCThingTranslatableProperties>;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -29,40 +29,27 @@ import {
*
* @validatable
*/
export type SCPluginRegisterRequest = AddPlugin | RemovePlugin;
interface AddPlugin {
export type SCPluginRegisterRequest = SCPluginAdd | SCPluginRemove;
/**
* Plugin request for adding a plugin registration to the backend
*/
export interface SCPluginAdd {
/**
* The desired action, so whether the plugin should be added or removed
*/
action: 'add';
/**
* The address of the plugin
* Plugin information needed for its registration
*/
address: string;
/**
* The name of the plugin
* Just for debugging purposes, to more easily identify conflicts.
*/
name: string;
/**
* How the requests of the plugin looks like, a JSON schema for validation
*/
pluginRequestSchema: Schema;
/**
* How the responses of the plugin looks like, a JSON schema for validation
*/
pluginResponseSchema: Schema;
/**
* The desired route, for example /feedback.
*/
route: string;
plugin: SCPluginMetaData;
}
interface RemovePlugin {
/**
* Plugin request for removing a plugin registration from the backend
*/
export interface SCPluginRemove {
/**
* The desired action, so whether the plugin should be added or removed
*/
@@ -74,6 +61,36 @@ interface RemovePlugin {
route: string;
}
/**
* Plugin meta data - contains needed information for a plugin registration
*/
export interface SCPluginMetaData {
/**
* The address of the plugin, to which the backend routes the requests
*/
address: string;
/**
* The name of the plugin (for debugging purposes, to more easily identify conflicts)
*/
name: string;
/**
* How the requests of the plugin looks like, a JSON schema for validation
*/
requestSchema: Schema;
/**
* How the responses of the plugin looks like, a JSON schema for validation
*/
responseSchema: Schema;
/**
* The desired route, for example /feedback.
*/
route: string;
}
/**
* Route to register plugins
*/
@@ -85,7 +102,6 @@ export class SCPluginRegisterRoute extends SCAbstractRoute {
SCMethodNotAllowedErrorResponse,
SCParametersNotAcceptable,
SCPluginAlreadyRegisteredErrorResponse,
SCPluginRouteAlreadyRegisteredErrorResponse,
SCPluginRegisteringFailedErrorResponse,
SCPluginRouteAlreadyRegisteredErrorResponse,
SCRequestBodyTooLargeErrorResponse,

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -14,6 +14,7 @@
*/
import {SCEvent, SCEventMeta, SCEventWithoutReferences} from '../base/Event';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -27,8 +28,7 @@ import {SCMetaTranslations, SCTranslations} from '../types/i18n';
*/
export interface SCAcademicEventWithoutReferences
extends SCEventWithoutReferences,
SCThingWithCategoriesWithoutReferences<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues> {
SCThingWithCategoriesWithoutReferences<SCAcademicEventCategories, SCThingWithCategoriesSpecificValues> {
/**
* Majors of the academic event that this event belongs to
*/
@@ -55,7 +55,9 @@ export interface SCAcademicEventWithoutReferences
*
* @validatable
*/
export interface SCAcademicEvent extends SCEvent, SCAcademicEventWithoutReferences {
export interface SCAcademicEvent
extends SCEvent, SCAcademicEventWithoutReferences,
SCThingWithCategories<SCAcademicEventCategories, SCThingWithCategoriesSpecificValues> {
/**
* Translated fields of an academic event
*/
@@ -104,37 +106,39 @@ export interface SCAcademicEventTranslatableProperties
/**
* Meta information about academic events
*/
export class SCAcademicEventMeta extends SCThingMeta implements SCMetaTranslations<SCAcademicEvent> {
export class SCAcademicEventMeta
extends SCThingMeta
implements SCMetaTranslations<SCAcademicEvent> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCEventMeta.getInstance().fieldTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCEventMeta.getInstance().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
},
en: {
... SCEventMeta.getInstance().fieldTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCEventMeta.getInstance().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCEventMeta.getInstance().fieldValueTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCEventMeta.getInstance().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
type: 'akademische Veranstaltung',
},
en: {
... SCEventMeta.getInstance().fieldValueTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCEventMeta.getInstance().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCAcademicEventCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
type: SCThingType.AcademicEvent,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -19,6 +19,7 @@ import {
SCCreativeWorkWithoutReferences,
} from '../base/CreativeWork';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -32,8 +33,7 @@ import {SCMetaTranslations, SCTranslations} from '../types/i18n';
*/
export interface SCArticleWithoutReferences
extends SCCreativeWorkWithoutReferences,
SCThingWithCategoriesWithoutReferences<SCArticleCategories,
SCThingWithCategoriesSpecificValues> {
SCThingWithCategoriesWithoutReferences<SCArticleCategories, SCThingWithCategoriesSpecificValues> {
/**
* Article itself as markdown
*/
@@ -55,7 +55,9 @@ export interface SCArticleWithoutReferences
*
* @validatable
*/
export interface SCArticle extends SCCreativeWork, SCArticleWithoutReferences {
export interface SCArticle
extends SCCreativeWork, SCArticleWithoutReferences,
SCThingWithCategories<SCArticleCategories, SCThingWithCategoriesSpecificValues> {
/**
* Translated fields of an article
*/
@@ -86,37 +88,38 @@ export interface SCArticleTranslatableProperties
/**
* Meta information about an article
*/
export class SCArticleMeta extends SCThingMeta implements SCMetaTranslations<SCArticle> {
export class SCArticleMeta
extends SCThingMeta implements SCMetaTranslations<SCArticle> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
},
en: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
type: 'Artikel',
},
en: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCArticleCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
type: SCThingType.Article,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -26,7 +26,8 @@ import {SCPersonWithoutReferences} from './Person';
/**
* A book without references
*/
export interface SCBookWithoutReferences extends SCCreativeWorkWithoutReferences {
export interface SCBookWithoutReferences
extends SCCreativeWorkWithoutReferences {
/**
* Edition of a book
*/
@@ -58,7 +59,8 @@ export interface SCBookWithoutReferences extends SCCreativeWorkWithoutReferences
*
* @validatable
*/
export interface SCBook extends SCCreativeWork, SCBookWithoutReferences {
export interface SCBook
extends SCCreativeWork, SCBookWithoutReferences {
/**
* Authors of the creative work
*/
@@ -95,23 +97,23 @@ export class SCBookMeta extends SCThingMeta implements SCMetaTranslations<SCBook
*/
fieldTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldTranslations.de,
},
en: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
type: 'Buch',
},
en: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Book,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -13,11 +13,13 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {
SCPlace,
SCPlaceWithoutReferences,
SCPlaceWithoutReferencesMeta,
SCPlaceWithoutReferencesTranslatableProperties,
} from '../base/Place';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -37,8 +39,7 @@ export type SCBuildingCategories =
| 'restroom';
export interface SCBuildingWithoutReferences
extends SCThingWithCategoriesWithoutReferences<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>,
extends SCThingWithCategoriesWithoutReferences<SCBuildingCategories, SCThingWithCategoriesSpecificValues>,
SCPlaceWithoutReferences {
/**
* Categories of a building
@@ -66,7 +67,9 @@ export interface SCBuildingWithoutReferences
*
* @validatable
*/
export interface SCBuilding extends SCBuildingWithoutReferences {
export interface SCBuilding
extends SCBuildingWithoutReferences, SCPlace,
SCThingWithCategories<SCBuildingCategories, SCThingWithCategoriesSpecificValues> {
/**
* Translated fields of a building
*/
@@ -79,39 +82,41 @@ export interface SCBuilding extends SCBuildingWithoutReferences {
}
export interface SCBuildingTranslatableProperties
extends SCPlaceWithoutReferencesTranslatableProperties, SCThingWithCategoriesTranslatableProperties {
extends SCPlaceWithoutReferencesTranslatableProperties, SCThingWithCategoriesTranslatableProperties {
floors?: string[];
}
/**
* Meta information about a place
*/
export class SCBuildingMeta extends SCThingMeta implements SCMetaTranslations<SCBuilding> {
/**
* Meta information about a place
*/
export class SCBuildingMeta
extends SCThingMeta
implements SCMetaTranslations<SCBuilding> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
floors: 'Etagen',
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
categories: {
'cafe': 'Café',
'canteen': 'Kantine',
@@ -125,9 +130,9 @@ export class SCBuildingMeta extends SCThingMeta implements SCMetaTranslations<SC
type: 'Gebäude',
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCBuildingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Building,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -14,19 +14,20 @@
*/
import {SCAcademicTermWithoutReferences} from '../base/AcademicTerm';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
SCThingWithCategoriesWithoutReferencesMeta,
} from '../base/ThingWithCategories';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
/**
* A catalog without references
*/
export interface SCCatalogWithoutReferences
extends SCThingWithCategoriesWithoutReferences<SCCatalogCategories,
SCThingWithCategoriesSpecificValues> {
extends SCThingWithCategoriesWithoutReferences<SCCatalogCategories, SCThingWithCategoriesSpecificValues> {
/**
* Level of the catalog (0 for 'root catalog', 1 for its subcatalog, 2 for its subcatalog etc.)
*
@@ -45,7 +46,9 @@ export interface SCCatalogWithoutReferences
*
* @validatable
*/
export interface SCCatalog extends SCCatalogWithoutReferences {
export interface SCCatalog
extends SCCatalogWithoutReferences, SCThing,
SCThingWithCategories<SCCatalogCategories, SCThingWithCategoriesSpecificValues> {
/**
* Academic term that a catalog belongs to (e.g. semester)
*/
@@ -61,42 +64,48 @@ export interface SCCatalog extends SCCatalogWithoutReferences {
*/
superCatalogs?: SCCatalogWithoutReferences[];
/**
* Translated fields of a catalog
*/
translations?: SCTranslations<SCThingWithCategoriesTranslatableProperties>;
/**
* Type of a catalog
*/
type: SCThingType.Catalog;
}
/**
* Catalog meta data
*/
export class SCCatalogMeta extends SCThingMeta implements SCMetaTranslations<SCCatalog> {
/**
* Catalog meta data
*/
export class SCCatalogMeta
extends SCThingMeta implements SCMetaTranslations<SCCatalog> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
type: 'Verzeichnis',
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCCatalogCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
type: SCThingType.Catalog,
},
};

View File

@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCAcademicDegree, SCAcademicDegreeMeta} from '../base/AcademicDegree';
import {SCAcademicDegree, SCAcademicDegreeMeta, SCAcademicDegreeWithoutReferences} from '../base/AcademicDegree';
import {
SCAcademicPriceGroup,
SCThingThatCanBeOffered,
@@ -22,13 +22,13 @@ import {
import {SCThingMeta, SCThingType} from '../Thing';
import {SCLanguage, SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCDateSeriesWithoutReferences} from './DateSeries';
import {SCOrganization} from './Organization';
import {SCOrganizationWithoutReferences} from './Organization';
/**
* A course of studies without references
*/
export interface SCCourseOfStudiesWithoutReferences extends SCAcademicDegree,
SCThingThatCanBeOfferedWithoutReferences {
export interface SCCourseOfStudiesWithoutReferences
extends SCAcademicDegreeWithoutReferences, SCThingThatCanBeOfferedWithoutReferences {
/**
* The main language in which the course of studies
* is beeing offered
@@ -66,18 +66,18 @@ export interface SCCourseOfStudiesWithoutReferences extends SCAcademicDegree,
*
* @validatable
*/
export interface SCCourseOfStudies extends SCCourseOfStudiesWithoutReferences,
SCThingThatCanBeOffered<SCAcademicPriceGroup> {
export interface SCCourseOfStudies
extends SCCourseOfStudiesWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>, SCAcademicDegree {
/**
* The department that manages the course of studies
*/
department: SCOrganization;
department: SCOrganizationWithoutReferences;
/**
* The secretary that administers requests and
* questions concerning the course of studies
*/
secretary: SCOrganization;
secretary: SCOrganizationWithoutReferences;
/**
* Dates at which the course of studies is planned to start
@@ -85,7 +85,7 @@ export interface SCCourseOfStudies extends SCCourseOfStudiesWithoutReferences,
startDates?: SCDateSeriesWithoutReferences[];
/**
* Translated fields of a dish
* Translated fields of a course of studies
*/
translations?: SCTranslations<SCCourseOfStudiesTranslatableProperties>;
@@ -95,14 +95,20 @@ export interface SCCourseOfStudies extends SCCourseOfStudiesWithoutReferences,
type: SCThingType.CourseOfStudies;
}
/**
* Translatable properties of a course of studies
*/
export interface SCCourseOfStudiesTranslatableProperties
extends SCThingThatCanBeOfferedTranslatableProperties {
// noop
}
/**
* Meta information about a course of studies
*/
export class SCCourseOfStudiesMeta extends SCThingMeta implements SCMetaTranslations<SCCourseOfStudies> {
export class SCCourseOfStudiesMeta
extends SCThingMeta
implements SCMetaTranslations<SCCourseOfStudies> {
/**
* Translations of fields
*/

View File

@@ -29,7 +29,8 @@ import {SCSportCourseWithoutReferences} from './SportCourse';
/**
* Price groups for sport courses
*/
export interface SCSportCoursePriceGroup extends SCAcademicPriceGroup {
export interface SCSportCoursePriceGroup
extends SCAcademicPriceGroup {
/**
* Price for alumnis
*/
@@ -39,7 +40,8 @@ export interface SCSportCoursePriceGroup extends SCAcademicPriceGroup {
/**
* A date without references
*/
export interface SCDateSeriesWithoutReferences extends SCThingThatCanBeOfferedWithoutReferences {
export interface SCDateSeriesWithoutReferences
extends SCThingThatCanBeOfferedWithoutReferences {
/**
* Dates of the date series that are initially planned to be held
*/
@@ -76,9 +78,10 @@ export interface SCDateSeriesWithoutReferences extends SCThingThatCanBeOfferedWi
*
* @validatable
*/
export interface SCDateSeries extends SCDateSeriesWithoutReferences,
SCThingInPlace,
SCThingThatCanBeOffered<SCSportCoursePriceGroup> {
export interface SCDateSeries
extends SCDateSeriesWithoutReferences,
SCThingInPlace,
SCThingThatCanBeOffered<SCSportCoursePriceGroup> {
/**
* Event to which the date series belongs
*/
@@ -104,7 +107,9 @@ export interface SCDateSeries extends SCDateSeriesWithoutReferences,
/**
* Meta information about a date series
*/
export class SCDateSeriesMeta extends SCThingMeta implements SCMetaTranslations<SCDateSeries> {
export class SCDateSeriesMeta
extends SCThingMeta
implements SCMetaTranslations<SCDateSeries> {
/**
* Translations of fields
*/

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -14,14 +14,15 @@
*/
import * as jsonpatch from 'json-patch';
import {SCThingsWithoutDiff} from '../Classes';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCThing, SCThingMeta, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
import {SCISO8601Date} from '../types/Time';
/**
* A diff without references
*/
export interface SCDiffWithoutReferences extends SCThing {
export interface SCDiffWithoutReferences
extends SCThingWithoutReferences {
/**
* Action of the diff
*/
@@ -48,7 +49,8 @@ export interface SCDiffWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCDiff extends SCDiffWithoutReferences {
export interface SCDiff
extends SCDiffWithoutReferences, SCThing {
/**
* Original object the diff was generated on
*/
@@ -63,32 +65,34 @@ export interface SCDiff extends SCDiffWithoutReferences {
/**
* Meta information about a diff
*/
export class SCDiffMeta extends SCThingMeta implements SCMetaTranslations<SCDiff> {
export class SCDiffMeta
extends SCThingMeta
implements SCMetaTranslations<SCDiff> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
action: 'Aktion',
changes: 'Änderungen',
dateCreated: 'Erstellungsdatum',
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
type: 'Unterschied',
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Diff,
},
};

View File

@@ -19,6 +19,7 @@ import {
SCThingThatCanBeOfferedWithoutReferences,
} from '../base/ThingThatCanBeOffered';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -30,8 +31,9 @@ import {SCMetaTranslations, SCTranslations} from '../types/i18n';
/**
* A dish without references
*/
export interface SCDishWithoutReferences extends SCThingThatCanBeOfferedWithoutReferences,
SCThingWithCategoriesWithoutReferences<SCDishCategories, SCThingWithCategoriesSpecificValues> {
export interface SCDishWithoutReferences
extends SCThingThatCanBeOfferedWithoutReferences,
SCThingWithCategoriesWithoutReferences<SCDishCategories, SCThingWithCategoriesSpecificValues> {
/**
* Additives of the dish
*/
@@ -68,8 +70,9 @@ export interface SCDishWithoutReferences extends SCThingThatCanBeOfferedWithoutR
*
* @validatable
*/
export interface SCDish extends SCDishWithoutReferences,
SCThingThatCanBeOffered<SCAcademicPriceGroup> {
export interface SCDish
extends SCDishWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup>,
SCThingWithCategories<SCDishCategories, SCThingWithCategoriesSpecificValues> {
/**
* Dishes ("Beilagen") that are served with the dish (if only certain supplement dishes can be taken with a dish)
*/
@@ -99,7 +102,7 @@ export interface SCDishTranslatableProperties
*/
export interface SCDishCharacteristic {
/**
* URL to the image of the characteristic
* URL of an image of the characteristic
*/
image?: string;
@@ -165,7 +168,9 @@ export interface SCNutritionInformation {
/**
* Meta information about a dish
*/
export class SCDishMeta extends SCThingMeta implements SCMetaTranslations<SCDish> {
export class SCDishMeta
extends SCThingMeta
implements SCMetaTranslations<SCDish> {
/**
* Translations of fields
*/

View File

@@ -40,8 +40,9 @@ export type SCFavoriteDataTypes = SCAcademicEventWithoutReferences
/**
* A favorite without references
*/
export interface SCFavoriteWithoutReferences extends SCSaveableThingWithoutReferences {
export interface SCFavoriteWithoutReferences
extends SCSaveableThingWithoutReferences {
// noop
}
/**
@@ -49,7 +50,8 @@ export interface SCFavoriteWithoutReferences extends SCSaveableThingWithoutRefer
*
* @validatable
*/
export interface SCFavorite extends SCSaveableThing<SCFavoriteDataTypes> {
export interface SCFavorite
extends SCSaveableThing<SCFavoriteDataTypes>, SCFavoriteWithoutReferences {
/**
* Type of a favorite
*/
@@ -59,5 +61,6 @@ export interface SCFavorite extends SCSaveableThing<SCFavoriteDataTypes> {
/**
* Meta information about a favorite
*/
export class SCFavoriteMeta extends SCThingMeta {
export class SCFavoriteMeta
extends SCThingMeta {
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -14,7 +14,7 @@
*/
import {Feature, FeatureCollection, GeometryObject, LineString} from 'geojson';
import {SCThingInPlace, SCThingInPlaceMeta} from '../base/ThingInPlace';
import {SCThing, SCThingMeta, SCThingTranslatableProperties, SCThingType} from '../Thing';
import {SCThingMeta, SCThingTranslatableProperties, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCPointOfInterestWithoutReferences} from './PointOfInterest';
import {SCRoomWithoutReferences} from './Room';
@@ -22,7 +22,8 @@ import {SCRoomWithoutReferences} from './Room';
/**
* A floor without references
*/
export interface SCFloorWithoutReferences extends SCThing {
export interface SCFloorWithoutReferences
extends SCThingWithoutReferences {
/**
* Floor name in the place it is in e.g. "first floor", "ground floor". This doesn't reference the building name.
*/
@@ -49,7 +50,8 @@ export interface SCFloorWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCFloor extends SCFloorWithoutReferences, SCThingInPlace {
export interface SCFloor
extends SCFloorWithoutReferences, SCThingInPlace {
/**
* Translated fields of a floor
*/
@@ -86,7 +88,8 @@ export interface SCFloorFeatureWithPlace<T extends GeometryObject, P = any>
/**
* Translatable properties of a floor
*/
export interface SCFloorTranslatableProperties extends SCThingTranslatableProperties {
export interface SCFloorTranslatableProperties
extends SCThingTranslatableProperties {
/**
* Translation of the floor name
*/
@@ -96,29 +99,31 @@ export interface SCFloorTranslatableProperties extends SCThingTranslatableProper
/**
* Meta information about floors
*/
export class SCFloorMeta extends SCThingMeta implements SCMetaTranslations<SCFloor> {
export class SCFloorMeta
extends SCThingMeta
implements SCMetaTranslations<SCFloor> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingInPlaceMeta.getInstance().fieldTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingInPlaceMeta.getInstance().fieldTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
type: 'Etage',
},
en: {
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Floor,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -26,7 +26,8 @@ import {SCISO8601Date} from '../types/Time';
/**
* A message without references
*/
export interface SCMessageWithoutReferences extends SCCreativeWorkWithoutReferences {
export interface SCMessageWithoutReferences
extends SCCreativeWorkWithoutReferences {
/**
* Audience of the message
*/
@@ -58,7 +59,8 @@ export interface SCMessageWithoutReferences extends SCCreativeWorkWithoutReferen
*
* @validatable
*/
export interface SCMessage extends SCCreativeWork, SCMessageWithoutReferences {
export interface SCMessage
extends SCCreativeWork, SCMessageWithoutReferences {
/**
* Translated fields of a message
*/
@@ -92,29 +94,31 @@ export interface SCMessageTranslatableProperties
/**
* Meta information about messages
*/
export class SCMessageMeta extends SCThingMeta implements SCMetaTranslations<SCMessage> {
export class SCMessageMeta
extends SCThingMeta
implements SCMetaTranslations<SCMessage> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldTranslations.de,
},
en: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
type: 'Nachricht',
},
en: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Message,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -13,12 +13,13 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThingInPlace} from '../base/ThingInPlace';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCThingMeta, SCThingType, SCThingWithoutReferences} from '../Thing';
/**
* An organization without references
*/
export interface SCOrganizationWithoutReferences extends SCThing {
export interface SCOrganizationWithoutReferences
extends SCThingWithoutReferences {
/**
* Type of an organization
*/
@@ -30,7 +31,8 @@ export interface SCOrganizationWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCOrganization extends SCOrganizationWithoutReferences, SCThingInPlace {
export interface SCOrganization
extends SCOrganizationWithoutReferences, SCThingInPlace {
/**
* Type of an organization
*/

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,7 +12,7 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCThing, SCThingMeta, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations, SCNationality} from '../types/i18n';
import {SCISO8601Date} from '../types/Time';
import {SCBuildingWithoutReferences} from './Building';
@@ -23,7 +23,8 @@ import {SCRoomWithoutReferences} from './Room';
/**
* A person without references
*/
export interface SCPersonWithoutReferences extends SCThing {
export interface SCPersonWithoutReferences
extends SCThingWithoutReferences {
/**
* Additional first names of the person.
*/
@@ -102,7 +103,8 @@ export interface SCPersonWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCPerson extends SCPersonWithoutReferences {
export interface SCPerson
extends SCPersonWithoutReferences, SCThing {
/**
* Organization the person works for
*/
@@ -129,29 +131,31 @@ export interface SCPerson extends SCPersonWithoutReferences {
/**
* Meta information about a person
*/
export class SCPersonMeta extends SCThingMeta implements SCMetaTranslations<SCPerson> {
export class SCPersonMeta
extends SCThingMeta
implements SCMetaTranslations<SCPerson> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
type: 'Person',
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Person,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,9 +12,10 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCPlaceWithoutReferences, SCPlaceWithoutReferencesMeta} from '../base/Place';
import {SCPlace, SCPlaceWithoutReferences, SCPlaceWithoutReferencesMeta} from '../base/Place';
import {SCThingInPlace} from '../base/ThingInPlace';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -27,8 +28,7 @@ import {SCMetaTranslations, SCTranslations} from '../types/i18n';
* A point of interest without references
*/
export interface SCPointOfInterestWithoutReferences
extends SCThingWithCategoriesWithoutReferences<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>,
extends SCThingWithCategoriesWithoutReferences<SCPointOfInterestCategories, SCThingWithCategoriesSpecificValues>,
SCPlaceWithoutReferences {
/**
* Translated properties of a point of interest
@@ -46,7 +46,9 @@ export interface SCPointOfInterestWithoutReferences
*
* @validatable
*/
export interface SCPointOfInterest extends SCPointOfInterestWithoutReferences, SCThingInPlace {
export interface SCPointOfInterest
extends SCPointOfInterestWithoutReferences, SCThingInPlace, SCPlace,
SCThingWithCategories<SCPointOfInterestCategories, SCThingWithCategoriesSpecificValues> {
/**
* Translated properties of a point of interest
*/
@@ -71,39 +73,41 @@ export type SCPointOfInterestCategories =
/**
* Meta information about points of interest
*/
export class SCPointOfInterestMeta extends SCThingMeta implements SCMetaTranslations<SCPointOfInterest> {
export class SCPointOfInterestMeta
extends SCThingMeta
implements SCMetaTranslations<SCPointOfInterest> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
},
en: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
type: 'Sonderziel',
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPointOfInterestCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.PointOfInterest,
},
};

View File

@@ -12,13 +12,15 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCPlaceWithoutReferences, SCPlaceWithoutReferencesMeta} from '../base/Place';
import {SCPlace, SCPlaceWithoutReferences, SCPlaceWithoutReferencesMeta} from '../base/Place';
import {SCThingInPlace, SCThingInPlaceMeta} from '../base/ThingInPlace';
import {
SCThingThatAcceptsPayments,
SCThingThatAcceptsPaymentsWithoutReferences,
SCThingThatAcceptsPaymentsWithoutReferencesMeta,
} from '../base/ThingThatAcceptsPayments';
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
@@ -81,7 +83,9 @@ export interface SCRoomWithoutReferences
*
* @validatable
*/
export interface SCRoom extends SCRoomWithoutReferences, SCThingInPlace {
export interface SCRoom
extends SCRoomWithoutReferences, SCThingInPlace, SCThingThatAcceptsPayments, SCPlace,
SCThingWithCategories<SCRoomCategories, SCRoomSpecificValues> {
/**
* Translations of specific values of the object
*
@@ -98,7 +102,8 @@ export interface SCRoom extends SCRoomWithoutReferences, SCThingInPlace {
/**
* Category specific values of a room
*/
export interface SCRoomSpecificValues extends SCThingWithCategoriesSpecificValues {
export interface SCRoomSpecificValues
extends SCThingWithCategoriesSpecificValues {
/**
* Category specific opening hours of the room
*/
@@ -108,37 +113,39 @@ export interface SCRoomSpecificValues extends SCThingWithCategoriesSpecificValue
/**
* Meta information about a place
*/
export class SCRoomMeta extends SCThingMeta implements SCMetaTranslations<SCRoom> {
export class SCRoomMeta
extends SCThingMeta
implements SCMetaTranslations<SCRoom> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
... SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldTranslations.de,
... SCThingInPlaceMeta.getInstance().fieldTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.de,
...SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldTranslations.de,
},
en: {
... SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
... SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldTranslations.en,
... SCThingInPlaceMeta.getInstance().fieldTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldTranslations.en,
...SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
... SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldValueTranslations.de,
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
...SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldValueTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
categories: {
'cafe': 'Café',
'canteen': 'Kantine',
@@ -157,11 +164,11 @@ export class SCRoomMeta extends SCThingMeta implements SCMetaTranslations<SCRoom
type: 'Raum',
},
en: {
... SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
... SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldValueTranslations.en,
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
...SCPlaceWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
...SCThingThatAcceptsPaymentsWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCRoomCategories,
SCRoomSpecificValues>().fieldValueTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Room,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,14 +12,19 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCAcademicTermWithoutReferences, SCAcademicTermWithoutReferencesMeta} from '../base/AcademicTerm';
import {
SCAcademicTerm,
SCAcademicTermWithoutReferences,
SCAcademicTermWithoutReferencesMeta,
} from '../base/AcademicTerm';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
/**
* A semester without references
*/
export interface SCSemesterWithoutReferences extends SCAcademicTermWithoutReferences {
export interface SCSemesterWithoutReferences
extends SCAcademicTermWithoutReferences {
/**
* The short name of the semester, using the given pattern.
*
@@ -38,7 +43,8 @@ export interface SCSemesterWithoutReferences extends SCAcademicTermWithoutRefere
*
* @validatable
*/
export interface SCSemester extends SCSemesterWithoutReferences {
export interface SCSemester
extends SCSemesterWithoutReferences, SCAcademicTerm {
/**
* Type of the semester
*/
@@ -48,13 +54,15 @@ export interface SCSemester extends SCSemesterWithoutReferences {
/**
* Meta information about a semester
*/
export class SCSemesterMeta extends SCThingMeta implements SCMetaTranslations<SCSemester> {
export class SCSemesterMeta
extends SCThingMeta
implements SCMetaTranslations<SCSemester> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCAcademicTermWithoutReferencesMeta.getInstance().fieldTranslations.de,
...SCAcademicTermWithoutReferencesMeta.getInstance().fieldTranslations.de,
acronym: 'Abkürzung',
endDate: 'Ende',
eventsEndDate: 'Vorlesungsschluss',
@@ -62,20 +70,20 @@ export class SCSemesterMeta extends SCThingMeta implements SCMetaTranslations<SC
startDate: 'Beginn',
},
en: {
... SCAcademicTermWithoutReferencesMeta.getInstance().fieldTranslations.en,
...SCAcademicTermWithoutReferencesMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCAcademicTermWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
...SCAcademicTermWithoutReferencesMeta.getInstance().fieldValueTranslations.de,
type: 'Semester',
},
en: {
... SCAcademicTermWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
...SCAcademicTermWithoutReferencesMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Semester,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -13,12 +13,13 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
SCThingWithCategoriesWithoutReferencesMeta,
} from '../base/ThingWithCategories';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
export type SCSettingCategories = string;
@@ -74,7 +75,13 @@ export enum SCSettingInputType {
*
* @validatable
*/
export interface SCSetting extends SCSettingWithoutReferences {
export interface SCSetting
extends SCSettingWithoutReferences, SCThing,
SCThingWithCategories<SCSettingCategories, SCThingWithCategoriesSpecificValues> {
/**
* Translated fields of a setting
*/
translations?: SCTranslations<SCSettingValueTranslatableProperties>;
/**
* The type of this model
*/
@@ -111,8 +118,8 @@ export class SCSettingMeta extends SCThingMeta implements SCMetaTranslations<SCS
fieldTranslations = {
de: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
defaultValue: 'Standard Wert',
inputType: 'Eingabetyp',
value: 'Wert',
@@ -120,8 +127,8 @@ export class SCSettingMeta extends SCThingMeta implements SCMetaTranslations<SCS
},
en: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
defaultValue: 'default value',
inputType: 'input type',
},
@@ -130,24 +137,24 @@ export class SCSettingMeta extends SCThingMeta implements SCMetaTranslations<SCS
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
inputType: {
'multiple choice': 'mehrfach Auswahl',
number: 'Zahl',
password: 'Passwort',
'single choice': 'einfache Auswahl',
text: 'Text',
},
},
type: 'Einstellung',
},
en: {
// tslint:disable-next-line:max-line-length
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCSettingCategories,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
type: SCThingType.Setting,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -19,7 +19,8 @@ import {SCMetaTranslations} from '../types/i18n';
/**
* A sport course without references
*/
export interface SCSportCourseWithoutReferences extends SCEventWithoutReferences {
export interface SCSportCourseWithoutReferences
extends SCEventWithoutReferences {
/**
* Type of a sport course
*/
@@ -31,7 +32,8 @@ export interface SCSportCourseWithoutReferences extends SCEventWithoutReferences
*
* @validatable
*/
export interface SCSportCourse extends SCEvent, SCSportCourseWithoutReferences {
export interface SCSportCourse
extends SCEvent, SCSportCourseWithoutReferences {
/**
* Type of a sport course
*/
@@ -41,33 +43,35 @@ export interface SCSportCourse extends SCEvent, SCSportCourseWithoutReferences {
/**
* Meta information about a sport course
*/
export class SCSportCourseMeta extends SCThingMeta implements SCMetaTranslations<SCSportCourse> {
export class SCSportCourseMeta
extends SCThingMeta
implements SCMetaTranslations<SCSportCourse> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
... SCEventMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
...SCEventMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
... SCEventMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
...SCEventMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
... SCEventMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
...SCEventMeta.getInstance().fieldValueTranslations.de,
type: 'Sportkurs',
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
... SCEventMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
...SCEventMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.SportCourse,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2019 StApps
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,9 +12,12 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCAcademicPriceGroup,
SCThingThatCanBeOffered,
SCThingThatCanBeOfferedTranslatableProperties} from '../base/ThingThatCanBeOffered';
import {
SCAcademicPriceGroup,
SCThingThatCanBeOffered,
SCThingThatCanBeOfferedTranslatableProperties,
SCThingThatCanBeOfferedWithoutReferences,
} from '../base/ThingThatCanBeOffered';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCLanguage, SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCMap} from '../types/Map';
@@ -25,8 +28,8 @@ import {SCPersonWithoutReferences} from './Person';
/**
* A study module without references
*/
export interface SCStudyModuleWithoutReferences extends
SCThingThatCanBeOffered<SCAcademicPriceGroup> {
export interface SCStudyModuleWithoutReferences
extends SCThingThatCanBeOfferedWithoutReferences {
/**
* ECTS points (European Credit Transfer System)
@@ -61,10 +64,11 @@ export interface SCStudyModuleWithoutReferences extends
/**
* A study module
*
*
* @validatable
*/
export interface SCStudyModule extends SCStudyModuleWithoutReferences {
export interface SCStudyModule
extends SCStudyModuleWithoutReferences, SCThingThatCanBeOffered<SCAcademicPriceGroup> {
/**
* Academic events that make up a study module
*/
@@ -86,14 +90,24 @@ export interface SCStudyModule extends SCStudyModuleWithoutReferences {
requiredModules?: SCStudyModuleWithoutReferences[];
/**
* The secretary that administers requests and
* The secretary that administers requests and
* questions concerning the study module by eg. students
*/
secretary: SCOrganizationWithoutReferences | SCPersonWithoutReferences;
/**
* Translated fields of a study module
*/
translations?: SCTranslations<SCStudyModuleTranslatableProperties>;
/**
* Type of the study module
*/
type: SCThingType.StudyModule;
}
export interface SCStudyModuleTranslatableProperties
extends SCThingThatCanBeOfferedTranslatableProperties {
extends SCThingThatCanBeOfferedTranslatableProperties {
/**
* Translations of the majors that this study module is meant for
*/
@@ -105,8 +119,8 @@ export interface SCStudyModuleTranslatableProperties
necessity: SCMap<SCStudyModuleNecessity>;
}
/**
* Represents a modules necessity (in a major) as it may be required, optional or
/**
* Represents a modules necessity (in a major) as it may be required, optional or
* is in a pool of n optional modules were m out of them have to be taken/completed.
* Hence the elective option.
*/
@@ -119,13 +133,15 @@ export enum SCStudyModuleNecessity {
/**
* Study module meta data
*/
export class SCStudyModuleMeta extends SCThingMeta implements SCMetaTranslations<SCStudyModule> {
export class SCStudyModuleMeta
extends SCThingMeta
implements SCMetaTranslations<SCStudyModule> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingMeta.getInstance().fieldTranslations.de,
...SCThingMeta.getInstance().fieldTranslations.de,
academicEvents: 'Veranstaltungen',
ects: 'ECTS-Punkte',
faculty: 'Fachbereich',
@@ -137,7 +153,7 @@ export class SCStudyModuleMeta extends SCThingMeta implements SCMetaTranslations
secretary: 'Sekretariat',
},
en: {
... SCThingMeta.getInstance().fieldTranslations.en,
...SCThingMeta.getInstance().fieldTranslations.en,
academicEvents: 'academic events',
ects: 'ECTS points',
faculty: 'faculty',
@@ -153,18 +169,18 @@ export class SCStudyModuleMeta extends SCThingMeta implements SCMetaTranslations
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingMeta.getInstance().fieldValueTranslations.de,
...SCThingMeta.getInstance().fieldValueTranslations.de,
necessity: {
'elective' : 'Wahlfach',
'optional' : 'optional',
'required' : 'benötigt',
'elective': 'Wahlfach',
'optional': 'optional',
'required': 'benötigt',
},
type: 'Studiengangmodul',
},
en: {
... SCThingMeta.getInstance().fieldValueTranslations.en,
...SCThingMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.StudyModule,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -13,14 +13,15 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThingInPlace, SCThingInPlaceMeta} from '../base/ThingInPlace';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCThingMeta, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
import {SCISO8601Duration} from '../types/Time';
/**
* A ticket without references
*/
export interface SCTicketWithoutReferences extends SCThing {
export interface SCTicketWithoutReferences
extends SCThingWithoutReferences {
/**
* Approximate wait time
*/
@@ -47,7 +48,8 @@ export interface SCTicketWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCTicket extends SCTicketWithoutReferences, SCThingInPlace {
export interface SCTicket
extends SCTicketWithoutReferences, SCThingInPlace {
/**
* Type of a ticket
*/
@@ -57,29 +59,31 @@ export interface SCTicket extends SCTicketWithoutReferences, SCThingInPlace {
/**
* Meta information about a ticket
*/
export class SCTicketMeta extends SCThingMeta implements SCMetaTranslations<SCTicket> {
export class SCTicketMeta
extends SCThingMeta
implements SCMetaTranslations<SCTicket> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCThingInPlaceMeta.getInstance().fieldTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldTranslations.de,
},
en: {
... SCThingInPlaceMeta.getInstance().fieldTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.de,
type: 'Ticket',
},
en: {
... SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
...SCThingInPlaceMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Ticket,
},
};

View File

@@ -13,11 +13,14 @@
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {
SCThingWithCategories,
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
SCThingWithCategoriesWithoutReferences,
SCThingWithCategoriesWithoutReferencesMeta} from '../base/ThingWithCategories';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
SCThingWithCategoriesWithoutReferencesMeta,
} from '../base/ThingWithCategories';
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCMetaTranslations, SCTranslations} from '../types/i18n';
import {SCISO8601Date} from '../types/Time';
/**
@@ -51,7 +54,17 @@ export interface SCToDoWithoutReferences
*
* @validatable
*/
export interface SCToDo extends SCToDoWithoutReferences {
export interface SCToDo
extends SCToDoWithoutReferences, SCThing, SCThingWithCategories<string, SCThingWithCategoriesSpecificValues> {
/**
* Translated fields of a thing with categories
*/
translations?: SCTranslations<SCThingWithCategoriesTranslatableProperties>;
/**
* Type of the "to do"
*/
type: SCThingType.ToDo;
}
/**
@@ -72,27 +85,27 @@ export class SCToDoMeta extends SCThingMeta implements SCMetaTranslations<SCToDo
*/
fieldTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.de,
type: 'ToDo',
},
en: {
... SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<string,
SCThingWithCategoriesSpecificValues>().fieldValueTranslations.en,
type: SCThingType.ToDo,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,13 +12,14 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCThing, SCThingMeta, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCMetaTranslations} from '../types/i18n';
/**
* A tour without references
*/
export interface SCTourWithoutReferences extends SCThing {
export interface SCTourWithoutReferences
extends SCThingWithoutReferences {
/**
* Init script for the tour
*/
@@ -40,7 +41,8 @@ export interface SCTourWithoutReferences extends SCThing {
*
* @validatable
*/
export interface SCTour extends SCTourWithoutReferences {
export interface SCTour
extends SCTourWithoutReferences, SCThing {
/**
* Type of a tour
*/
@@ -50,7 +52,9 @@ export interface SCTour extends SCTourWithoutReferences {
/**
* Meta information about a tour
*/
export class SCTourMeta extends SCThingMeta implements SCMetaTranslations<SCTour> {
export class SCTourMeta
extends SCThingMeta
implements SCMetaTranslations<SCTour> {
}
/**

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -21,7 +21,8 @@ import {SCPersonWithoutReferences} from './Person';
/**
* A video without references
*/
export interface SCVideoWithoutReferences extends SCCreativeWorkWithoutReferences {
export interface SCVideoWithoutReferences
extends SCCreativeWorkWithoutReferences {
/**
* The Duration of the Video
*/
@@ -102,7 +103,8 @@ export interface SCVideoTrack {
*
* @validatable
*/
export interface SCVideo extends SCCreativeWork, SCVideoWithoutReferences {
export interface SCVideo
extends SCCreativeWork, SCVideoWithoutReferences {
/**
* Persons acting in the Video
*/
@@ -117,29 +119,31 @@ export interface SCVideo extends SCCreativeWork, SCVideoWithoutReferences {
/**
* Meta information about a video
*/
export class SCVideoMeta extends SCThingMeta implements SCMetaTranslations<SCVideo> {
export class SCVideoMeta
extends SCThingMeta
implements SCMetaTranslations<SCVideo> {
/**
* Translations of fields
*/
fieldTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldTranslations.de,
},
en: {
... SCCreativeWorkMeta.getInstance().fieldTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldTranslations.en,
},
};
/**
* Translations of values of fields
*/
fieldValueTranslations = {
fieldValueTranslations = {
de: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.de,
type: 'Video',
},
en: {
... SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
...SCCreativeWorkMeta.getInstance().fieldValueTranslations.en,
type: SCThingType.Video,
},
};

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2019 StApps
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,16 +12,16 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThingWithTranslations} from '../base/ThingWithTranslations';
import {SCBulkResponse} from '../protocol/routes/bulk/BulkResponse';
import {SCMultiSearchResponse} from '../protocol/routes/search/MultiSearchResponse';
import {SCSearchResponse} from '../protocol/routes/search/SearchResponse';
import {SCThing, SCThingType} from '../Thing';
import {SCThing, SCThingTranslatableProperties, SCThingType, SCThingWithoutReferences} from '../Thing';
import {SCTranslations} from './i18n';
/**
* Type guard to check if something is a SCThing
*
* @param {any} something Something to check
* @param something Something to check
*/
export function isThing(something: any): something is SCThing {
return (
@@ -34,16 +34,17 @@ export function isThing(something: any): something is SCThing {
/**
* Type guard to check if translations exist
*
* @param {SCThing} thing Thing to check
* @param thing Thing to check
*/
export function isThingWithTranslations(thing: SCThing): thing is SCThingWithTranslations {
export function isThingWithTranslations(thing: SCThingWithoutReferences)
: thing is SCThingWithoutReferences & { translations: SCTranslations<SCThingTranslatableProperties> } {
return typeof thing.translations !== 'undefined';
}
/**
* Type guard to check if something is a bulk response
*
* @param {any} something Something to check
* @param something Something to check
*/
export function isBulkResponse(something: any): something is SCBulkResponse {
return typeof something.expiration === 'string'
@@ -56,7 +57,7 @@ export function isBulkResponse(something: any): something is SCBulkResponse {
/**
* Type guard to check if something is a search response
*
* @param {any} something Something to check
* @param something Something to check
*/
export function isSearchResponse(something: any): something is SCSearchResponse {
return Array.isArray(something.data)

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2019 StApps
* Copyright (C) 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.

View File

@@ -12,24 +12,259 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {getProjectReflection} from '@openstapps/core-tools/lib/common';
import {validateFiles, writeReport} from '@openstapps/core-tools/lib/validate';
import {Logger} from '@openstapps/logger';
import {fail} from 'assert';
import {expect} from 'chai';
import {mkdirSync} from 'fs';
import {slow, suite, test, timeout} from 'mocha-typescript';
import {join, resolve} from 'path';
const logger = new Logger();
import {DeclarationReflection, ProjectReflection} from 'typedoc';
import {ArrayType, IntrinsicType, ReferenceType, StringLiteralType, Type, UnionType} from 'typedoc/dist/lib/models';
process.on('unhandledRejection', (err) => {
logger.error('UNHANDLED REJECTION', err.stack);
Logger.error('UNHANDLED REJECTION', err.stack);
process.exit(1);
});
/**
* Check if type is a union type
*
* @param type Type to check
*/
function isUnionType(type: Type): type is UnionType {
return type.type === 'union';
}
/**
* Check if a type is reference type
*
* @param type Type to check
*/
function isReferenceType(type: Type): type is ReferenceType {
return type.type === 'reference';
}
/**
* Check if a type is an array type
*
* @param type Type to check
*/
function isArrayType(type: Type): type is ArrayType {
return type.type === 'array';
}
/**
* Check if a type is an intrinsic type
*
* @param type Type to check
*/
function isIntrinsicType(type: Type): type is IntrinsicType {
return type.type === 'intrinsic';
}
/**
* Check if a type is a string literal type
*
* @param type Type to check
*/
function isStringLiteralType(type: Type): type is StringLiteralType {
return type.type === 'stringLiteral';
}
/**
* Get extended types of a declaration reflection
* @param thingReflection Reflection of the thing
* @param objects Map of reflections by name
*/
function getExtendedTypes(thingReflection: DeclarationReflection,
objects: { [name: string]: DeclarationReflection }): string[] {
const extendedTypes: string[] = [];
if (Array.isArray(thingReflection.extendedTypes)) {
const typesToCheck = thingReflection.extendedTypes.slice();
while (typesToCheck.length > 0) {
const extendedType = typesToCheck.splice(0, 1)[0];
extendedTypes.push((extendedType as unknown as ReferenceType).name);
const extendedObject = objects[(extendedType as unknown as ReferenceType).name];
if (typeof extendedObject !== 'undefined') {
if (Array.isArray(extendedObject.extendedTypes)) {
typesToCheck.push.apply(typesToCheck, extendedObject.extendedTypes);
}
}
}
}
return extendedTypes;
}
@suite(timeout(10000), slow(5000))
export class ValidateTestFiles {
export class SchemaSpec {
static objects: { [name: string]: DeclarationReflection } = {};
static reflection: ProjectReflection;
static thingNames: string[];
static before() {
SchemaSpec.reflection = getProjectReflection(resolve(__dirname, '..', 'src'));
if (Array.isArray(SchemaSpec.reflection.children)) {
for (const module of SchemaSpec.reflection.children) {
if (Array.isArray(module.children)) {
for (const object of module.children) {
SchemaSpec.objects[object.name] = object;
}
}
}
}
const thingsReflection = SchemaSpec.objects.SCThingsWithoutDiff;
// tslint:disable-next-line:no-unused-expression
expect(thingsReflection).not.to.be.undefined;
// tslint:disable-next-line:no-unused-expression
expect(isUnionType(thingsReflection.type!)).to.be.true;
(thingsReflection.type! as UnionType).types.push({
'id': 0,
'name': 'SCDiff',
'type': 'reference',
} as unknown as ReferenceType);
// tslint:disable-next-line:no-unused-expression
expect((thingsReflection.type! as UnionType).types.every(isReferenceType)).to.be.true;
SchemaSpec.thingNames = (thingsReflection.type! as UnionType).types.map((type) => {
return (type as ReferenceType).name;
});
}
@test
async validateTestFiles() {
'all things have an origin'() {
for (const thingName of SchemaSpec.thingNames) {
const thingReflection = SchemaSpec.objects[`${thingName}`];
let originFound = false;
if (Array.isArray(thingReflection.children)) {
for (const property of thingReflection.children) {
if (property.name === 'origin') {
originFound = true;
break;
}
}
}
// tslint:disable-next-line:no-unused-expression
expect(originFound).to.be.equal(true, `'${thingName}' must have property 'origin'.`);
}
}
@test
'does not have duplicate names'() {
const names: string[] = [];
if (Array.isArray(SchemaSpec.reflection.children)) {
for (const module of SchemaSpec.reflection.children) {
if (Array.isArray(module.children)) {
for (const object of module.children) {
expect(names).not.to.contain(object.name);
names.push(object.name);
}
}
}
}
}
@test
'no property is an SCThing'() {
for (const thingName of SchemaSpec.thingNames) {
const thingReflection = SchemaSpec.objects[`${thingName}`];
if (Array.isArray(thingReflection.children)) {
for (const property of thingReflection.children) {
if (typeof property.type === 'undefined') {
Logger.error(thingName, property.name);
continue;
}
const type = property.type!;
if (isIntrinsicType(type)) {
continue;
} else if (isArrayType(type)) {
const elementType = type.elementType;
if (isIntrinsicType(elementType)) {
continue;
} else if (isReferenceType(elementType)) {
expect(SchemaSpec.thingNames).not.to.contain(
elementType.name,
`Array property '${property.name}' on type '${thingName}' has element type '${elementType.name}'.`,
);
} else {
// tslint:disable-next-line:max-line-length
fail(`'${thingName}'#'${property.name}' element type '${elementType.type}' is not handled by this test!`);
}
} else if (isReferenceType(type)) {
expect(SchemaSpec.thingNames).not.to.contain(
type.name,
`Property '${property.name}' on type '${thingName}' has element type '${type.name}'.`,
);
} else if (isUnionType(type)) {
for (const nestedType of type.types) {
if (isIntrinsicType(nestedType) || isStringLiteralType(nestedType)) {
continue;
} else if (isReferenceType(nestedType)) {
expect(SchemaSpec.thingNames).not.to.contain(
nestedType.name,
`Union property '${property.name}' on type '${thingName}' contains type '${nestedType.name}'.`,
);
} else {
// tslint:disable-next-line:max-line-length
fail(`'${thingName}'#'${property.name}' union type '${nestedType.type}' is not handled by this test!`);
}
}
} else {
// tslint:disable-next-line:max-line-length
fail(`'${thingName}'#'${property.name}' with type '${type.type}' is not handled by this test!`);
}
}
}
}
}
@test
'things extend SCThing'() {
for (const thingName of SchemaSpec.thingNames) {
const thingReflection = SchemaSpec.objects[`${thingName}`];
expect(getExtendedTypes(thingReflection, SchemaSpec.objects)).to.contain(
'SCThing',
`'${thingName}' neither extends 'SCThing' transitively nor directly.`,
);
}
}
@test
'things without references do not extend SCThing'() {
for (const thingName of SchemaSpec.thingNames) {
const thingWithoutReferencesReflection = SchemaSpec.objects[`${thingName}WithoutReferences`];
expect(getExtendedTypes(thingWithoutReferencesReflection, SchemaSpec.objects)).not.to.contain(
'SCThing',
`'${thingName}WithoutReferences' extends 'SCThing' either transitively or directly.`,
);
}
}
@test
async 'validate against test files'() {
const errorsPerFile = await validateFiles(resolve('lib', 'schema'), resolve('test', 'resources'));
let unexpected = false;
@@ -37,12 +272,12 @@ export class ValidateTestFiles {
unexpected = unexpected || errorsPerFile[file].some((error) => !error.expected);
});
expect(unexpected).to.be.equal(false);
mkdirSync('report', {
recursive: true,
});
await writeReport(join('report', 'index.html'), errorsPerFile);
expect(unexpected).to.be.equal(false);
}
}

View File

@@ -37,11 +37,6 @@ const building: SCBuildingWithoutReferences = {
},
},
name: 'base-space-name',
origin: {
indexed: '1970-01-01T00:00:00.000Z',
name: 'building-connector',
type: SCThingOriginType.Remote,
},
translations: {
de: {
address: {
@@ -72,11 +67,6 @@ const dish: SCDish = {
},
provider: {
name: 'base-provider',
origin: {
indexed: '1970-01-01T00:00:00.000Z',
name: 'dish-connector',
type: SCThingOriginType.Remote,
},
type: SCThingType.Organization,
uid: '540862f3-ea30-5b8f-8678-56b4dc217141',
},

View File

@@ -20,12 +20,7 @@
"startDate": "2018-04-01",
"endDate": "2018-09-30",
"eventsStartDate": "2018-04-09",
"eventsEndDate": "2018-07-13",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"eventsEndDate": "2018-07-13"
}
],
"performers": [
@@ -36,12 +31,7 @@
"familyName": "Bürgisser",
"gender": "male",
"honorificPrefix": "Prof. Dr.",
"name": "Peter Bürgisser",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Peter Bürgisser"
}
],
"majors": [
@@ -59,12 +49,7 @@
"maintainer": {
"type": "organization",
"name": "tubIT",
"uid": "25f76840-db89-5da2-a8a2-75992f637613",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"uid": "25f76840-db89-5da2-a8a2-75992f637613"
},
"modified": "2018-09-01T10:00:00Z",
"originalId": "foo bar",
@@ -75,12 +60,7 @@
"familyName": "Bürgisser",
"gender": "male",
"honorificPrefix": "Prof. Dr.",
"name": "Peter Bürgisser",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Peter Bürgisser"
}
}
},

View File

@@ -20,12 +20,7 @@
"startDate": "2018-04-01",
"endDate": "2018-09-30",
"eventsStartDate": "2018-04-09",
"eventsEndDate": "2018-07-13",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"eventsEndDate": "2018-07-13"
}
],
"performers": [
@@ -36,12 +31,7 @@
"familyName": "Liesen",
"gender": "male",
"honorificPrefix": "Prof. Dr.",
"name": "Jörg Liesen",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Jörg Liesen"
}
],
"catalogs": [
@@ -53,12 +43,7 @@
"categories": [
"university events"
],
"name": "Mathematik: Lehrveranstaltungen für andere Fachrichtungen (Service)",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Mathematik: Lehrveranstaltungen für andere Fachrichtungen (Service)"
}
],
"majors": [

View File

@@ -20,12 +20,7 @@
"startDate": "2018-04-01",
"endDate": "2018-09-30",
"eventsStartDate": "2018-04-09",
"eventsEndDate": "2018-07-13",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"eventsEndDate": "2018-07-13"
}
],
"performers": [
@@ -35,12 +30,7 @@
"givenName": "Paul",
"familyName": "Breiding",
"gender": "male",
"name": "Paul Breiding",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Paul Breiding"
},
{
"type": "person",
@@ -48,12 +38,7 @@
"givenName": "Pierre",
"familyName": "Lairez",
"gender": "male",
"name": "Pierre Lairez",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Pierre Lairez"
}
],
"catalogs": [
@@ -64,12 +49,7 @@
"categories": [
"university events"
],
"name": "Mathematik: Grundstudiums-Veranstaltungen (Diplom, Bachelor)",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Mathematik: Grundstudiums-Veranstaltungen (Diplom, Bachelor)"
},
{
"uid": "5a1f4f51-2498-5af1-91cb-c939673cc69c",
@@ -79,12 +59,7 @@
"categories": [
"university events"
],
"name": "Mathematik: Lehrveranstaltungen für andere Fachrichtungen (Service)",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Mathematik: Lehrveranstaltungen für andere Fachrichtungen (Service)"
}
],
"majors": [

View File

@@ -10,12 +10,7 @@
"uid": "10dfe386-71b4-554a-beb1-2d38561e42f8",
"name": "Jutta Saatweber",
"givenName": "Jutta",
"familyName": "Saatweber",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"familyName": "Saatweber"
}
],
"datePublished": "2007-08-01",
@@ -23,12 +18,7 @@
{
"type": "organization",
"uid": "28df2bb9-c854-5898-b9d5-1abbd3524804",
"name": "Symposion Publishing",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Symposion Publishing"
}
],
"inLanguages": [

View File

@@ -10,12 +10,7 @@
"uid": "10dfe386-71b4-554a-beb1-2d38561e42f8",
"name": "Jutta Saatweber",
"givenName": "Jutta",
"familyName": "Saatweber",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"familyName": "Saatweber"
}
],
"datePublished": "2007-08-01",

View File

@@ -17,12 +17,7 @@
"WiSe 2017/18"
],
"startDate": "2017-10-01",
"endDate": "2018-03-31",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"endDate": "2018-03-31"
},
"superCatalog": {
"type": "catalog",
@@ -31,12 +26,7 @@
"university events"
],
"uid": "a7404d36-282d-546e-bfa5-6c7b25ba7838",
"name": "Vorlesungsverzeichnis WS 2017/18",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Vorlesungsverzeichnis WS 2017/18"
},
"superCatalogs": [
{
@@ -46,12 +36,7 @@
"university events"
],
"uid": "a7404d36-282d-546e-bfa5-6c7b25ba7838",
"name": "Vorlesungsverzeichnis WS 2017/18",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Vorlesungsverzeichnis WS 2017/18"
}
],
"origin": {

View File

@@ -18,12 +18,7 @@
"WiSe 2017/18"
],
"startDate": "2017-10-01",
"endDate": "2018-03-31",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"endDate": "2018-03-31"
},
"superCatalog": {
"uid": "2fdcccce-1948-5f5a-8938-3711b7e65e8a",
@@ -32,12 +27,7 @@
"categories": [
"university events"
],
"name": "Mathematik",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Mathematik"
},
"superCatalogs": [
{
@@ -47,12 +37,7 @@
"university events"
],
"uid": "a7404d36-282d-546e-bfa5-6c7b25ba7838",
"name": "Vorlesungsverzeichnis WS 2017",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Vorlesungsverzeichnis WS 2017"
},
{
"uid": "0718211b-d0c2-50fb-bc78-b968f20fd95b",
@@ -61,12 +46,7 @@
"categories": [
"university events"
],
"name": "Fakultät II Mathematik und Naturwissenschaften",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Fakultät II Mathematik und Naturwissenschaften"
},
{
"uid": "2fdcccce-1948-5f5a-8938-3711b7e65e8a",
@@ -75,12 +55,7 @@
"categories": [
"university events"
],
"name": "Mathematik",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"name": "Mathematik"
}
],
"origin": {

View File

@@ -6,11 +6,6 @@
"academicDegreewithFieldShort": "B.A.",
"department": {
"name": "Technische Universität Berlin",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "b0f878fd-8fda-53b8-b065-a8d854c3d0d2"
},
@@ -28,11 +23,6 @@
},
"secretary": {
"name": "Technische Universität Berlin",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "b0f878fd-8fda-53b8-b065-a8d854c3d0d2"
},

View File

@@ -20,11 +20,6 @@
52.51211
]
}
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"frequency": "once",
@@ -41,12 +36,7 @@
"majors": [
"Economics BSc",
"Wirtschaftsingenieurwesen BSc"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",

View File

@@ -21,12 +21,7 @@
],
"uid": "b535c86a-777b-54c3-b89a-cad528d0580f",
"name": "EMH 225",
"floor": "2",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "2"
},
"frequency": "once",
"dates": [
@@ -38,12 +33,7 @@
"name": "Distributed Algorithms",
"categories": [
"written exam"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",

View File

@@ -21,12 +21,7 @@
],
"uid": "b535c86a-777b-54c3-b89a-cad528d0580f",
"name": "EMH 225",
"floor": "2",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "2"
},
"frequency": "once",
"dates": [
@@ -38,12 +33,7 @@
"name": "Dance course for beginners",
"categories": [
"special"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
@@ -62,11 +52,6 @@
},
"provider": {
"name": "Studentenwerk",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634"
}

View File

@@ -29,11 +29,6 @@
},
"provider": {
"name": "Studentenwerk",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634"
},
@@ -63,11 +58,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Hardenbergstraße 34"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
}
}

View File

@@ -16,11 +16,6 @@
},
"provider": {
"name": "Studentenwerk",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634"
},
@@ -53,11 +48,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Hardenbergstraße 34"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
}
}

View File

@@ -33,11 +33,6 @@
50.1743717
]
}
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"prices": {
@@ -47,11 +42,6 @@
},
"provider": {
"name": "Studentenwerk",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
},
"type": "organization",
"uid": "3b9b3df6-3a7a-58cc-922f-c7335c002634"
}
@@ -95,12 +85,7 @@
"name": "Pommes frites",
"categories": [
"side dish"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
},
{
"characteristics": [
@@ -128,12 +113,7 @@
"categories": [
"side dish",
"salad"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
}
],
"type": "dish",

View File

@@ -16,12 +16,7 @@
"Wirtschaftsmathematik BSc",
"Technomathematik BSc",
"Mathematik BSc"
],
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
]
},
"origin": {
"created": "2018-09-11T12:30:00Z",

View File

@@ -164,11 +164,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Straße des 17. Juni 136"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"floorName": "0",
@@ -3388,12 +3383,7 @@
],
"uid": "593655b5-0fc9-59de-a82f-b8f5f908deef",
"name": "MA 043",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
}
},
{
@@ -5536,12 +5526,7 @@
],
"uid": "31b1ab4c-1803-51ed-8c66-59bfc97cd350",
"name": "MA Foyer",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
}
},
{
@@ -6355,12 +6340,7 @@
],
"uid": "56ce0744-ae39-5209-b18f-d3a6edcb8f0a",
"name": "MA 042",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
}
},
{
@@ -6470,12 +6450,7 @@
],
"uid": "96b7e555-1214-5ca8-8294-e8209ac04f5a",
"name": "MA 041",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
}
},
{
@@ -6705,12 +6680,7 @@
],
"uid": "ed50a94d-eb06-5d07-8058-dfbdeb6c3a0b",
"name": "MA 001",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
}
},
{

View File

@@ -104,11 +104,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Straße des 17. Juni 135"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"floorName": "4",

View File

@@ -104,11 +104,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Straße des 17. Juni 135"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"floorName": "5",

View File

@@ -3,7 +3,7 @@
"instance": {
"type": "message",
"uid": "4706ef24-b631-5c20-91d1-3c627decca5a",
"image": "icon ion-android-hand stapps-color-red-dark",
"image": "https://backend/res/img/message_small.png",
"name": "Lösung für das Problem des Zurücksetzens der StApps-App gefunden",
"message": "Wie bereits berichtet, klagten User über das Löschen ihres Stundenplans beim Update von Version 0.8.0 auf 0.8.1. Wir haben eine Lösung für das Problem gefunden und testen diese ausführlich bis zum Ende dieser Woche. Wenn alles glatt verläuft, dann kommt am Wochenende die fehlerbereinige Version 0.8.2 heraus.\n\n*(25.Okt 2016)*",
"audiences": [

View File

@@ -5,7 +5,7 @@
"instance": {
"type": "invalid-value-in-schema",
"uid": "cdb7059c-a1a2-5229-821d-434c345e2917",
"image": "icon ion-android-hand stapps-color-red-dark",
"image": "https://backend/res/img/message_small.png",
"name": "Lösung für das Problem des Zurücksetzens der StApps-App gefunden",
"message": "Wie bereits berichtet, klagten User über das Löschen ihres Stundenplans beim Update von Version 0.8.0 auf 0.8.1. Wir haben eine Lösung für das Problem gefunden und testen diese ausführlich bis zum Ende dieser Woche. Wenn alles glatt verläuft, dann kommt am Wochenende die fehlerbereinige Version 0.8.2 heraus.\n\n*(25.Okt 2016)*",
"audiences": [

View File

@@ -6,7 +6,7 @@
"type": "message",
"invalid-non-existing-key-in-schema": 1,
"uid": "4706ef24-b631-5c20-91d1-3c627decca5a",
"image": "icon ion-android-hand stapps-color-red-dark",
"image": "https://backend/res/img/message_small.png",
"name": "Lösung für das Problem des Zurücksetzens der StApps-App gefunden",
"message": "Wie bereits berichtet, klagten User über das Löschen ihres Stundenplans beim Update von Version 0.8.0 auf 0.8.1. Wir haben eine Lösung für das Problem gefunden und testen diese ausführlich bis zum Ende dieser Woche. Wenn alles glatt verläuft, dann kommt am Wochenende die fehlerbereinige Version 0.8.2 heraus.\n\n*(25.Okt 2016)*",
"audiences": [

View File

@@ -40,11 +40,6 @@
],
"type": "Point"
}
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
}
},
@@ -72,11 +67,6 @@
],
"type": "Point"
}
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
}
}

View File

@@ -0,0 +1,74 @@
{
"errorNames": [],
"instance": {
"action": "add",
"plugin": {
"address": "http://foo.com:1234",
"name": "Foo Plugin",
"requestSchema": {
"$schema": "http://json-schema.org/draft-06/schema#",
"definitions": {
"SCFooPluginRequest": {
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false,
"description": "User query"
}
},
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"additionalProperties": false,
"description": "User query",
"id": "https://core.stapps.tu-berlin.de/v0.18.0/lib/schema/SCFooPluginRequest.json"
},
"responseSchema": {
"$schema": "http://json-schema.org/draft-06/schema#",
"definitions": {
"SCFooPluginResponse": {
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {}
}
},
"required": [
"result"
],
"additionalProperties": false,
"description": "A response to a query"
}
},
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {}
}
},
"required": [
"result"
],
"additionalProperties": false,
"description": "A response to a query",
"id": "https://core.stapps.tu-berlin.de/v0.18.0/lib/schema/SCFooPluginResponse.json"
},
"route": "/foo"
}
},
"schema": "SCPluginRegisterRequest"
}

View File

@@ -0,0 +1,8 @@
{
"errorNames": [],
"instance": {
"action": "remove",
"route": "/foo"
},
"schema": "SCPluginRegisterRequest"
}

View File

@@ -0,0 +1,7 @@
{
"errorNames": [],
"instance": {
"success": true
},
"schema": "SCPluginRegisterResponse"
}

View File

@@ -98,12 +98,7 @@
"library"
],
"type": "building",
"uid": "65596790-a217-5d70-888e-16aa17bfda0a",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"uid": "65596790-a217-5d70-888e-16aa17bfda0a"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",

View File

@@ -286,12 +286,7 @@
"categories": [
"education"
],
"uid": "a825451c-cbc4-544a-9d96-9de0b635fdbd",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"uid": "a825451c-cbc4-544a-9d96-9de0b635fdbd"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",

View File

@@ -177,11 +177,6 @@
"addressRegion": "Berlin",
"postalCode": "10623",
"streetAddress": "Straße des 17. Juni 136"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
},
"floor": "0",

View File

@@ -67,12 +67,7 @@
"education"
],
"type": "building",
"uid": "583b4bd4-d7b7-5736-b2df-87e05c41d97a",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"uid": "583b4bd4-d7b7-5736-b2df-87e05c41d97a"
},
"origin": {
"indexed": "2018-09-11T12:30:00Z",

View File

@@ -26,12 +26,7 @@
"H 0010"
],
"name": "Prüfungsamt - Team 2",
"floor": "0",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"floor": "0"
},
"serviceType": {
"name": "Prüfungsamt"

View File

@@ -35,12 +35,7 @@
"uid": "540862f3-ea30-5b8f-8678-56b4dc217642",
"name": "Big Buck Bunny",
"givenName": "Big Buck",
"familyName": "Bunny",
"origin": {
"indexed": "2018-09-11T12:30:00Z",
"name": "Dummy",
"type": "remote"
}
"familyName": "Bunny"
}
],
"origin": {