diff --git a/README.md b/README.md
index 0844377..8230bfe 100644
--- a/README.md
+++ b/README.md
@@ -97,7 +97,8 @@ On `config.json`:
{
"client": {
"name": "Localhost",
- "logo": "/images/logo.webp"
+ "logo": "/images/logo.webp",
+ "server": "http://server"
},
"components": []
}
@@ -107,6 +108,7 @@ Where:
* `client.name` is the name of your Orbit
* `client.logo` is an URL to an image file
+* `client.server` is the main data server of the client
* `components` is your modules declaration registry
### Optional personalisation
@@ -226,18 +228,28 @@ Module declaration, on `config.json`:
```json
{
"type": "circles",
- "endpoints": {
- "get": "http://server.url/circles/",
- "post": "http://server.url/circles/",
- "owners": "http://server.url/users/",
- "users": "http://server.url/users/",
+ "parameters": {
+ "dataSrc": "federation://circles/",
+ "dataSrcJoinable": "federation://circles/joinable/",
+ "owners": "federation://users/",
+ "post": "server://circles/",
+ "users": "federation://users/",
+ "noRender": "",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
- }
+ },
+ "federation": [
+ "..."
+ ],
+ "route": "circles"
}
```
Where:
+* `dataSrc`: is a container listing every circles
+* `dataSrcJoinable`: is a container listing every public & not joined circles for the user
+* `post`: is where you create new circles
+* `noRender`: will load datas only when it'll be on screen, remove it if you encounter any issue
* `owners`: is your users container which contains valid owners
* `users`: is your users container
* `xmpp` is your [Prosody](https://prosody.im/) with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on.
@@ -246,6 +258,8 @@ Where:
You can extend circles with other components, the same way you would add them to your modules.
+Extensions always inherit from its parent federation.
+
Actually it support: Events, Resources & Polls.
Eg.:
@@ -253,23 +267,34 @@ Eg.:
```json
{
"type": "circles",
- "endpoints": {
- "get": "http://server.url/circles/",
- "post": "http://server.url/circles/",
- "owners": "http://server.url/users/",
- "users": "http://server.url/users/",
+ "parameters": {
+ "dataSrc": "federation://circles/",
+ "dataSrcJoinable": "federation://circles/joinable/",
+ "owners": "federation://users/",
+ "post": "server://circles/",
+ "users": "federation://users/",
+ "noRender": "",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
},
+ "federation": [
+ "..."
+ ],
+ "route": "circles",
"extensions": [
{
"type": "events",
- "endpoints": {
- "get": "http://server.url/events/",
- "post": "http://server.url/events/",
- "typeevents": "http://server.url/typeevents/",
- "postTypeevents": "http://server.url/typeevents/",
- "uploads": "http://server.url/upload/"
- }
+ "parameters": {
+ "events": "federation://events/",
+ "circles": "federation://circles/",
+ "get": "federation://events/",
+ "post": "server://events/",
+ "postTypeevents": "server://typeevents/",
+ "typeevents": "federation://typeevents/",
+ "uploads": "server://upload/"
+ },
+ "federation": [
+ "..."
+ ]
}
]
}
@@ -305,10 +330,10 @@ You can activate it by changing the route to anything else than false. Some endp
```json
{
"type": "communities",
- "endpoints": {
- "get": "http://server/communities/",
- "addresses": "http://server/community-addresses/",
- "uploads": "http://server/upload/"
+ "parameters": {
+ "addresses": "federation://community-addresses/",
+ "dataSrc": "federation://communities/",
+ "uploads": "server://upload/"
},
"route": "communities"
}
@@ -325,12 +350,15 @@ Module declaration, on `config.json`:
```json
{
"type": "dashboard",
- "endpoints": {
- "get": "http://server.url/dashboards/"
- },
"parameters": {
- "target": "default"
- }
+ "dataSrc": "server://dashboards/",
+ "noRender": "",
+ "target": false
+ },
+ "route": "dashboard",
+ "experimental": [
+ "routing"
+ ]
}
```
@@ -338,6 +366,8 @@ A [sample fixture](https://git.startinblox.com/djangoldp-packages/djangoldp-dash
You can have multiple dashboard module, see the [related documentation](https://git.startinblox.com/components/solid-dashboard#having-multiple-dashboard).
+You need the experimental routing enabled to have a Dashboard.
+
### Events
The events module includes a listing of upcoming events and the capability to create new ones.
@@ -350,19 +380,21 @@ Module declaration, on `config.json`:
```json
{
"type": "events",
- "endpoints": {
- "get": "http://server.url/events/",
- "post": "http://server.url/events/",
- "regionevents": "http://server.url/regionevents/",
- "typeevents": "http://server.url/typeevents/",
- "postTypeevents": "http://server.url/typeevents/",
- "uploads": "http://server.url/upload/"
- }
- "parameters" : {
- "pastevents": "",
- "visiblecheckbox": "",
- "visibilityregions": ""
- }
+ "parameters": {
+ "events": "federation://events/",
+ "circles": "federation://circles/",
+ "get": "federation://events/",
+ "post": "server://events/",
+ "postTypeevents": "server://typeevents/",
+ "typeevents": "federation://typeevents/",
+ "pastevents": "visible",
+ "visiblecheckbox": "visible",
+ "visibilityregions": "visible",
+ "uploads": "server://upload/"
+ },
+ "federation": [
+ "..."
+ ]
}
```
@@ -454,8 +486,8 @@ Module declaration, on `config.json`:
"extensions": [
{
"type": "invoices",
- "endpoints": {
- "uploads": "http://server.url/upload/"
+ "parameters": {
+ "uploads": "server://upload/"
}
}
]
@@ -478,14 +510,18 @@ Module declaration, on `config.json`:
```json
{
"type": "jobBoard",
- "endpoints": {
- "get": "http://server.url/job-offers/",
- "post": "http://server.url/job-offers/",
- "skills": "http://server.url/skills/"
- },
"parameters": {
+ "dataSrc": "federation://job-offers/current/",
+ "dataSrcExpired": "federation://job-offers/expired/",
+ "postDataSrc": "server://job-offers/",
+ "noRender": "",
+ "rangeSkills": "federation://skills/",
"fields": "earnBusinessProviding"
- }
+ },
+ "route": "job-offers",
+ "experimental": [
+ "routing"
+ ]
}
```
@@ -493,6 +529,8 @@ Where:
* `parameters.fields`: Optional set of custom fields. Notice that only `earnBusinessProviding` is already handled on djangoldp-joboffer.
+You need the experimental routing enabled to have a Job Board.
+
### Notifications
The notification module adds a bell with user's notification list and a badge on each menus with how much notifications are related to this resource. You'll need:
@@ -521,7 +559,8 @@ Module declaration, on `config.json`:
```json
{
"type": "chat",
- "endpoints": {
+ "parameters": {
+ "noRender": "",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
}
}
@@ -542,14 +581,12 @@ On `config.json`:
```json
{
"type": "polls",
- "endpoints": {
- "get": "http://server.url/polls/",
+ "parameters": {
+ "dataSrc": "http://server.url/polls/",
"post": "http://server.url/polls/",
"pollRangeTags": "http://server.url/tags/",
"pollRangeCircles": "http://server.url/circles/",
- "uploads": "http://server.url/upload/"
- },
- "parameters": {
+ "uploads": "http://server.url/upload/",
"displayStartEndDates": false
}
}
@@ -574,12 +611,17 @@ Module declaration, on `config.json`:
```json
{
"type": "projects",
- "endpoints": {
- "get": "http://server.url/projects/",
- "post": "http://server.url/projects/",
- "captains": "http://server.url/users/",
+ "parameters": {
+ "captains": "federation://users/",
+ "circles": "federation://circles/",
+ "dataSrc": "federation://projects/",
+ "dataSrcJoinable": "federation://projects/joinable/",
+ "post": "server://projects/",
+ "users": "federation://users/",
+ "noRender": "",
"xmpp": "wss://xmpp-dev.startinblox.com/xmpp-websocket"
- }
+ },
+ "route": "projects"
}
```
@@ -600,8 +642,8 @@ Module declaration, on `config.json`:
```json
{
"type": "resources",
- "endpoints": {
- "get": "http://server.url/resources/",
+ "parameters": {
+ "dataSrc": "http://server.url/resources/",
"post": "http://server.url/resources/",
"types": "http://server.url/types/",
"keywords": "http://server.url/keywords/",
@@ -629,11 +671,9 @@ Module declaration, on `config.json`:
{
"type": "registering",
"parameters": {
+ "dataSrc": "server://open-communities/",
"authority": "http://server.url/",
"authorityName": "your-authority-indentifier"
- },
- "endpoints": {
- "get": "http://server.url/open-communities/"
}
}
```
@@ -675,14 +715,25 @@ Module declaration, on `config.json`:
```json
{
"type": "profileDirectory",
- "endpoints": {
- "get": "http://server.url/users/",
- "skills": "http://server.url/skills/",
- "uploads": "http://server.url/upload/"
- }
+ "parameters": {
+ "dataSrc": "federation://users/",
+ "rangeSkills": "federation://skills/",
+ "noRender": "",
+ "paginateBy": "30",
+ "uploads": "server://upload/"
+ },
+ "federation": [
+ "..."
+ ],
+ "route": "members",
+ "experimental": [
+ "routing"
+ ]
}
```
+You need the experimental routing enabled to have a Profile Directory.
+
### Route generation
Orbit will, by default, generate an unique route for every of your module. You can customize this route by setting a `route` attribute on your module declaration.
@@ -692,10 +743,10 @@ Eg. for the Users Directory:
```json
{
"type": "profileDirectory",
- "endpoints": {
- "get": "http://server.url/users/",
- "skills": "http://server.url/skills/",
- "uploads": "http://server.url/upload/"
+ "parameters": {
+ "dataSrc": "server://users/",
+ "skills": "server://skills/",
+ "uploads": "server://upload/"
},
"route": "directory"
}
@@ -709,6 +760,29 @@ Some module don't need any route to be active, set `route` to `false` so.
Components can get the route of a module with `window.orbit.getRoute('componentName')`.
+#### Experimental routing
+
+This experimental setting allow to create a view containing a `solid-*` with every parameters provided without any code.
+
+```json
+ {
+ "type": "display",
+ "parameters": {
+ "dataSrc": "server://users/",
+ "fields": "name"
+ },
+ "experimental": [
+ "routing"
+ ]
+ }
+```
+
+will provide a view with:
+
+```html
+
+```
+
#### Change the default route
By default, Orbit will take a Dashboard as a default route.
@@ -720,10 +794,10 @@ Eg.:
```json
{
"type": "profileDirectory",
- "endpoints": {
- "get": "http://server.url/users/",
- "skills": "http://server.url/skills/",
- "uploads": "http://server.url/upload/"
+ "parameters": {
+ "dataSrc": "server://users/",
+ "skills": "server://skills/",
+ "uploads": "server://upload/"
},
"route": "directory",
"defaultRoute": true
@@ -732,6 +806,52 @@ Eg.:
If there is more than one component with this parameter, it'll be ignored.
+### Federation generation
+
+Any parameter of your config.json can take benefits from the source generation:
+
+`server://` will be replaced by the value of `client.server`:
+
+```json
+ {
+ "type": "awesome",
+ "parameters": {
+ "dataSrc": "server://users/"
+ }
+ }
+```
+
+`federation://` will generate a virtual federated container linking:
+
+* `client.server`
+* `client.servers`
+* `component.federation`
+* `extension.federation`, if on an extension
+
+```json
+ {
+ "client": {
+ "server": "http://serverA",
+ "servers": [
+ "http://serverB"
+ ]
+ },
+ "components": [
+ {
+ "type": "awesome",
+ "parameters": {
+ "dataSrc": "federation://users/"
+ },
+ "federation": [
+ "http://serverC"
+ ]
+ }
+ ]
+ }
+```
+
+Will result on a virtual federated container containing `http://serverA/users/`, `http://serverB/users/` and `http://serverC/users/` on data-src.
+
## Troubleshooting
### Circles or Projects are missing the @user list
diff --git a/package-lock.json b/package-lock.json
index f67ab7a..a77b09a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1906,6 +1906,27 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
+ "autoprefixer": {
+ "version": "9.8.6",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
+ "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==",
+ "requires": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "colorette": "^1.2.1",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
+ }
+ }
+ },
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -2337,6 +2358,13 @@
"integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
"requires": {
"callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
+ }
}
},
"caller-path": {
@@ -2347,11 +2375,6 @@
"caller-callsite": "^2.0.0"
}
},
- "callsites": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
- },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -2793,17 +2816,6 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "cosmiconfig": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
- "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
- "requires": {
- "import-fresh": "^2.0.0",
- "is-directory": "^0.3.1",
- "js-yaml": "^3.13.1",
- "parse-json": "^4.0.0"
- }
- },
"create-ecdh": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
@@ -2904,20 +2916,6 @@
"randomfill": "^1.0.3"
}
},
- "css-color-names": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
- "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
- },
- "css-declaration-sorter": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
- "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
- "requires": {
- "postcss": "^7.0.1",
- "timsort": "^0.3.0"
- }
- },
"css-modules-loader-core": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz",
@@ -3029,54 +3027,6 @@
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
},
- "cssnano": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
- "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
- "requires": {
- "cosmiconfig": "^5.0.0",
- "cssnano-preset-default": "^4.0.8",
- "is-resolvable": "^1.0.0",
- "postcss": "^7.0.0"
- }
- },
- "cssnano-preset-default": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
- "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
- "requires": {
- "css-declaration-sorter": "^4.0.1",
- "cssnano-util-raw-cache": "^4.0.1",
- "postcss": "^7.0.0",
- "postcss-calc": "^7.0.1",
- "postcss-colormin": "^4.0.3",
- "postcss-convert-values": "^4.0.1",
- "postcss-discard-comments": "^4.0.2",
- "postcss-discard-duplicates": "^4.0.2",
- "postcss-discard-empty": "^4.0.1",
- "postcss-discard-overridden": "^4.0.1",
- "postcss-merge-longhand": "^4.0.11",
- "postcss-merge-rules": "^4.0.3",
- "postcss-minify-font-values": "^4.0.2",
- "postcss-minify-gradients": "^4.0.2",
- "postcss-minify-params": "^4.0.2",
- "postcss-minify-selectors": "^4.0.2",
- "postcss-normalize-charset": "^4.0.1",
- "postcss-normalize-display-values": "^4.0.2",
- "postcss-normalize-positions": "^4.0.2",
- "postcss-normalize-repeat-style": "^4.0.2",
- "postcss-normalize-string": "^4.0.2",
- "postcss-normalize-timing-functions": "^4.0.2",
- "postcss-normalize-unicode": "^4.0.1",
- "postcss-normalize-url": "^4.0.1",
- "postcss-normalize-whitespace": "^4.0.2",
- "postcss-ordered-values": "^4.1.2",
- "postcss-reduce-initial": "^4.0.3",
- "postcss-reduce-transforms": "^4.0.2",
- "postcss-svgo": "^4.0.3",
- "postcss-unique-selectors": "^4.0.1"
- }
- },
"cssnano-util-get-arguments": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
@@ -4324,6 +4274,528 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
+ },
+ "css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "requires": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ }
+ },
+ "cssnano": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "requires": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ }
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
+ },
+ "normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "requires": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "requires": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "requires": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
+ },
"posthtml": {
"version": "0.13.4",
"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.4.tgz",
@@ -4341,6 +4813,33 @@
"htmlparser2": "^3.9.2"
}
},
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+ },
+ "stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
"terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
@@ -4429,15 +4928,6 @@
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
- "import-fresh": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
- "requires": {
- "caller-path": "^2.0.0",
- "resolve-from": "^3.0.0"
- }
- },
"indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
@@ -4469,11 +4959,6 @@
"integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
"dev": true
},
- "is-absolute-url": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
- "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
- },
"is-accessor-descriptor": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
@@ -4545,6 +5030,13 @@
"hsla-regex": "^1.0.0",
"rgb-regex": "^1.0.1",
"rgba-regex": "^1.0.0"
+ },
+ "dependencies": {
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
+ }
}
},
"is-core-module": {
@@ -5517,10 +6009,10 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
- "normalize-url": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
- "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
},
"normalize.css": {
"version": "8.0.1",
@@ -5544,6 +6036,11 @@
"boolbase": "~1.0.0"
}
},
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
+ },
"nwsapi": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
@@ -5891,6 +6388,17 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -5903,10 +6411,454 @@
"which": "^1.2.9"
}
},
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
+ },
+ "css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "requires": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ }
+ },
+ "cssnano": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "requires": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
+ },
+ "normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
"path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
+ "postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "requires": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "requires": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "requires": {
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "requires": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ }
+ },
+ "postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "requires": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+ },
+ "stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -5942,15 +6894,6 @@
"safe-buffer": "^5.1.1"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
"parse5": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
@@ -6046,9 +6989,9 @@
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
},
"postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
@@ -6070,168 +7013,6 @@
}
}
},
- "postcss-calc": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
- "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
- "requires": {
- "postcss": "^7.0.27",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.0.2"
- },
- "dependencies": {
- "postcss-value-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
- "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
- }
- }
- },
- "postcss-colormin": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
- "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
- "requires": {
- "browserslist": "^4.0.0",
- "color": "^3.0.0",
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-convert-values": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
- "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
- "requires": {
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-discard-comments": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
- "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "postcss-discard-duplicates": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
- "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "postcss-discard-empty": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
- "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "postcss-discard-overridden": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
- "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "postcss-merge-longhand": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
- "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
- "requires": {
- "css-color-names": "0.0.4",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0",
- "stylehacks": "^4.0.0"
- }
- },
- "postcss-merge-rules": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
- "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
- "requires": {
- "browserslist": "^4.0.0",
- "caniuse-api": "^3.0.0",
- "cssnano-util-same-parent": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-selector-parser": "^3.0.0",
- "vendors": "^1.0.0"
- },
- "dependencies": {
- "postcss-selector-parser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
- "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
- "requires": {
- "dot-prop": "^5.2.0",
- "indexes-of": "^1.0.1",
- "uniq": "^1.0.1"
- }
- }
- }
- },
- "postcss-minify-font-values": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
- "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
- "requires": {
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-minify-gradients": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
- "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
- "requires": {
- "cssnano-util-get-arguments": "^4.0.0",
- "is-color-stop": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-minify-params": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
- "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
- "requires": {
- "alphanum-sort": "^1.0.0",
- "browserslist": "^4.0.0",
- "cssnano-util-get-arguments": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0",
- "uniqs": "^2.0.0"
- }
- },
- "postcss-minify-selectors": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
- "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
- "requires": {
- "alphanum-sort": "^1.0.0",
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-selector-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss-selector-parser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
- "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
- "requires": {
- "dot-prop": "^5.2.0",
- "indexes-of": "^1.0.1",
- "uniq": "^1.0.1"
- }
- }
- }
- },
"postcss-modules-extract-imports": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
@@ -6367,128 +7148,6 @@
}
}
},
- "postcss-normalize-charset": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
- "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
- "requires": {
- "postcss": "^7.0.0"
- }
- },
- "postcss-normalize-display-values": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
- "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
- "requires": {
- "cssnano-util-get-match": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-positions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
- "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
- "requires": {
- "cssnano-util-get-arguments": "^4.0.0",
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-repeat-style": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
- "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
- "requires": {
- "cssnano-util-get-arguments": "^4.0.0",
- "cssnano-util-get-match": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-string": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
- "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
- "requires": {
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-timing-functions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
- "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
- "requires": {
- "cssnano-util-get-match": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-unicode": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
- "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
- "requires": {
- "browserslist": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-url": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
- "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
- "requires": {
- "is-absolute-url": "^2.0.0",
- "normalize-url": "^3.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-normalize-whitespace": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
- "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
- "requires": {
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-ordered-values": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
- "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
- "requires": {
- "cssnano-util-get-arguments": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
- "postcss-reduce-initial": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
- "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
- "requires": {
- "browserslist": "^4.0.0",
- "caniuse-api": "^3.0.0",
- "has": "^1.0.0",
- "postcss": "^7.0.0"
- }
- },
- "postcss-reduce-transforms": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
- "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
- "requires": {
- "cssnano-util-get-match": "^4.0.0",
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0"
- }
- },
"postcss-selector-parser": {
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz",
@@ -6500,26 +7159,6 @@
"util-deprecate": "^1.0.2"
}
},
- "postcss-svgo": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
- "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
- "requires": {
- "postcss": "^7.0.0",
- "postcss-value-parser": "^3.0.0",
- "svgo": "^1.0.0"
- }
- },
- "postcss-unique-selectors": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
- "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
- "requires": {
- "alphanum-sort": "^1.0.0",
- "postcss": "^7.0.0",
- "uniqs": "^2.0.0"
- }
- },
"postcss-value-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
@@ -7050,11 +7689,6 @@
"path-parse": "^1.0.6"
}
},
- "resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
- },
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@@ -7831,28 +8465,6 @@
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true
},
- "stylehacks": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
- "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
- "requires": {
- "browserslist": "^4.0.0",
- "postcss": "^7.0.0",
- "postcss-selector-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss-selector-parser": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
- "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
- "requires": {
- "dot-prop": "^5.2.0",
- "indexes-of": "^1.0.1",
- "uniq": "^1.0.1"
- }
- }
- }
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -8125,11 +8737,26 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
"is-absolute-url": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
"integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q=="
},
+ "postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
"postcss-selector-parser": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
@@ -8139,6 +8766,14 @@
"indexes-of": "^1.0.1",
"uniq": "^1.0.1"
}
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
diff --git a/package.json b/package.json
index 0a32089..58268ec 100644
--- a/package.json
+++ b/package.json
@@ -56,8 +56,14 @@
],
"clearDist": false
},
+ "postcss": {
+ "plugins": {
+ "autoprefixer": {}
+ }
+ },
"dependencies": {
"@startinblox/orbit-styling-framework": "^1.9.9",
+ "autoprefixer": "^9.8.6",
"cross-env": "^7.0.3",
"fs-extra": "^10.0.0",
"normalize.css": "^8.0.1",
diff --git a/src/components/sentry.js b/src/components/sentry.js
deleted file mode 100644
index bdbb7f2..0000000
--- a/src/components/sentry.js
+++ /dev/null
@@ -1,8 +0,0 @@
-if (typeof Sentry !== 'undefined') {
- Sentry.init({
- dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4',
- integrations: [new Sentry.Integrations.BrowserTracing()],
- environment: document.location.hostname,
- tracesSampleRate: 0.2,
- });
-}
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index 170e7c9..c67f6fb 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,2 +1,3 @@
//- Automatically import every scripts
+import './libs/**/*.js';
import './scripts/**/*.js';
\ No newline at end of file
diff --git a/src/index.pug b/src/index.pug
index c7e00f6..969592e 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -25,11 +25,8 @@ html(lang="en")
script(src="https://browser.sentry-cdn.com/5.25.0/bundle.tracing.min.js" defer)
- include orbit-router.pug
- include orbit-unify.pug
+ include orbit-envoy.pug
- script(type="module" src="/components/getRoute.js" defer)
- script(type="module" src="/components/sentry.js" defer)
script(type="module" src="/components/orbit-auto-login.js" defer)
script(type="module" src="/components/orbit-reactivity.js" defer)
script(type="module" src="/components/sw-toolbox.js" defer)
@@ -88,7 +85,27 @@ html(lang="en")
id=component.route
data-view=component.route
hidden
- )&attributes({"no-render": component.noRender})
+ )
+
+ //- Experimental routing
+ Codeless component loading
+ Eg.:
+ ```
+ {
+ "type": "awesome",
+ "parameters": {
+ "dataSrc": "server://some-model/"
+ },
+ "experimental": [
+ "routing"
+ ]
+ }
+ ```
+ will generate a view vith a
+ if component.experimental
+ if component.experimental.includes('routing')
+ .scrollbar-content.whitespace-normal.padding-top-xlarge.padding-right-xsmall.padding-bottom-xlarge.padding-left-xsmall.sm-padding-top-medium
+ #{"solid-"+component.type}&attributes(component.attributes)
if component.type == "about"
include views/page-about.pug
@@ -102,66 +119,52 @@ html(lang="en")
.with-sidebar.whitespace-normal.jsMobileContentSidebarControl
orbit-reactivity(bind-user nested-field='inbox' target-src="store://user.circles")
orbit-reactivity(bind-user nested-field="circles" target-src="store://user")
- orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.post}`)
- orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.post}joinable/`)
- orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.get}joinable/`)
+ orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.post}`)
+ orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.dataSrcJoinable}`)
+ orbit-reactivity(bind-user nested-field="circles" target-src=`${component.parameters.dataSrc}`)
include views/page-circle.pug
if component.type == "communities"
.scrollbar-content.whitespace-normal
include views/page-communities.pug
- if component.type == "dashboard"
- .scrollbar-content
- include views/page-dashboard.pug
-
if component.type == "events"
.scrollbar-content.bg-color-white
include views/page-events.pug
if component.type == "jobBoard"
- .scrollbar-content
- orbit-reactivity(data-src=`${component.endpoints.post}current/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.post}expired/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.get}current/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.get}current/` target-src=`${component.endpoints.get}expired/`)
- orbit-reactivity(data-src=`${component.endpoints.get}expired/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}expired/`)
- orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.endpoints.get}current/`)
- include views/page-job-board.pug
+ orbit-reactivity(data-src=`${component.parameters.dataSrcExpired}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(data-src=`${component.parameters.dataSrcExpired}` target-src=`${component.parameters.post}`)
+ orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.dataSrcExpired}`)
+ orbit-reactivity(bind-user nested-field="joboffers" target-src=`${component.parameters.post}`)
if component.type == "polls"
.scrollbar-content
include views/page-polls.pug
+ if component.type == "profileDirectory"
+ orbit-reactivity(bind-user nested-field="profile" target-src="store://user")
+ orbit-reactivity(bind-user nested-field="account" target-src="store://user")
+
if component.type == "projects"
.with-sidebar.whitespace-normal.jsMobileContentSidebarControl
orbit-reactivity(bind-user nested-field='inbox' target-src="store://user.projects")
orbit-reactivity(bind-user nested-field="projects" target-src="store://user")
- orbit-reactivity(data-src=`${component.endpoints.post}joinable/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(data-src=`${component.endpoints.post}` target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.post}`)
- orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.post}joinable/`)
- orbit-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.get}`)
- orbit-reactivity(bind-user nested-field="projects" target-src=`${component.endpoints.get}joinable/`)
+ orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(data-src=`${component.parameters.dataSrcJoinable}` target-src=`${component.parameters.post}`)
+ orbit-reactivity(data-src=`${component.parameters.post}` target-src=`${component.parameters.dataSrc}`)
+ orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.post}`)
+ orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.dataSrcJoinable}`)
+ orbit-reactivity(bind-user nested-field="projects" target-src=`${component.parameters.dataSrc}`)
include views/page-project.pug
if component.type == "resources"
.scrollbar-content.bg-color-white
include views/page-resources.pug
-
- if component.type == "profileDirectory"
- .scrollbar-content
- orbit-reactivity(bind-user nested-field="profile" target-src="store://user")
- orbit-reactivity(bind-user nested-field="account" target-src="store://user")
- include views/page-directory.pug
else
//- Components declaration without any route (`route`="false") but that need some code declaration
diff --git a/src/components/getRoute.js b/src/libs/getRoute.js
similarity index 100%
rename from src/components/getRoute.js
rename to src/libs/getRoute.js
diff --git a/src/libs/sentry.js b/src/libs/sentry.js
new file mode 100644
index 0000000..ce56b0f
--- /dev/null
+++ b/src/libs/sentry.js
@@ -0,0 +1,11 @@
+document.addEventListener("DOMContentLoaded", () => {
+ if (typeof Sentry !== 'undefined') {
+ Sentry.init({
+ dsn: 'https://b4b29557689049a39168599577adb940@sentry.startinblox.com/4',
+ integrations: [new Sentry.Integrations.BrowserTracing()],
+ environment: document.location.hostname,
+ tracesSampleRate: 0.2,
+ });
+ window.orbit.sentry = Sentry;
+ }
+});
\ No newline at end of file
diff --git a/src/orbit-envoy.pug b/src/orbit-envoy.pug
new file mode 100644
index 0000000..dc95b44
--- /dev/null
+++ b/src/orbit-envoy.pug
@@ -0,0 +1,198 @@
+//-
+ Orbit Envoy - Collision-free route generation & federation management for latter usage
+
+ Create a window.orbit.components, accessible by all components with the route declaration.
+ Components can also get benefits from the `getRoute` function
+ Eg.
+ ```
+ window.orbit.getRoute('chat', true)
+ window.orbit.getRoute('ffb39ad020645') // Where uxnzsa is the uniq of the component
+ ```
+ will return the route of the first chat component, if exists, or triggers an error.
+
+
+ Okay. This file really needs a cleanup now... Emergency, have to release for Friday...
+-
+ let routes = new Set();
+ const getRoute = (type, returnFirst = false) => {
+ let availables = components.filter(c => c.type == type || c.uniq == type);
+ components.forEach(c => {
+ if (c.extensions) {
+ c.extensions.forEach(e => {
+ if (e.type == type || e.uniq == type) {
+ availables.push(e);
+ }
+ });
+ }
+ });
+ if (availables.length > 1) {
+ if (returnFirst) {
+ return availables[0].route;
+ } else {
+ return availables[availables.length - 1].route;
+ }
+ } else if (availables.length < 1) {
+ console.error(`No component found for route ${type}`);
+ } else {
+ return availables[0].route;
+ }
+ }
+ const getComponent = (type, returnFirst = false) => {
+ let availables = components.filter(c=>c.type==type);
+ if(availables.length > 1) {
+ if(returnFirst) {
+ return availables[0];
+ } else {
+ console.error(`Too much components availables for type ${type}`);
+ }
+ } else if(availables.length < 1) {
+ console.error(`No component found for type ${type}`);
+ } else {
+ return availables[0];
+ }
+ }
+ const generateUrl = (federation, path) => {
+ let result = [];
+ for(let target of federation) {
+ result.push({
+ "@id": target + path.replace(/federation:\//, ''),
+ "@type": "sib:federatedContainer"
+ });
+ }
+ return result;
+ }
+ var federations = {};
+ let federationRegistering = "";
+
+for component of components
+ -
+ if(typeof component.route === 'undefined') {
+ component.route = component.type;
+ }
+ component.uniq = Math.random().toString(16).slice(2);
+ if(component.route) {
+ let route = component.route;
+ if (routes.has(component.route)) {
+ route += "-" + component.uniq;
+ }
+ routes.add(route);
+ component.route = route;
+ }
+ if(component.extensions) {
+ for(extension of component.extensions) {
+ if(typeof extension.route === 'undefined') {
+ extension.route = extension.type;
+ }
+ extension.uniq = Math.random().toString(16).slice(2);
+ if(extension.route) {
+ let route = extension.route;
+ if (routes.has(extension.route)) {
+ route += "-" + extension.uniq;
+ }
+ routes.add(route);
+ extension.route = route;
+ }
+ }
+ }
+ if(component.parameters) {
+ let federation = new Set();
+ if(client.server) {
+ federation.add(client.server);
+ }
+ if(client.servers) {
+ for(server of client.servers) {
+ federation.add(server);
+ }
+ }
+ if(component.federation) {
+ for(target of component.federation) {
+ federation.add(target);
+ }
+ }
+ component.federation = [...federation];
+ for(const [attribute, path] of Object.entries(component.parameters)) {
+ if(typeof path === 'string') {
+ if(path.startsWith('federation://')) {
+ federations[`store://local.${component.uniq}/${attribute}/`] = {
+ "@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld",
+ "@type": "ldp:Container",
+ "@id": `store://local.${component.uniq}/${attribute}/`,
+ "ldp:contains": generateUrl(federation, path),
+ "permissions": [{"mode": {"@type": "view"}}]
+ };
+ component.parameters[attribute] = `store://local.${component.uniq}/${attribute}/`;
+ }
+ if(path.startsWith('server://')) {
+ component.parameters[attribute] = client.server + path.replace(/server:\//, '');
+ }
+ }
+ }
+ /* Rewrite every parameters to kebab-case */
+ let rewriteParameters = {};
+ for(const [attribute, value] of Object.entries(component.parameters)) {
+ rewriteParameters[attribute.replace(/((?<=[a-z\d])[A-Z]|(?<=[A-Z\d])[A-Z](?=[a-z]))/g, '-$1').toLowerCase()] = value;
+ }
+ component.attributes = rewriteParameters;
+ component.attributes.route = component.route;
+ component.attributes.uniq = component.uniq;
+ }
+ if(component.extensions) {
+ for(extension of component.extensions) {
+ if(extension.parameters) {
+ let federation = new Set();
+ if(client.server) {
+ federation.add(client.server);
+ }
+ if(client.servers) {
+ for(server of client.servers) {
+ federation.add(server);
+ }
+ }
+ if(component.federation) {
+ for(target of component.federation) {
+ federation.add(target);
+ }
+ }
+ if(extension.federation) {
+ for(target of extension.federation) {
+ federation.add(target);
+ }
+ }
+ extension.federation = [...federation];
+ for(const [attribute, path] of Object.entries(extension.parameters)) {
+ if(typeof path === 'string') {
+ if(path.startsWith('federation://')) {
+ federations[`store://local.${extension.uniq}/${attribute}/`] = {
+ "@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld",
+ "@type": "ldp:Container",
+ "@id": `store://local.${extension.uniq}/${attribute}/`,
+ "ldp:contains": generateUrl(federation, path),
+ "permissions": [{"mode": {"@type": "view"}}]
+ };
+ extension.parameters[attribute] = `store://local.${extension.uniq}/${attribute}/`;
+ }
+ if(path.startsWith('server://')) {
+ extension.parameters[attribute] = client.server + path.replace(/server:\//, '');
+ }
+ }
+ }
+ /* Rewrite every parameters to kebab-case */
+ let rewriteParameters = {};
+ for(const [attribute, value] of Object.entries(extension.parameters)) {
+ rewriteParameters[attribute.replace(/((?<=[a-z\d])[A-Z]|(?<=[A-Z\d])[A-Z](?=[a-z]))/g, '-$1').toLowerCase()] = value;
+ }
+ extension.attributes = rewriteParameters;
+ extension.attributes.uniq = extension.uniq;
+ }
+ }
+ }
+
+-
+ const defaultComponent = components.filter(e=>e.defaultRoute != undefined);
+ let defaultRoute = "dashboard";
+ if(defaultComponent.length == 1) {
+ defaultRoute = defaultComponent[0].uniq;
+ }
+
+- const orbitComponents = `window.orbit={};window.orbit.components = ${JSON.stringify(components)};window.orbit.federations = ${JSON.stringify(federations)};window.orbit.defaultRoute = "${defaultRoute}";window.orbit.client = ${JSON.stringify(client)};window.hubl = window.orbit;`;
+script!=orbitComponents
\ No newline at end of file
diff --git a/src/orbit-router.pug b/src/orbit-router.pug
deleted file mode 100644
index fccf125..0000000
--- a/src/orbit-router.pug
+++ /dev/null
@@ -1,89 +0,0 @@
-//-
- Orbit router declaration for latter generation
- Create a window.orbit.components, accessible by all components with the route declaration.
- Components can also get benefits from the `getRoute` function
- Eg.
- ```
- window.orbit.getRoute('chat', true)
- window.orbit.getRoute('uxnzsa') // Where uxnzsa is the uniq of the component
- ```
- will return the route of the first chat component, if exists, or triggers an error.
--
- let routes = new Set();
- const getRoute = (type, returnFirst = false) => {
- let availables = components.filter(c => c.type == type || c.uniq == type);
- components.forEach(c => {
- if (c.extensions) {
- c.extensions.forEach(e => {
- if (e.type == type || e.uniq == type) {
- availables.push(e);
- }
- });
- }
- });
- if (availables.length > 1) {
- if (returnFirst) {
- return availables[0].route;
- } else {
- return availables[availables.length - 1].route;
- }
- } else if (availables.length < 1) {
- console.error(`No component found for route ${type}`);
- } else {
- return availables[0].route;
- }
- }
- const getComponent = (type, returnFirst = false) => {
- let availables = components.filter(c=>c.type==type);
- if(availables.length > 1) {
- if(returnFirst) {
- return availables[0];
- } else {
- console.error(`Too much components availables for type ${type}`);
- }
- } else if(availables.length < 1) {
- console.error(`No component found for type ${type}`);
- } else {
- return availables[0];
- }
- }
-
-for component of components
- -
- if(typeof component.route === 'undefined') {
- component.route = component.type;
- }
- if(component.route) {
- component.uniq = Math.random().toString(16).slice(2);
- let route = component.route;
- if (routes.has(component.route)) {
- route += "-" + component.uniq;
- }
- routes.add(route);
- component.route = route;
- }
- if(component.extensions)
- for extension of component.extensions
- -
- if(typeof extension.route === 'undefined') {
- extension.route = extension.type;
- }
- if(extension.route) {
- extension.uniq = Math.random().toString(16).slice(2);
- let route = extension.route;
- if (routes.has(extension.route)) {
- route += "-" + extension.uniq;
- }
- routes.add(route);
- extension.route = route;
- }
-
--
- const defaultComponent = components.filter(e=>e.defaultRoute != undefined);
- let defaultRoute = "dashboard";
- if(defaultComponent.length == 1) {
- defaultRoute = defaultComponent[0].uniq;
- }
-
-- const orbitComponents = `window.orbit={};window.orbit.components = ${JSON.stringify(components)};window.orbit.defaultRoute = "${defaultRoute}";window.orbit.client = ${JSON.stringify(client)};window.hubl = window.orbit;`;
-script!=orbitComponents
\ No newline at end of file
diff --git a/src/orbit-unify.pug b/src/orbit-unify.pug
deleted file mode 100644
index e69de29..0000000
diff --git a/src/scripts/federationRegistering.js b/src/scripts/federationRegistering.js
new file mode 100644
index 0000000..0dbf716
--- /dev/null
+++ b/src/scripts/federationRegistering.js
@@ -0,0 +1,7 @@
+document.addEventListener("DOMContentLoaded", () => {
+ for(const [uniq, federation] of Object.entries(window.orbit.federations)) {
+ if (sibStore && "setLocalData" in sibStore) {
+ sibStore.setLocalData(federation, uniq);
+ }
+ }
+});
\ No newline at end of file
diff --git a/src/views/page-dashboard.pug b/src/views/page-dashboard.pug
deleted file mode 100644
index 6d66673..0000000
--- a/src/views/page-dashboard.pug
+++ /dev/null
@@ -1,5 +0,0 @@
-div.padding-top-xlarge.padding-right-xsmall.padding-bottom-xlarge.padding-left-xsmall.sm-padding-top-medium.bg-color-grey.whitespace-normal
- solid-dashboard(
- data-src=component.endpoints.get
- uniq=component.uniq
- )&attributes({target:component.parameters ? component.parameters.target : false})
diff --git a/src/views/page-directory.pug b/src/views/page-directory.pug
deleted file mode 100644
index 635c5dd..0000000
--- a/src/views/page-directory.pug
+++ /dev/null
@@ -1,7 +0,0 @@
-div.bg-color-grey.padding-top-xlarge.padding-right-small.padding-bottom-xlarge.padding-left-small.whitespace-normal
- solid-directory(
- data-src=`${component.endpoints.get}`
- range-skills=`${component.endpoints.skills}`
- uniq=component.uniq
- paginate-by="30"
- )
diff --git a/src/views/page-events.pug b/src/views/page-events.pug
index 5b5d7b3..b7ee209 100644
--- a/src/views/page-events.pug
+++ b/src/views/page-events.pug
@@ -1,12 +1,11 @@
-div.whitespace-normal
- solid-event(
- data-src=`${component.endpoints.events}`
- past-events=`${component.parameters ? component.parameters.pastevents : "hidden"}`
- visiblecheckbox=`${component.parameters ? component.parameters.visiblecheckbox : "hidden"}`
- visibilityregions=`${component.parameters ? component.parameters.visibilityregions : "hidden"}`
- range-event-region=`${component.endpoints.regionevents}`
- range-event-type=`${component.endpoints.typeevents}`
- range-event-circle=`${getComponent('circles').endpoints.get}/`
- upload-dir=`${component.endpoints.uploads}`
- id-prefix='default'
- )
+solid-event(
+ data-src=`${component.parameters.events}`
+ past-events=`${component.parameters.pastevents || "hidden"}`
+ visiblecheckbox=`${component.parameters.visiblecheckbox || "hidden"}`
+ visibilityregions=`${component.parameters.visibilityregions || "hidden"}`
+ range-event-region=`${component.parameters.regionevents}`
+ range-event-type=`${component.parameters.typeevents}`
+ range-event-circle=`${component.parameters.circles}`
+ upload-dir=`${component.parameters.uploads}`
+ id-prefix='default'
+)
diff --git a/src/views/page-job-board.pug b/src/views/page-job-board.pug
deleted file mode 100644
index 474feaf..0000000
--- a/src/views/page-job-board.pug
+++ /dev/null
@@ -1,8 +0,0 @@
-solid-job-board(
- data-src=`${component.endpoints.get}`
- post-data-src=`${component.endpoints.post}`
- range-skills=`${component.endpoints.skills}`
- uniq=component.uniq
-)&attributes({
- "fields": component.parameters ? component.parameters.fields : false
-})
diff --git a/src/views/page-messages.pug b/src/views/page-messages.pug
index a3b2e46..e5e9122 100644
--- a/src/views/page-messages.pug
+++ b/src/views/page-messages.pug
@@ -25,7 +25,7 @@ div.segment.full.padding-top-small.padding-right-large.padding-bottom-small.padd
solid-xmpp-chat(
data-authentication='login'
data-auto-login='true'
- data-websocket-url=component.endpoints.xmpp
+ data-websocket-url=component.parameters.xmpp
bind-resources
uniq=component.uniq
)
diff --git a/src/views/page-polls.pug b/src/views/page-polls.pug
index a169131..04fbad8 100644
--- a/src/views/page-polls.pug
+++ b/src/views/page-polls.pug
@@ -1,9 +1,9 @@
solid-poll(
- data-src=component.endpoints.get
- data-dest=component.endpoints.post
- range-tags=component.endpoints.pollRangeTags
- range-circles=component.endpoints.pollRangeCircles
- upload-dir=component.endpoints.uploads
+ data-src=component.parameters.dataSrc
+ data-dest=component.parameters.post
+ range-tags=component.parameters.pollRangeTags
+ range-circles=component.parameters.pollRangeCircles
+ upload-dir=component.parameters.uploads
uniq=component.uniq
)&attributes({
"display-start-end-dates": component.parameters ? component.parameters.displayStartEndDates : false
diff --git a/src/views/page-profile.pug b/src/views/page-profile.pug
index c536ab0..ae4673f 100644
--- a/src/views/page-profile.pug
+++ b/src/views/page-profile.pug
@@ -1,6 +1,6 @@
solid-profile(
bind-user
- upload-src=`${getComponent('profileDirectory', true).endpoints.uploads}`
- range-skills=`${getComponent('profileDirectory', true).endpoints.skills}`
+ upload-src=`${getComponent('profileDirectory', true).parameters.uploads}`
+ range-skills=`${getComponent('profileDirectory', true).parameters.skills}`
uniq=`${getComponent('profileDirectory', true).uniq}`
)
diff --git a/src/views/page-registering.pug b/src/views/page-registering.pug
index e9b4a11..025058e 100644
--- a/src/views/page-registering.pug
+++ b/src/views/page-registering.pug
@@ -28,14 +28,14 @@
widget-logo='orbit-index-community-logo'
widget-name='orbit-index-community-text'
)
- if getComponent('registering').endpoints.get
+ if getComponent('registering').parameters.dataSrc
div.loader#orbit-index-community-selector-loader
div
div
div
div
solid-display.community-flex-container(
- data-src=`${getComponent('registering').endpoints.get}`
+ data-src=`${getComponent('registering').parameters.dataSrc}`
fields='action'
action-action='action'
widget-action='orbit-index-select-community'
diff --git a/src/views/page-resources.pug b/src/views/page-resources.pug
index c29dac9..a6dfa46 100644
--- a/src/views/page-resources.pug
+++ b/src/views/page-resources.pug
@@ -1,14 +1,14 @@
div.whitespace-normal
- solid-resource(data-src=`${component.endpoints.get}`
- post-data-src=`${component.endpoints.post}`
- range-resource-type=`${component.endpoints.types}`
- post-data-type-src=`${component.endpoints.postTypes}`
- range-resource-keyword=`${component.endpoints.keywords}`
- post-data-keyword-src=`${component.endpoints.postKeywords}`
- circles=`${component.endpoints.circles}/`
+ solid-resource(data-src=`${component.parameters.dataSrc}`
+ post-data-src=`${component.parameters.post}`
+ range-resource-type=`${component.parameters.types}`
+ post-data-type-src=`${component.parameters.postTypes}`
+ range-resource-keyword=`${component.parameters.keywords}`
+ post-data-keyword-src=`${component.parameters.postKeywords}`
+ circles=`${component.parameters.circles}`
associated-circle-label=""
data-trans=`associated-circle-label=${component.parameters && component.parameters.associatedName ? component.parameters.associatedName : 'circle.extensions.associated'}`
- upload-dir=`${component.endpoints.uploads}`
+ upload-dir=`${component.parameters.uploads}`
id-prefix='default'
uniq=component.uniq
)
diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug
index 9e5aade..9f53b12 100644
--- a/src/views/partials/admin/page-admin-circles-create.pug
+++ b/src/views/partials/admin/page-admin-circles-create.pug
@@ -14,7 +14,7 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
div
solid-form.form(
- data-src=`${getComponent('circles').endpoints.post}`
+ data-src=`${getComponent('circles').parameters.post}`
fields='status, community.community, name, subtitle, description, help'
required-status
diff --git a/src/views/partials/admin/page-admin-circles-join.pug b/src/views/partials/admin/page-admin-circles-join.pug
index eabdb9f..7f8025f 100644
--- a/src/views/partials/admin/page-admin-circles-join.pug
+++ b/src/views/partials/admin/page-admin-circles-join.pug
@@ -13,10 +13,9 @@ solid-widget(name=`orbit-admin-circle-join-button`)
class-submit-button="add-member-button segment sm-full margin-top-xsmall text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-reversed color-secondary bordered children-button-icon children-icon-arrow-right-circle children-icon-small children-icon-margin-right-xsmall"
data-trans='submit-button=circle.list.buttonJoin'
)
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${value}')
orbit-reactivity(bind-user nested-field="circles" target-src='${value}')
include page-admin-circles.pug
@@ -24,7 +23,7 @@ include page-admin-circles.pug
div.segment.full.padding-small.padding-top-xsmall.sm-padding-xsmall.whitespace-normal
solid-display(
class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination'
- data-src=`${getComponent('circles').endpoints.get}joinable/`
+ data-src=`${getComponent('circles').parameters.dataSrcJoinable}`
fields='segment1(segment2(community.community.logo), segment3(name, subtitle, counter, members))'
filtered-by=`admin-circle-filter-${page}`
order-by='name'
diff --git a/src/views/partials/admin/page-admin-circles-leave.pug b/src/views/partials/admin/page-admin-circles-leave.pug
index 1440cd6..934ee5e 100644
--- a/src/views/partials/admin/page-admin-circles-leave.pug
+++ b/src/views/partials/admin/page-admin-circles-leave.pug
@@ -1,9 +1,8 @@
solid-widget(name=`leave-circle-reactivity`)
template
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${value}')
orbit-reactivity(bind-user nested-field="circles" target-src='${value}')
solid-widget(name=`orbit-admin-circle-leave-button`)
@@ -14,10 +13,9 @@ solid-widget(name=`orbit-admin-circle-leave-button`)
data-label=''
data-trans='data-label=circle.list.buttonQuit'
)
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrc}` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.dataSrcJoinable}` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('circles').parameters.post}` target-src='${src}')
orbit-reactivity(bind-user nested-field="circles" target-src='${src}')
solid-display(
data-src="${src}"
diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug
index 5e5159e..34cdffc 100644
--- a/src/views/partials/admin/page-admin-circles.pug
+++ b/src/views/partials/admin/page-admin-circles.pug
@@ -16,7 +16,7 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi
div.segment.half.sm-full
h3.text-color-heading.text-semibold.text-letter-spacing-large(data-trans='circle.list.subTitle')
div.segment.half.sm-full.text-right
- solid-ac-checker(data-src=`${getComponent('circles').endpoints.post}`, permission='acl:Append')
+ solid-ac-checker(data-src=`${getComponent('circles').parameters.post}`, permission='acl:Append')
solid-link(
class='segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered button-icon icon icon-margin-right-xsmall icon-plus'
next=`admin-${getRoute('circles', true)}-create`
@@ -43,7 +43,7 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi
span(data-trans='circle.list.tabJoin')
solid-display(
class="margin-left-xxsmall"
- data-src=`${getComponent('circles').endpoints.get}joinable/`
+ data-src=`${getComponent('circles').parameters.dataSrcJoinable}`
fields=""
counter-template="(${counter})"
filtered-by=`admin-circle-filter-${page}`
diff --git a/src/views/partials/admin/page-admin-projects-create.pug b/src/views/partials/admin/page-admin-projects-create.pug
index f58ad02..022bb9b 100644
--- a/src/views/partials/admin/page-admin-projects-create.pug
+++ b/src/views/partials/admin/page-admin-projects-create.pug
@@ -14,9 +14,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
div
solid-form.form(
- data-src=`${getComponent('projects').endpoints.post}`
+ data-src=`${getComponent('projects').parameters.post}`
- range-captain=`${getComponent('projects').endpoints.captains}`
+ range-captain=`${getComponent('projects').parameters.captains}`
required-status
required-customer.name
diff --git a/src/views/partials/admin/page-admin-projects.pug b/src/views/partials/admin/page-admin-projects.pug
index 813c2bb..32c121e 100644
--- a/src/views/partials/admin/page-admin-projects.pug
+++ b/src/views/partials/admin/page-admin-projects.pug
@@ -10,7 +10,7 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
div.segment.half.sm-full
h3.text-color-heading.text-semibold.text-letter-spacing-large(data-trans='project.list.subTitle')
div.segment.half.sm-full.text-right
- solid-ac-checker(data-src=`${getComponent('projects').endpoints.post}`, permission='acl:Append')
+ solid-ac-checker(data-src=`${getComponent('projects').parameters.post}`, permission='acl:Append')
solid-link(
class='segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered button-icon icon icon-margin-right-xsmall icon-plus'
next=`admin-${getRoute('projects', true)}-create`
@@ -40,10 +40,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
solid-widget(name=`leave-project-reactivity`)
template
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${value}')
orbit-reactivity(bind-user nested-field="projects" target-src='${value}')
solid-widget(name=`orbit-admin-project-leave-button`)
@@ -54,10 +53,9 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
data-label=''
data-trans='data-label=project.list.buttonQuit'
)
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${src}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${src}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${src}')
orbit-reactivity(bind-user nested-field="projects" target-src='${src}')
solid-display(
data-src="${src}"
@@ -119,17 +117,16 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac
class-submit-button="add-member-button segment margin-top-xsmall text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-reversed color-secondary bordered children-button-icon children-icon-arrow-right-circle children-icon-small children-icon-margin-right-xsmall"
data-trans='submit-button=project.list.buttonJoin'
)
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}')
- orbit-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrc}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.dataSrcJoinable}` target-src='${value}')
+ orbit-reactivity(data-src=`${getComponent('projects').parameters.post}` target-src='${value}')
orbit-reactivity(bind-user nested-field="projects" target-src='${value}')
solid-display(
class='table-body'
filtered-by="admin-project-filter"
- data-src=`${getComponent('projects').endpoints.get}joinable/`
+ data-src=`${getComponent('projects').parameters.dataSrcJoinable}`
fields='cell1(customer.name, counter, name), cell2(members), cell3(captain), cell4(joinButton)'
loader-id='loader-admin-projects'
diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug
index 80ad844..8ba95db 100644
--- a/src/views/partials/circle/page-circle-chat.pug
+++ b/src/views/partials/circle/page-circle-chat.pug
@@ -16,7 +16,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p
solid-xmpp-chat(
data-authentication='login'
data-auto-login='true'
- data-websocket-url=component.endpoints.xmpp
+ data-websocket-url=component.parameters.xmpp
bind-resources
uniq=component.uniq
)
diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug
index f3d2ce6..4804bf6 100644
--- a/src/views/partials/circle/page-circle-edit.pug
+++ b/src/views/partials/circle/page-circle-edit.pug
@@ -33,7 +33,7 @@ div.segment.full.padding-large.whitespace-normal
required-owner
required-subtitle
required-community.community
- range-owner=`${component.endpoints.owners}`
+ range-owner=`${component.parameters.owners}`
label-name=''
label-owner=''
@@ -79,7 +79,7 @@ div.segment.full.padding-large.whitespace-normal
bind-resources
nested-field='members'
fields='user'
- range-user=`${component.endpoints.users}`
+ range-user=`${component.parameters.users}`
class-user='segment block margin-bottom'
widget-user='solid-form-dropdown-autocompletion'
diff --git a/src/views/partials/circle/page-circle-events.pug b/src/views/partials/circle/page-circle-events.pug
index d9a88c3..07e54e9 100644
--- a/src/views/partials/circle/page-circle-events.pug
+++ b/src/views/partials/circle/page-circle-events.pug
@@ -1,9 +1,9 @@
solid-event(
bind-resources
nested-field="events"
- range-event-type=`${extension.endpoints.typeevents}`
- range-event-circle=`${getComponent('circles').endpoints.get}/`
- upload-dir=`${extension.endpoints.uploads}`
+ range-event-type=`${extension.parameters.typeevents}`
+ range-event-circle=`${extension.parameters.circles}`
+ upload-dir=`${extension.parameters.uploads}`
id-prefix='default'
uniq=extension.uniq
)
diff --git a/src/views/partials/circle/page-circle-polls.pug b/src/views/partials/circle/page-circle-polls.pug
index ae4f8d8..01fec77 100644
--- a/src/views/partials/circle/page-circle-polls.pug
+++ b/src/views/partials/circle/page-circle-polls.pug
@@ -1,10 +1,10 @@
solid-poll(
bind-resources
nested-field="polls"
- data-dest=extension.endpoints.post
- range-tags=extension.endpoints.pollRangeTags
- range-circles=extension.endpoints.pollRangeCircles
- upload-dir=extension.endpoints.uploads
+ data-dest=extension.parameters.post
+ range-tags=extension.parameters.pollRangeTags
+ range-circles=extension.parameters.pollRangeCircles
+ upload-dir=extension.parameters.uploads
uniq=extension.uniq
)&attributes({
"display-start-end-dates": extension.parameters ? extension.parameters.displayStartEndDates : false
diff --git a/src/views/partials/circle/page-circle-resources.pug b/src/views/partials/circle/page-circle-resources.pug
index 0f0faa2..b70db1d 100644
--- a/src/views/partials/circle/page-circle-resources.pug
+++ b/src/views/partials/circle/page-circle-resources.pug
@@ -1,14 +1,14 @@
solid-resource(
bind-resources
nested-field="resources"
- post-data-src=`${extension.endpoints.post}`
- range-resource-type=`${extension.endpoints.types}`
- post-data-type-src=`${extension.endpoints.postTypes}`
- range-resource-keyword=`${extension.endpoints.keywords}`
- post-data-keyword-src=`${extension.endpoints.postKeywords}`
- circles=`${extension.endpoints.circles}/`
+ post-data-src=`${extension.parameters.post}`
+ range-resource-type=`${extension.parameters.types}`
+ post-data-type-src=`${extension.parameters.postTypes}`
+ range-resource-keyword=`${extension.parameters.keywords}`
+ post-data-keyword-src=`${extension.parameters.postKeywords}`
+ circles=`${extension.parameters.circles}`
associated-circle-label=""
- upload-dir=`${extension.endpoints.uploads}`
+ upload-dir=`${extension.parameters.uploads}`
id-prefix='circles'
uniq=extension.uniq
)
diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug
index 0fe8fa5..7b5f0f0 100644
--- a/src/views/partials/communities/page-community-directory.pug
+++ b/src/views/partials/communities/page-community-directory.pug
@@ -26,7 +26,7 @@
div
solid-display(
class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination text-disable-selection'
- data-src=`${component.endpoints.get}`
+ data-src=`${component.parameters.dataSrc}`
loader-id=`loader-${component.route}-directory`
fields='segment1(segment2(logo), segment3(name, profile.shortDescription, counter))'
filtered-by=`communities-filter`
diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug
index 043ca12..ffa7039 100644
--- a/src/views/partials/communities/page-community-edit.pug
+++ b/src/views/partials/communities/page-community-edit.pug
@@ -53,7 +53,7 @@ div.bg-color-white
widget-profile.description="solid-form-richtext-label"
widget-profile.email="orbit-communities-edit-email"
widget-profile.website="orbit-communities-edit-website"
- upload-url-logo=component.endpoints.uploads
+ upload-url-logo=component.parameters.uploads
widget-logo="solid-form-image-label"
submit-button=""
@@ -70,9 +70,9 @@ div.bg-color-white
fields="profile.picture1, profile.picture2, profile.picture3"
- upload-url-profile.picture1=component.endpoints.uploads
- upload-url-profile.picture2=component.endpoints.uploads
- upload-url-profile.picture3=component.endpoints.uploads
+ upload-url-profile.picture1=component.parameters.uploads
+ upload-url-profile.picture2=component.parameters.uploads
+ upload-url-profile.picture3=component.parameters.uploads
widget-profile.picture1="solid-form-image-label"
widget-profile.picture2="solid-form-image-label"
diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug
index 0c5978d..7a3b85a 100644
--- a/src/views/partials/communities/page-community-map.pug
+++ b/src/views/partials/communities/page-community-map.pug
@@ -21,7 +21,7 @@
span
solid-map.communities-map.margin-right-xsmall.margin-left-xsmall.sm-margin-none.shadow(
- data-src=`${component.endpoints.addresses}`
+ data-src=`${component.parameters.addresses}`
loader-id=`loader-${component.route}-map`
fields="position(segment1(community.logo), segment2(community.name, community.profile.shortDescription, community.members))"
diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug
index 0af8628..85c71a8 100644
--- a/src/views/partials/project/page-project-chat.pug
+++ b/src/views/partials/project/page-project-chat.pug
@@ -20,7 +20,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p
solid-xmpp-chat(
data-authentication='login'
data-auto-login='true'
- data-websocket-url=component.endpoints.xmpp
+ data-websocket-url=component.parameters.xmpp
bind-resources
uniq=component.uniq
)
diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug
index 932794e..cdb1d8c 100644
--- a/src/views/partials/project/page-project-edit.pug
+++ b/src/views/partials/project/page-project-edit.pug
@@ -31,7 +31,7 @@ div.segment.full.padding-large.whitespace-normal
solid-form.form(
bind-resources
- range-captain=`${getComponent('projects').endpoints.captains}`
+ range-captain=`${getComponent('projects').parameters.captains}`
required-status
required-customer.name
@@ -149,7 +149,7 @@ div.segment.full.padding-large.whitespace-normal
bind-resources
nested-field='members'
fields='user'
- range-user=`${component.endpoints.users}`
+ range-user=`${component.parameters.users}`
class-user='add-member'
label-user=''
diff --git a/src/views/partials/project/page-project-invoices.pug b/src/views/partials/project/page-project-invoices.pug
index ee153cc..8e8a4b2 100644
--- a/src/views/partials/project/page-project-invoices.pug
+++ b/src/views/partials/project/page-project-invoices.pug
@@ -14,7 +14,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p
)
solid-invoicing(
bind-resources
- upload-dir=`${extension.endpoints.uploads}`
+ upload-dir=`${extension.parameters.uploads}`
logo-dir=`${client.logo}`
uniq=extension.uniq
)
\ No newline at end of file
diff --git a/src/views/partials/project/page-project-picture.pug b/src/views/partials/project/page-project-picture.pug
index e39a10d..d081ef1 100644
--- a/src/views/partials/project/page-project-picture.pug
+++ b/src/views/partials/project/page-project-picture.pug
@@ -6,7 +6,7 @@
//- solid-picture.project-edit-picture(
//- bind-resources
-//- upload-src=`${component.endpoints.uploads}`
+//- upload-src=`${component.parameters.uploads}`
//- upload-id="solid-project-edit-picture"
//- nested-fields='customer'
//- fields='logo'