pshregistry-parser
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -8,2 +8,8 @@ # Changelog | ||
## [1.2.0] - 2020-12-10 | ||
### Removed | ||
- The `mysql` type is removed from `additionalTypes` in `registry-parser.js`, which means example config file snippets will not be generated automatically from the `mariadb` type object in a registry file source. A separate `mysql` object is required in that registry file to produce configuration snippets. Related: the `mysql` type has been added to a `ignoreTypesInTable` variable, which keeps duplicate images with differing supported versions from both showing up in the supported table (since they point to the same page in docs anyway). | ||
## [1.1.1] - 2019-10-11 | ||
@@ -10,0 +16,0 @@ |
@@ -5,2 +5,14 @@ 'use strict'; | ||
/** | ||
* Utility method to get the value of a nested object key that may not exist. | ||
* | ||
* @param obj | ||
* The object to read. | ||
* @param args | ||
* A variadic list of the properties to traverse. | ||
* @return {*} | ||
*/ | ||
function getNested(obj, ...args) { | ||
return args.reduce((obj, level) => obj && obj[level], obj); | ||
} | ||
@@ -74,6 +86,6 @@ /** | ||
makeDataAccessibleAsProperties(data) { | ||
for(let dataProperty in data){ | ||
if (dataProperty == "versions") { | ||
this["supported"] = data.versions.supported; | ||
this["deprecated"] = data.versions.deprecated; | ||
for(let dataProperty in data) { | ||
if (dataProperty === "versions") { | ||
this["supported"] = getNested(data, "versions", "supported") || {}; | ||
this["deprecated"] = getNested(data, "versions", "deprecated") || {}; | ||
} else { | ||
@@ -96,3 +108,3 @@ this[dataProperty] = data[dataProperty]; | ||
// Only build the string if the Image contains versions for the lifecycle. | ||
if (this[lifecycle].length != 0) { | ||
if (this[lifecycle].length !== 0) { | ||
unorderedList += "<ul>"; | ||
@@ -118,3 +130,3 @@ for(let version of this[lifecycle]) { | ||
// Only build the string if the Image contains versions for the lifecycle. | ||
if (this[lifecycle].length != 0) { | ||
if (this[lifecycle].length !== 0) { | ||
fullString += this[lifecycle].join(", "); | ||
@@ -121,0 +133,0 @@ } |
@@ -70,8 +70,2 @@ 'use strict'; | ||
this.additionalTypes = { | ||
"mysql": { | ||
"baseImage": "mariadb", | ||
"diff": { | ||
"type": "mysql" | ||
} | ||
}, | ||
"redis-persistent": { | ||
@@ -92,2 +86,6 @@ "baseImage": "redis", | ||
this.ignoreTypesInTable = { | ||
"mysql": true | ||
}; | ||
this.saveLocations = this.deriveSaveLocations(saveDir, registrySource); | ||
@@ -245,18 +243,18 @@ | ||
fs.mkdirSync(saveDir); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/')){ | ||
fs.mkdirSync(saveDir + 'examples/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/commented/')){ | ||
fs.mkdirSync(saveDir + 'examples/commented/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/full/')){ | ||
fs.mkdirSync(saveDir + 'examples/full/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/snippet/')){ | ||
fs.mkdirSync(saveDir + 'examples/snippet/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir.split('/').slice(0, -1).join('/') + "/" + 'tables/')){ | ||
fs.mkdirSync(saveDir.split('/').slice(0, -1).join('/') + "/" + 'tables/'); | ||
}; | ||
} | ||
} | ||
@@ -317,5 +315,5 @@ | ||
let table = ""; | ||
if (imageGroup == "runtimes") { | ||
if (imageGroup === "runtimes") { | ||
table += "| **Language** | **`runtime`** | **Supported `version`** |"; | ||
} else if (imageGroup == "services") { | ||
} else if (imageGroup === "services") { | ||
table += "| **Service** | **`type`** | **Supported `version`** |"; | ||
@@ -330,2 +328,4 @@ } | ||
.filter(image => !(Object.keys(this.additionalTypes).includes(image))) | ||
// Filter out types where versions do not match (mysql/mariadb). | ||
.filter(image => !(Object.keys(this.ignoreTypesInTable).includes(image))) | ||
// Sort alphabetically by type. | ||
@@ -370,3 +370,3 @@ .sort() | ||
// Handle app subkey yaml file names. | ||
if (majorConfig != "app" && majorConfig != "services" && majorConfig != "routes") { | ||
if (majorConfig !== "app" && majorConfig !== "services" && majorConfig !== "routes") { | ||
filename = `${image.type}.${majorConfig}.app.yaml`; | ||
@@ -392,3 +392,3 @@ // Handle all other main app and services yaml file names. | ||
write(currentImage) { | ||
if (currentImage == undefined) { | ||
if (currentImage === undefined) { | ||
for (let image in this.images) { | ||
@@ -395,0 +395,0 @@ this.write(image); |
{ | ||
"name": "pshregistry-parser", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Helper for library for accessing image data from the Platform.sh Registry and generating configuration files.", | ||
@@ -5,0 +5,0 @@ "main": "lib/registry-parser.js", |
@@ -5,2 +5,14 @@ 'use strict'; | ||
/** | ||
* Utility method to get the value of a nested object key that may not exist. | ||
* | ||
* @param obj | ||
* The object to read. | ||
* @param args | ||
* A variadic list of the properties to traverse. | ||
* @return {*} | ||
*/ | ||
function getNested(obj, ...args) { | ||
return args.reduce((obj, level) => obj && obj[level], obj); | ||
} | ||
@@ -74,6 +86,6 @@ /** | ||
makeDataAccessibleAsProperties(data) { | ||
for(let dataProperty in data){ | ||
if (dataProperty == "versions") { | ||
this["supported"] = data.versions.supported; | ||
this["deprecated"] = data.versions.deprecated; | ||
for(let dataProperty in data) { | ||
if (dataProperty === "versions") { | ||
this["supported"] = getNested(data, "versions", "supported") || {}; | ||
this["deprecated"] = getNested(data, "versions", "deprecated") || {}; | ||
} else { | ||
@@ -96,3 +108,3 @@ this[dataProperty] = data[dataProperty]; | ||
// Only build the string if the Image contains versions for the lifecycle. | ||
if (this[lifecycle].length != 0) { | ||
if (this[lifecycle].length !== 0) { | ||
unorderedList += "<ul>"; | ||
@@ -118,3 +130,3 @@ for(let version of this[lifecycle]) { | ||
// Only build the string if the Image contains versions for the lifecycle. | ||
if (this[lifecycle].length != 0) { | ||
if (this[lifecycle].length !== 0) { | ||
fullString += this[lifecycle].join(", "); | ||
@@ -121,0 +133,0 @@ } |
@@ -70,8 +70,2 @@ 'use strict'; | ||
this.additionalTypes = { | ||
"mysql": { | ||
"baseImage": "mariadb", | ||
"diff": { | ||
"type": "mysql" | ||
} | ||
}, | ||
"redis-persistent": { | ||
@@ -92,2 +86,6 @@ "baseImage": "redis", | ||
this.ignoreTypesInTable = { | ||
"mysql": true | ||
}; | ||
this.saveLocations = this.deriveSaveLocations(saveDir, registrySource); | ||
@@ -245,18 +243,18 @@ | ||
fs.mkdirSync(saveDir); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/')){ | ||
fs.mkdirSync(saveDir + 'examples/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/commented/')){ | ||
fs.mkdirSync(saveDir + 'examples/commented/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/full/')){ | ||
fs.mkdirSync(saveDir + 'examples/full/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir + 'examples/snippet/')){ | ||
fs.mkdirSync(saveDir + 'examples/snippet/'); | ||
}; | ||
} | ||
if (!fs.existsSync(saveDir.split('/').slice(0, -1).join('/') + "/" + 'tables/')){ | ||
fs.mkdirSync(saveDir.split('/').slice(0, -1).join('/') + "/" + 'tables/'); | ||
}; | ||
} | ||
} | ||
@@ -317,5 +315,5 @@ | ||
let table = ""; | ||
if (imageGroup == "runtimes") { | ||
if (imageGroup === "runtimes") { | ||
table += "| **Language** | **`runtime`** | **Supported `version`** |"; | ||
} else if (imageGroup == "services") { | ||
} else if (imageGroup === "services") { | ||
table += "| **Service** | **`type`** | **Supported `version`** |"; | ||
@@ -330,2 +328,4 @@ } | ||
.filter(image => !(Object.keys(this.additionalTypes).includes(image))) | ||
// Filter out types where versions do not match (mysql/mariadb). | ||
.filter(image => !(Object.keys(this.ignoreTypesInTable).includes(image))) | ||
// Sort alphabetically by type. | ||
@@ -370,3 +370,3 @@ .sort() | ||
// Handle app subkey yaml file names. | ||
if (majorConfig != "app" && majorConfig != "services" && majorConfig != "routes") { | ||
if (majorConfig !== "app" && majorConfig !== "services" && majorConfig !== "routes") { | ||
filename = `${image.type}.${majorConfig}.app.yaml`; | ||
@@ -392,3 +392,3 @@ // Handle all other main app and services yaml file names. | ||
write(currentImage) { | ||
if (currentImage == undefined) { | ||
if (currentImage === undefined) { | ||
for (let image in this.images) { | ||
@@ -395,0 +395,0 @@ this.write(image); |
@@ -12,3 +12,3 @@ 'use strict'; | ||
let registrySource = "test/testdata/valid.json"; | ||
let registry = new psh.RegistryParser(registrySource); | ||
let registry = new psh.RegistryParser(registrySource, 'test/'); | ||
registry.write(); | ||
@@ -43,3 +43,3 @@ done(); | ||
let registry = new psh.RegistryParser(registrySource); | ||
assert.equal(Object.keys(registry.runtimes).length, 8); | ||
assert.equal(Object.keys(registry.runtimes).length, 9); | ||
assert.equal(Object.keys(registry.runtimes)[0], "dotnet"); | ||
@@ -78,10 +78,11 @@ }); | ||
|----------------------------------|---------------|-------------------------| | ||
| [C#/.Net Core](/languages/dotnet.html) | \`dotnet\` | 2.0, 2.1, 2.2 | | ||
| [Go](/languages/go.html) | \`golang\` | 1.11, 1.12, 1.13 | | ||
| [C#/.Net Core](/languages/dotnet.html) | \`dotnet\` | 2.0, 2.1, 2.2, 3.1 | | ||
| [Elixir](/languages/elixir.html) | \`elixir\` | 1.9 | | ||
| [Go](/languages/go.html) | \`golang\` | 1.11, 1.12, 1.13, 1.14 | | ||
| [Java](/languages/java.html) | \`java\` | 11, 12, 8, 13 | | ||
| [Lisp](/languages/lisp.html) | \`lisp\` | 1.5 | | ||
| [Node.js](/languages/nodejs.html) | \`nodejs\` | 6, 8, 10 | | ||
| [PHP](/languages/php.html) | \`php\` | 7.1, 7.2, 7.3 | | ||
| [Python](/languages/python.html) | \`python\` | 2.7, 3.5, 3.6, 3.7 | | ||
| [Ruby](/languages/ruby.html) | \`ruby\` | 2.3, 2.4, 2.5, 2.6 |`.trim(); | ||
| [Node.js](/languages/nodejs.html) | \`nodejs\` | 6, 8, 10, 12 | | ||
| [PHP](/languages/php.html) | \`php\` | 7.2, 7.3, 7.4 | | ||
| [Python](/languages/python.html) | \`python\` | 2.7, 3.5, 3.6, 3.7, 3.8 | | ||
| [Ruby](/languages/ruby.html) | \`ruby\` | 2.3, 2.4, 2.5, 2.6, 2.7 |`.trim(); | ||
assert.equal(registry.makeSupportedVersionsTable("runtimes"), expected); | ||
@@ -99,12 +100,12 @@ }); | ||
| [InfluxDB](/configuration/services/influxdb.html) | \`influxdb\` | 1.2, 1.3, 1.7 | | ||
| [Kafka](/configuration/services/kafka.html) | \`kafka\` | 2.1, 2.2 | | ||
| [MariaDB](/configuration/services/mysql.html) | \`mariadb\` | 10.0, 10.1, 10.2, 10.3, 10.4 | | ||
| [Memcached](/configuration/services/memcached.html) | \`memcached\` | 1.4 | | ||
| [Kafka](/configuration/services/kafka.html) | \`kafka\` | 2.1, 2.2, 2.3, 2.4 | | ||
| [MariaDB](/configuration/services/mysql.html) | \`mariadb\` | 10.0, 10.1, 10.2, 10.3, 10.4, 10.5 | | ||
| [Memcached](/configuration/services/memcached.html) | \`memcached\` | 1.4, 1.5, 1.6 | | ||
| [MongoDB](/configuration/services/mongodb.html) | \`mongodb\` | 3.0, 3.2, 3.4, 3.6 | | ||
| [Network Storage](/configuration/services/network-storage.html) | \`network-storage\` | 1.0 | | ||
| [Oracle MySQL](/configuration/services/mysql.html) | \`oracle-mysql\` | 5.7, 8.0 | | ||
| [PostgreSQL](/configuration/services/postgresql.html) | \`postgresql\` | 9.6, 10, 11 | | ||
| [RabbitMQ](/configuration/services/rabbitmq.html) | \`rabbitmq\` | 3.5, 3.6, 3.7 | | ||
| [PostgreSQL](/configuration/services/postgresql.html) | \`postgresql\` | 9.6, 10, 11, 12 | | ||
| [RabbitMQ](/configuration/services/rabbitmq.html) | \`rabbitmq\` | 3.5, 3.6, 3.7, 3.8 | | ||
| [Redis](/configuration/services/redis.html) | \`redis\` | 3.2, 4.0, 5.0 | | ||
| [Solr](/configuration/services/solr.html) | \`solr\` | 3.6, 4.1, 6.3, 6.6, 7.6, 7.7, 8.0 | | ||
| [Solr](/configuration/services/solr.html) | \`solr\` | 3.6, 4.1, 6.3, 6.6, 7.6, 7.7, 8.0, 8.4 | | ||
| [Varnish](/configuration/services/varnish.html) | \`varnish\` | 5.6, 6.0 |`.trim(); | ||
@@ -242,3 +243,3 @@ assert.equal(registry.makeSupportedVersionsTable("services"), expected); | ||
let registry = new psh.RegistryParser(registrySource); | ||
assert.equal(registry.images["golang"].deprecatedString, "1.1, 1.8, 1.9"); | ||
assert.equal(registry.images["golang"].deprecatedString, "1.10, 1.8, 1.9"); | ||
}); | ||
@@ -255,3 +256,3 @@ | ||
let registry = new psh.RegistryParser(registrySource); | ||
assert.equal(registry.images["golang"].deprecatedHTML, "<ul><li>1.1</li><li>1.8</li><li>1.9</li></ul>"); | ||
assert.equal(registry.images["golang"].deprecatedHTML, "<ul><li>1.10</li><li>1.8</li><li>1.9</li></ul>"); | ||
}); | ||
@@ -269,7 +270,7 @@ }) | ||
it('Test recommended Go version is 1.13', function() { | ||
it('Test recommended Go version is 1.14', function() { | ||
let registrySource = "test/testdata/valid.json"; | ||
let registry = new psh.RegistryParser(registrySource); | ||
assert.equal(registry.images["golang"].recommended, "1.13"); | ||
assert.equal(registry.runtimes["golang"].recommended, "1.13"); | ||
assert.equal(registry.images["golang"].recommended, "1.14"); | ||
assert.equal(registry.runtimes["golang"].recommended, "1.14"); | ||
}); | ||
@@ -345,3 +346,3 @@ | ||
# to find the supported versions for the 'golang' type. | ||
type: 'golang:1.13'`; | ||
type: 'golang:1.14'`; | ||
assert.equal(expected, registry.images["golang"].config.app.commented); | ||
@@ -348,0 +349,0 @@ assert.equal(expected, fs.readFileSync('test/testdata/examples/commented/golang.app.yaml', 'utf8')) |
@@ -8,3 +8,3 @@ { | ||
"service_name": "headlessbrowser", | ||
"url": "\/configuration\/services\/headless-chrome.html" | ||
"url": "/configuration/services/headless-chrome.html" | ||
}, | ||
@@ -18,5 +18,3 @@ "endpoint": "http", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -34,3 +32,3 @@ "73" | ||
"service_name": null, | ||
"url": "\/languages\/dotnet.html", | ||
"url": "/languages/dotnet.html", | ||
"web": { | ||
@@ -41,3 +39,3 @@ "commands": { | ||
"locations": { | ||
"\/": { | ||
"/": { | ||
"root": "\"wwwroot\"", | ||
@@ -59,13 +57,12 @@ "allow": true, | ||
"min_disk_size": null, | ||
"name": "C#\/.Net Core", | ||
"name": "C#/.Net Core", | ||
"runtime": true, | ||
"type": "dotnet", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
"2.0", | ||
"2.1", | ||
"2.2" | ||
"2.2", | ||
"3.1" | ||
] | ||
@@ -80,3 +77,3 @@ } | ||
"service_name": "searchelastic", | ||
"url": "\/configuration\/services\/elasticsearch.html" | ||
"url": "/configuration/services/elasticsearch.html" | ||
}, | ||
@@ -104,2 +101,44 @@ "endpoint": "elasticsearch", | ||
}, | ||
"elixir": { | ||
"description": "", | ||
"repo_name": "elixir", | ||
"disk": false, | ||
"docs": { | ||
"relationship_name": null, | ||
"service_name": null, | ||
"url": "/languages/elixir.html", | ||
"web": { | ||
"commands": { | ||
"start": "mix run --no-halt" | ||
}, | ||
"locations": { | ||
"/": { | ||
"allow": false, | ||
"root": "\"web\"", | ||
"passthru": true | ||
} | ||
} | ||
}, | ||
"hooks": { | ||
"build": [ | ||
"|", | ||
"mix local.hex --force", | ||
"mix local.rebar --force", | ||
"mix do deps.get --only prod, deps.compile, compile" | ||
] | ||
} | ||
}, | ||
"endpoint": null, | ||
"min_disk_size": null, | ||
"name": "Elixir", | ||
"runtime": true, | ||
"type": "elixir", | ||
"versions": { | ||
"deprecated": [], | ||
"supported": [ | ||
"1.9" | ||
] | ||
} | ||
}, | ||
"golang": { | ||
@@ -111,3 +150,3 @@ "description": "", | ||
"service_name": null, | ||
"url": "\/languages\/go.html", | ||
"url": "/languages/go.html", | ||
"web": { | ||
@@ -119,6 +158,6 @@ "upstream": { | ||
"commands": { | ||
"start": ".\/bin\/app" | ||
"start": "./bin/app" | ||
}, | ||
"locations": { | ||
"\/": { | ||
"/": { | ||
"allow": false, | ||
@@ -131,3 +170,3 @@ "passthru": true | ||
"build": [ | ||
"go build -o bin\/app" | ||
"go build -o bin/app" | ||
] | ||
@@ -144,3 +183,3 @@ } | ||
"deprecated": [ | ||
"1.1", | ||
"1.10", | ||
"1.8", | ||
@@ -152,3 +191,4 @@ "1.9" | ||
"1.12", | ||
"1.13" | ||
"1.13", | ||
"1.14" | ||
] | ||
@@ -163,3 +203,3 @@ } | ||
"service_name": "timedb", | ||
"url": "\/configuration\/services\/influxdb.html" | ||
"url": "/configuration/services/influxdb.html" | ||
}, | ||
@@ -173,5 +213,3 @@ "endpoint": "influxdb", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -189,6 +227,6 @@ "1.2", | ||
"service_name": null, | ||
"url": "\/languages\/java.html", | ||
"url": "/languages/java.html", | ||
"web": { | ||
"commands": { | ||
"start": "java -jar target\/application.jar --server.port=$PORT" | ||
"start": "java -jar target/application.jar --server.port=$PORT" | ||
} | ||
@@ -209,5 +247,3 @@ }, | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -227,3 +263,3 @@ "11", | ||
"service_name": "queuekafka", | ||
"url": "\/configuration\/services\/kafka.html" | ||
"url": "/configuration/services/kafka.html" | ||
}, | ||
@@ -237,8 +273,8 @@ "endpoint": "kafka", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
"2.1", | ||
"2.2" | ||
"2.2", | ||
"2.3", | ||
"2.4" | ||
] | ||
@@ -255,9 +291,9 @@ } | ||
"service_name": null, | ||
"url": "\/languages\/lisp.html", | ||
"url": "/languages/lisp.html", | ||
"web": { | ||
"commands": { | ||
"start": ".\/example" | ||
"start": "./example" | ||
}, | ||
"locations": { | ||
"\/": { | ||
"/": { | ||
"allow": false, | ||
@@ -275,5 +311,3 @@ "passthru": true | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -291,3 +325,3 @@ "1.5" | ||
"service_name": "db", | ||
"url": "\/configuration\/services\/mysql.html" | ||
"url": "/configuration/services/mysql.html" | ||
}, | ||
@@ -308,2 +342,30 @@ "endpoint": "mysql", | ||
"10.3", | ||
"10.4", | ||
"10.5" | ||
] | ||
} | ||
}, | ||
"mysql": { | ||
"description": "A manufacture-based container for MariaDB", | ||
"repo_name": "mariadb", | ||
"disk": true, | ||
"docs": { | ||
"relationship_name": "database", | ||
"service_name": "db", | ||
"url": "/configuration/services/mysql.html" | ||
}, | ||
"endpoint": "mysql", | ||
"min_disk_size": 256, | ||
"name": "MariaDB", | ||
"runtime": false, | ||
"type": "mysql", | ||
"versions": { | ||
"deprecated": [ | ||
"5.5" | ||
], | ||
"supported": [ | ||
"10.0", | ||
"10.1", | ||
"10.2", | ||
"10.3", | ||
"10.4" | ||
@@ -320,3 +382,3 @@ ] | ||
"service_name": "cachemc", | ||
"url": "\/configuration\/services\/memcached.html" | ||
"url": "/configuration/services/memcached.html" | ||
}, | ||
@@ -329,7 +391,7 @@ "endpoint": "memcached", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
"1.4" | ||
"1.4", | ||
"1.5", | ||
"1.6" | ||
] | ||
@@ -343,5 +405,5 @@ } | ||
"docs": { | ||
"relationship_name": "database", | ||
"relationship_name": "mongodatabase", | ||
"service_name": "dbmongo", | ||
"url": "\/configuration\/services\/mongodb.html" | ||
"url": "/configuration/services/mongodb.html" | ||
}, | ||
@@ -354,5 +416,3 @@ "endpoint": "mongodb", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -373,3 +433,3 @@ "3.0", | ||
"service_name": "files", | ||
"url": "\/configuration\/services\/network-storage.html" | ||
"url": "/configuration/services/network-storage.html" | ||
}, | ||
@@ -382,5 +442,3 @@ "endpoint": "something", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -398,3 +456,3 @@ "1.0" | ||
"service_name": null, | ||
"url": "\/languages\/nodejs.html", | ||
"url": "/languages/nodejs.html", | ||
"web": { | ||
@@ -423,3 +481,4 @@ "commands": { | ||
"8", | ||
"10" | ||
"10", | ||
"12" | ||
] | ||
@@ -435,3 +494,3 @@ } | ||
"service_name": "dbmysql", | ||
"url": "\/configuration\/services\/mysql.html" | ||
"url": "/configuration/services/mysql.html" | ||
}, | ||
@@ -444,5 +503,3 @@ "endpoint": "mysql", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -461,8 +518,8 @@ "5.7", | ||
"service_name": null, | ||
"url": "\/languages\/php.html", | ||
"url": "/languages/php.html", | ||
"web": { | ||
"locations": { | ||
"\/": { | ||
"/": { | ||
"root": "\"web\"", | ||
"passthru": "\/index.php" | ||
"passthru": "/index.php" | ||
} | ||
@@ -495,8 +552,9 @@ } | ||
"5.6", | ||
"7.0" | ||
"7.0", | ||
"7.1" | ||
], | ||
"supported": [ | ||
"7.1", | ||
"7.2", | ||
"7.3" | ||
"7.3", | ||
"7.4" | ||
] | ||
@@ -512,3 +570,3 @@ } | ||
"service_name": "dbpostgres", | ||
"url": "\/configuration\/services\/postgresql.html" | ||
"url": "/configuration/services/postgresql.html" | ||
}, | ||
@@ -522,3 +580,3 @@ "endpoint": "postgresql", | ||
"deprecated": [ | ||
"9.3" | ||
], | ||
@@ -528,3 +586,4 @@ "supported": [ | ||
"10", | ||
"11" | ||
"11", | ||
"12" | ||
] | ||
@@ -540,3 +599,3 @@ } | ||
"service_name": null, | ||
"url": "\/languages\/python.html", | ||
"url": "/languages/python.html", | ||
"web": { | ||
@@ -565,5 +624,3 @@ "commands": { | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -573,3 +630,4 @@ "2.7", | ||
"3.6", | ||
"3.7" | ||
"3.7", | ||
"3.8" | ||
] | ||
@@ -585,3 +643,3 @@ } | ||
"service_name": "queuerabbit", | ||
"url": "\/configuration\/services\/rabbitmq.html" | ||
"url": "/configuration/services/rabbitmq.html" | ||
}, | ||
@@ -594,9 +652,8 @@ "endpoint": "rabbitmq", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
"3.5", | ||
"3.6", | ||
"3.7" | ||
"3.7", | ||
"3.8" | ||
] | ||
@@ -612,3 +669,3 @@ } | ||
"service_name": "cacheredis", | ||
"url": "\/configuration\/services\/redis.html" | ||
"url": "/configuration/services/redis.html" | ||
}, | ||
@@ -639,3 +696,3 @@ "endpoint": "redis", | ||
"service_name": null, | ||
"url": "\/languages\/ruby.html", | ||
"url": "/languages/ruby.html", | ||
"web": { | ||
@@ -649,3 +706,3 @@ "upstream": { | ||
"locations": { | ||
"\/": { | ||
"/": { | ||
"root": "\"public\"", | ||
@@ -675,5 +732,3 @@ "passthru": true, | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -683,3 +738,4 @@ "2.3", | ||
"2.5", | ||
"2.6" | ||
"2.6", | ||
"2.7" | ||
] | ||
@@ -695,3 +751,3 @@ } | ||
"service_name": "searchsolr", | ||
"url": "\/configuration\/services\/solr.html" | ||
"url": "/configuration/services/solr.html" | ||
}, | ||
@@ -704,5 +760,3 @@ "endpoint": "solr", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -715,3 +769,4 @@ "3.6", | ||
"7.7", | ||
"8.0" | ||
"8.0", | ||
"8.4" | ||
] | ||
@@ -727,3 +782,3 @@ } | ||
"service_name": "proxy", | ||
"url": "\/configuration\/services\/varnish.html" | ||
"url": "/configuration/services/varnish.html" | ||
}, | ||
@@ -736,5 +791,3 @@ "endpoint": "http+stats", | ||
"versions": { | ||
"deprecated": [ | ||
], | ||
"deprecated": [], | ||
"supported": [ | ||
@@ -741,0 +794,0 @@ "5.6", |
158719
3406