From 3a133031d919e650584f1b77131cf4f01f5989fb Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Mon, 17 Jul 2023 09:30:10 +0200 Subject: [PATCH 1/6] Added 'followRedirects' property to http-extractor-meta and added respective logic to http-extractor-executor. Added jv test file for redirects and added file to automated tests. --- example/materials.jv | 55 +++++++++++++++++++ .../std/exec/src/http-extractor-executor.ts | 25 +++++++-- .../std/lang/src/example-validation.spec.ts | 1 + .../std/lang/src/http-extractor-meta-inf.ts | 14 +++++ package-lock.json | 18 ++++++ package.json | 5 +- 6 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 example/materials.jv diff --git a/example/materials.jv b/example/materials.jv new file mode 100644 index 000000000..a0ee75619 --- /dev/null +++ b/example/materials.jv @@ -0,0 +1,55 @@ +// SPDX-FileCopyrightText: 2023 Friedrich-Alexander-Universitat Erlangen-Nurnberg +// +// SPDX-License-Identifier: AGPL-3.0-only + +pipeline MaterialsDatabasePipeline { + + block MaterialsDatabaseExtractor oftype HttpExtractor { + url: "https://figshare.com/ndownloader/files/31626647"; + followRedirect: false; + } + + block ZipArchiveInterpreter oftype ArchiveInterpreter { + archiveType: "zip"; + } + + block MaterialsDatabaseCSVPicker oftype FilePicker { + path: "/Databases/Combined/Combined_YieldStrength_GrainSize_Database.csv"; + } + + block MaterialsDatabaseTextFileInterpreter oftype TextFileInterpreter { + + } + + block MaterialsDatabaseCSVInterpreter oftype CSVInterpreter { + delimiter: ","; + enclosing: '"'; + enclosingEscape: '"'; + } + + block MaterialsDatabaseTableInterpreter oftype TableInterpreter { + header: true; + columns: [ + "Compound" oftype text, + "Blacklisted Compound?" oftype text, + "Yield Strength Value" oftype text, + "Yield Strength Unit" oftype text, + "Grain Size Value" oftype text, + "Grain Size Unit" oftype text, + "DOI" oftype text, + "Open Access" oftype text, + ]; + } + + block MaterialsDatabaseLoader oftype SQLiteLoader { + table: "MaterialsDatabase"; + file: "./MaterialsDatabase.sqlite"; + } + MaterialsDatabaseExtractor + -> ZipArchiveInterpreter + -> MaterialsDatabaseCSVPicker + -> MaterialsDatabaseTextFileInterpreter + -> MaterialsDatabaseCSVInterpreter + -> MaterialsDatabaseTableInterpreter + -> MaterialsDatabaseLoader; +} \ No newline at end of file diff --git a/libs/extensions/std/exec/src/http-extractor-executor.ts b/libs/extensions/std/exec/src/http-extractor-executor.ts index ba4c96b15..9fa418a16 100644 --- a/libs/extensions/std/exec/src/http-extractor-executor.ts +++ b/libs/extensions/std/exec/src/http-extractor-executor.ts @@ -2,9 +2,10 @@ // // SPDX-License-Identifier: AGPL-3.0-only -import * as http from 'http'; -import * as https from 'https'; +// import * as http from 'http'; +// import * as https from 'https'; import * as path from 'path'; +import { http, https } from 'follow-redirects'; import * as R from '@jvalue/jayvee-execution'; import { @@ -61,17 +62,29 @@ export class HttpExtractorExecutor } else { httpGetFunction = http.get; } + + const followRedirects = context.getPropertyValue('followRedirects', PrimitiveValuetypes.Boolean); + return new Promise((resolve) => { - httpGetFunction(url, (response) => { + httpGetFunction(url, { followRedirects: followRedirects }, (response) => { const responseCode = response.statusCode; // Catch errors if (responseCode === undefined || responseCode >= 400) { resolve( R.err({ - message: `HTTP fetch failed with code ${ - responseCode ?? 'undefined' - }. Please check your connection.`, + message: `HTTP fetch failed with code ${responseCode ?? 'undefined' + }. Please check your connection.`, + diagnostic: { node: context.getOrFailProperty('url') }, + }), + ); + } + + if (responseCode === 302) { + resolve( + R.err({ + message: `HTTP fetch was redirected with code ${responseCode + }. Redirects are either disabled or maximum number of redirects was exeeded.`, diagnostic: { node: context.getOrFailProperty('url') }, }), ); diff --git a/libs/extensions/std/lang/src/example-validation.spec.ts b/libs/extensions/std/lang/src/example-validation.spec.ts index 7a60fbd66..afb4d526d 100644 --- a/libs/extensions/std/lang/src/example-validation.spec.ts +++ b/libs/extensions/std/lang/src/example-validation.spec.ts @@ -37,6 +37,7 @@ describe('jv example tests', () => { it.each([ 'cars.jv', + 'materials.jv', 'electric-vehicles.jv', 'gtfs-rt-simple.jv', 'gtfs-static-and-rt.jv', diff --git a/libs/extensions/std/lang/src/http-extractor-meta-inf.ts b/libs/extensions/std/lang/src/http-extractor-meta-inf.ts index 8b5b8bf89..aa5ba779c 100644 --- a/libs/extensions/std/lang/src/http-extractor-meta-inf.ts +++ b/libs/extensions/std/lang/src/http-extractor-meta-inf.ts @@ -28,7 +28,21 @@ export class HttpExtractorMetaInformation extends BlockMetaInformation { ], }, }, + followRedirects: { + type: PrimitiveValuetypes.Boolean, + defaultValue: true, + docs: { + description: 'Indicates, whether to follow redirects on get requests. If `false`, Redirects are disabled. Default `true`', + examples: [ + { + code: 'url: "tinyurl.com/4ub9spwz" \n followRedirects: true', + description: 'Specifies the URL to fetch the data from and allows redirects.', + }, + ], + }, + }, }, + // Input type: IOType.NONE, diff --git a/package-lock.json b/package-lock.json index 8e124a044..0dbfeda59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,13 @@ "@docusaurus/preset-classic": "2.4.1", "@docusaurus/theme-mermaid": "2.4.1", "@mdx-js/react": "^1.6.22", + "@types/follow-redirects": "^1.14.1", "assert": "^2.0.0", "chalk": "^4.1.2", "clsx": "^1.2.1", "commander": "^8.0.0", "fast-csv": "^4.3.6", + "follow-redirects": "^1.15.2", "fp-ts": "^2.13.1", "gtfs-realtime-bindings": "^1.1.1", "jszip": "^3.10.1", @@ -5755,6 +5757,14 @@ "@types/range-parser": "*" } }, + "node_modules/@types/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/fs-extra": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", @@ -28706,6 +28716,14 @@ "@types/range-parser": "*" } }, + "@types/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-THBEFwqsLuU/K62B5JRwab9NW97cFmL4Iy34NTMX0bMycQVzq2q7PKOkhfivIwxdpa/J72RppgC42vCHfwKJ0Q==", + "requires": { + "@types/node": "*" + } + }, "@types/fs-extra": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz", diff --git a/package.json b/package.json index 848f765fe..9c68ca0eb 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "test": "nx run-many --target test", "generate": "nx run language-server:generate", "example:cars": "nx run interpreter:run -d example/cars.jv", + "example:materials": "nx run interpreter:run -d example/materials.jv", "example:gtfs": "nx run interpreter:run -d example/gtfs-static-and-rt.jv", "example:vehicles": "nx run interpreter:run -d -e DB_HOST=localhost -e DB_PORT=5432 -e DB_USERNAME=postgres -e DB_PASSWORD=postgres -e DB_DATABASE=postgres example/electric-vehicles.jv" }, @@ -19,11 +20,13 @@ "@docusaurus/preset-classic": "2.4.1", "@docusaurus/theme-mermaid": "2.4.1", "@mdx-js/react": "^1.6.22", + "@types/follow-redirects": "^1.14.1", "assert": "^2.0.0", "chalk": "^4.1.2", "clsx": "^1.2.1", "commander": "^8.0.0", "fast-csv": "^4.3.6", + "follow-redirects": "^1.15.2", "fp-ts": "^2.13.1", "gtfs-realtime-bindings": "^1.1.1", "jszip": "^3.10.1", @@ -94,4 +97,4 @@ "got": "^11.8.5" } } -} +} \ No newline at end of file From e97b0a68e323f7e240e03cebd4618b3a82007aeb Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Mon, 17 Jul 2023 09:34:46 +0200 Subject: [PATCH 2/6] changed formatting --- example/materials.jv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/example/materials.jv b/example/materials.jv index a0ee75619..16d34f49a 100644 --- a/example/materials.jv +++ b/example/materials.jv @@ -4,7 +4,7 @@ pipeline MaterialsDatabasePipeline { - block MaterialsDatabaseExtractor oftype HttpExtractor { + block MaterialsDatabaseExtractor oftype HttpExtractor { url: "https://figshare.com/ndownloader/files/31626647"; followRedirect: false; } @@ -45,6 +45,7 @@ pipeline MaterialsDatabasePipeline { table: "MaterialsDatabase"; file: "./MaterialsDatabase.sqlite"; } + MaterialsDatabaseExtractor -> ZipArchiveInterpreter -> MaterialsDatabaseCSVPicker From a83e6f6bc4e333477fafde2fd29983aa34aaddfd Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Tue, 18 Jul 2023 08:33:33 +0200 Subject: [PATCH 3/6] initial commit. ExampleJV was only initially set up --- example/thermoelectricMaterials.jv | 89 +++++++++++++++++++ .../exec/src/archive-interpreter-executor.ts | 46 ++++++++++ package.json | 1 + 3 files changed, 136 insertions(+) create mode 100644 example/thermoelectricMaterials.jv diff --git a/example/thermoelectricMaterials.jv b/example/thermoelectricMaterials.jv new file mode 100644 index 000000000..d492010ea --- /dev/null +++ b/example/thermoelectricMaterials.jv @@ -0,0 +1,89 @@ +// SPDX-FileCopyrightText: 2023 Friedrich-Alexander-Universitat Erlangen-Nurnberg +// +// SPDX-License-Identifier: AGPL-3.0-only + +pipeline ThermoelectricMaterialsPipeline { + + block ThermoelectricMaterialsExtractor oftype HttpExtractor { + url: "https://figshare.com/ndownloader/files/28333845"; + } + + pipe { + from: ThermoelectricMaterialsExtractor; + to: ThermoelectricMaterialsArchiveInterpreter; + } + + block ThermoelectricMaterialsArchiveInterpreter oftype ArchiveInterpreter { + archiveType: "gz"; + } + + pipe { + from: ThermoelectricMaterialsArchiveInterpreter; + to: ThermoelectricMaterialsFilePicker; + } + + block ThermoelectricMaterialsFilePicker oftype FilePicker { + path: "/test"; + } + + pipe { + from: ThermoelectricMaterialsFilePicker; + to: ThermoelectricMaterialsTextFileInterpreter; + } + + block ThermoelectricMaterialsTextFileInterpreter oftype TextFileInterpreter { + + } + + pipe { + from: ThermoelectricMaterialsTextFileInterpreter; + to: ThermoelectricMaterialsCSVInterpreter; + } + + block ThermoelectricMaterialsCSVInterpreter oftype CSVInterpreter { + enclosing: '"'; + } + + pipe { + from: ThermoelectricMaterialsCSVInterpreter; + to: NameHeaderWriter; + } + + block NameHeaderWriter oftype CellWriter { + at: cell A1; + write: ["name"]; + } + + pipe { + from: NameHeaderWriter; + to: ThermoelectricMaterialsTableInterpreter; + } + + block ThermoelectricMaterialsTableInterpreter oftype TableInterpreter { + header: true; + columns: [ + "name" oftype text, + "mpg" oftype decimal, + "cyl" oftype integer, + "disp" oftype decimal, + "hp" oftype integer, + "drat" oftype decimal, + "wt" oftype decimal, + "qsec" oftype decimal, + "vs" oftype integer, + "am" oftype integer, + "gear" oftype integer, + "carb" oftype integer + ]; + } + + pipe { + from: ThermoelectricMaterialsTableInterpreter; + to: ThermoelectricMaterialsLoader; + } + + block ThermoelectricMaterialsLoader oftype SQLiteLoader { + table: "ThermoelectricMaterials"; + file: "./ThermoelectricMaterials.sqlite"; + } +} \ No newline at end of file diff --git a/libs/extensions/std/exec/src/archive-interpreter-executor.ts b/libs/extensions/std/exec/src/archive-interpreter-executor.ts index 79f833618..7ca8674d7 100644 --- a/libs/extensions/std/exec/src/archive-interpreter-executor.ts +++ b/libs/extensions/std/exec/src/archive-interpreter-executor.ts @@ -20,6 +20,10 @@ import { } from '@jvalue/jayvee-execution'; import { IOType, PrimitiveValuetypes } from '@jvalue/jayvee-language-server'; import * as JSZip from 'jszip'; +import * as zlib from 'node:zlib'; +import { createGunzip } from 'node:zlib'; +import { createReadStream, createWriteStream, readFile } from 'fs'; + import { inferFileExtensionFromFileExtensionString, @@ -42,6 +46,7 @@ export class ArchiveInterpreterExecutor 'archiveType', PrimitiveValuetypes.Text, ); + console.log(archiveFile); if (archiveType === 'zip') { const fs = await this.loadZipFileToInMemoryFileSystem( archiveFile, @@ -52,12 +57,53 @@ export class ArchiveInterpreterExecutor } return R.ok(fs.right); } + if (archiveType === 'gz') { + const fs = await this.loadGZipFileToInMemoryFileSystem( + archiveFile, + context, + ); + if (R.isErr(fs)) { + return fs; + } + return R.ok(fs.right); + } + return R.err({ message: `Archive is not a zip-archive`, diagnostic: { node: context.getCurrentNode(), property: 'name' }, }); } + private async loadGZipFileToInMemoryFileSystem( + archiveFile: BinaryFile, + context: ExecutionContext, + ): Promise> { + context.logger.logDebug(`Loading zip file from binary content`); + try { + + const fs = new InMemoryFileSystem(); + console.log(archiveFile); + + zlib.gunzip(archiveFile.content, function(error, result) { + console.log(result); + fs.putFile( + InMemoryFileSystem.getPathSeparator(), + archiveFile, + ); + }); + return R.ok(fs); + } + catch (error: unknown) { + return R.err({ + message: `Unexpected Error ${ + error instanceof Error ? error.message : JSON.stringify(err) + } occured during processing`, + diagnostic: { node: context.getCurrentNode(), property: 'name' }, + }); + } + } + + private async loadZipFileToInMemoryFileSystem( archiveFile: BinaryFile, context: ExecutionContext, diff --git a/package.json b/package.json index 848f765fe..0b59cdff0 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "test": "nx run-many --target test", "generate": "nx run language-server:generate", "example:cars": "nx run interpreter:run -d example/cars.jv", + "example:thermoelectricMaterials": "nx run interpreter:run -d example/thermoelectricMaterials.jv", "example:gtfs": "nx run interpreter:run -d example/gtfs-static-and-rt.jv", "example:vehicles": "nx run interpreter:run -d -e DB_HOST=localhost -e DB_PORT=5432 -e DB_USERNAME=postgres -e DB_PASSWORD=postgres -e DB_DATABASE=postgres example/electric-vehicles.jv" }, From 614901349af081dd5d8e8a5a6003ab65ffe60d71 Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Tue, 18 Jul 2023 16:46:47 +0200 Subject: [PATCH 4/6] Added gzip decompress to archive-interpreter and fixed issue with http-extractor on redirects --- example/materials.jv | 2 +- example/thermoelectricMaterials.jv | 67 ++++--------------- .../exec/src/archive-interpreter-executor.ts | 35 +++++++--- .../std/exec/src/http-extractor-executor.ts | 2 +- 4 files changed, 39 insertions(+), 67 deletions(-) diff --git a/example/materials.jv b/example/materials.jv index 16d34f49a..813f02783 100644 --- a/example/materials.jv +++ b/example/materials.jv @@ -6,7 +6,7 @@ pipeline MaterialsDatabasePipeline { block MaterialsDatabaseExtractor oftype HttpExtractor { url: "https://figshare.com/ndownloader/files/31626647"; - followRedirect: false; + followRedirects: true; } block ZipArchiveInterpreter oftype ArchiveInterpreter { diff --git a/example/thermoelectricMaterials.jv b/example/thermoelectricMaterials.jv index d492010ea..d2b1e160c 100644 --- a/example/thermoelectricMaterials.jv +++ b/example/thermoelectricMaterials.jv @@ -6,84 +6,43 @@ pipeline ThermoelectricMaterialsPipeline { block ThermoelectricMaterialsExtractor oftype HttpExtractor { url: "https://figshare.com/ndownloader/files/28333845"; + followRedirects: true; } - - pipe { - from: ThermoelectricMaterialsExtractor; - to: ThermoelectricMaterialsArchiveInterpreter; - } block ThermoelectricMaterialsArchiveInterpreter oftype ArchiveInterpreter { archiveType: "gz"; } - pipe { - from: ThermoelectricMaterialsArchiveInterpreter; - to: ThermoelectricMaterialsFilePicker; - } - block ThermoelectricMaterialsFilePicker oftype FilePicker { - path: "/test"; - } - - pipe { - from: ThermoelectricMaterialsFilePicker; - to: ThermoelectricMaterialsTextFileInterpreter; + path: "/ucsb_thermoelectrics.json"; } block ThermoelectricMaterialsTextFileInterpreter oftype TextFileInterpreter { } - pipe { - from: ThermoelectricMaterialsTextFileInterpreter; - to: ThermoelectricMaterialsCSVInterpreter; - } - - block ThermoelectricMaterialsCSVInterpreter oftype CSVInterpreter { + // Not working from here on forward, as json file is received and json interpreter is not yet implemented + block ThermoelectricMaterialsJSONInterpreter oftype CSVInterpreter { enclosing: '"'; } - pipe { - from: ThermoelectricMaterialsCSVInterpreter; - to: NameHeaderWriter; - } - - block NameHeaderWriter oftype CellWriter { - at: cell A1; - write: ["name"]; - } - - pipe { - from: NameHeaderWriter; - to: ThermoelectricMaterialsTableInterpreter; - } - block ThermoelectricMaterialsTableInterpreter oftype TableInterpreter { header: true; columns: [ - "name" oftype text, - "mpg" oftype decimal, - "cyl" oftype integer, - "disp" oftype decimal, - "hp" oftype integer, - "drat" oftype decimal, - "wt" oftype decimal, - "qsec" oftype decimal, - "vs" oftype integer, - "am" oftype integer, - "gear" oftype integer, - "carb" oftype integer + ]; } - pipe { - from: ThermoelectricMaterialsTableInterpreter; - to: ThermoelectricMaterialsLoader; - } - block ThermoelectricMaterialsLoader oftype SQLiteLoader { table: "ThermoelectricMaterials"; file: "./ThermoelectricMaterials.sqlite"; } + + ThermoelectricMaterialsExtractor + -> ThermoelectricMaterialsArchiveInterpreter + -> ThermoelectricMaterialsFilePicker + -> ThermoelectricMaterialsTextFileInterpreter + -> ThermoelectricMaterialsJSONInterpreter + -> ThermoelectricMaterialsTableInterpreter + -> ThermoelectricMaterialsLoader; } \ No newline at end of file diff --git a/libs/extensions/std/exec/src/archive-interpreter-executor.ts b/libs/extensions/std/exec/src/archive-interpreter-executor.ts index 7ca8674d7..1bb62e57e 100644 --- a/libs/extensions/std/exec/src/archive-interpreter-executor.ts +++ b/libs/extensions/std/exec/src/archive-interpreter-executor.ts @@ -21,8 +21,6 @@ import { import { IOType, PrimitiveValuetypes } from '@jvalue/jayvee-language-server'; import * as JSZip from 'jszip'; import * as zlib from 'node:zlib'; -import { createGunzip } from 'node:zlib'; -import { createReadStream, createWriteStream, readFile } from 'fs'; import { @@ -46,7 +44,6 @@ export class ArchiveInterpreterExecutor 'archiveType', PrimitiveValuetypes.Text, ); - console.log(archiveFile); if (archiveType === 'zip') { const fs = await this.loadZipFileToInMemoryFileSystem( archiveFile, @@ -82,15 +79,31 @@ export class ArchiveInterpreterExecutor try { const fs = new InMemoryFileSystem(); - console.log(archiveFile); + const archivedObject = zlib.gunzipSync(archiveFile.content); - zlib.gunzip(archiveFile.content, function(error, result) { - console.log(result); - fs.putFile( - InMemoryFileSystem.getPathSeparator(), - archiveFile, - ); - }); + const extNameArchive = path.extname(archiveFile.name); + const fileName = path.basename(archiveFile.name, extNameArchive); + const extName = path.extname(fileName); + + const mimeType = + inferMimeTypeFromContentTypeString(extName) || + MimeType.APPLICATION_OCTET_STREAM; + const fileExtension = + inferFileExtensionFromFileExtensionString(extName) || + FileExtension.NONE; + const file = new BinaryFile( + fileName, + fileExtension, + mimeType, + archivedObject, + ); + const addedFile = fs.putFile( + InMemoryFileSystem.getPathSeparator() + fileName, + file, + ); + + assert(addedFile != null); + return R.ok(fs); } catch (error: unknown) { diff --git a/libs/extensions/std/exec/src/http-extractor-executor.ts b/libs/extensions/std/exec/src/http-extractor-executor.ts index 9fa418a16..a9c7dcb78 100644 --- a/libs/extensions/std/exec/src/http-extractor-executor.ts +++ b/libs/extensions/std/exec/src/http-extractor-executor.ts @@ -116,7 +116,7 @@ export class HttpExtractorExecutor 'url', PrimitiveValuetypes.Text, ); - const url = new URL(urlString); + const url = new URL(response.responseUrl); let fileName = url.pathname.split('/').pop(); if (fileName === undefined) { fileName = url.pathname.replace('/', '-'); From 7b963ad12a810ede6f18a6ee7424685ffcdd89c0 Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Tue, 18 Jul 2023 16:53:00 +0200 Subject: [PATCH 5/6] added to description, format and tests --- libs/extensions/std/exec/src/archive-interpreter-executor.ts | 1 + libs/extensions/std/lang/src/archive-interpreter-meta-inf.ts | 2 +- libs/extensions/std/lang/src/example-validation.spec.ts | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/extensions/std/exec/src/archive-interpreter-executor.ts b/libs/extensions/std/exec/src/archive-interpreter-executor.ts index 1bb62e57e..7ab32cc95 100644 --- a/libs/extensions/std/exec/src/archive-interpreter-executor.ts +++ b/libs/extensions/std/exec/src/archive-interpreter-executor.ts @@ -97,6 +97,7 @@ export class ArchiveInterpreterExecutor mimeType, archivedObject, ); + const addedFile = fs.putFile( InMemoryFileSystem.getPathSeparator() + fileName, file, diff --git a/libs/extensions/std/lang/src/archive-interpreter-meta-inf.ts b/libs/extensions/std/lang/src/archive-interpreter-meta-inf.ts index adf197402..d48290bf1 100644 --- a/libs/extensions/std/lang/src/archive-interpreter-meta-inf.ts +++ b/libs/extensions/std/lang/src/archive-interpreter-meta-inf.ts @@ -19,7 +19,7 @@ export class ArchiveInterpreterMetaInformation extends BlockMetaInformation { archiveType: { type: PrimitiveValuetypes.Text, docs: { - description: 'The archive type to be interpreted, e.g., `"zip"`.', + description: 'The archive type to be interpreted, e.g., `"zip" or "gz`.', }, }, }, diff --git a/libs/extensions/std/lang/src/example-validation.spec.ts b/libs/extensions/std/lang/src/example-validation.spec.ts index afb4d526d..bef2626cf 100644 --- a/libs/extensions/std/lang/src/example-validation.spec.ts +++ b/libs/extensions/std/lang/src/example-validation.spec.ts @@ -38,6 +38,8 @@ describe('jv example tests', () => { it.each([ 'cars.jv', 'materials.jv', + // TODO: implement JSON-Interpreter + 'thermoelectricMaterials.jv', 'electric-vehicles.jv', 'gtfs-rt-simple.jv', 'gtfs-static-and-rt.jv', From a23642af5402a8ba6c37491c04b45fb6c0ee9c41 Mon Sep 17 00:00:00 2001 From: A-M-A-X Date: Tue, 18 Jul 2023 16:54:39 +0200 Subject: [PATCH 6/6] removed unused imports --- libs/extensions/std/exec/src/http-extractor-executor.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/libs/extensions/std/exec/src/http-extractor-executor.ts b/libs/extensions/std/exec/src/http-extractor-executor.ts index a9c7dcb78..ac375cef0 100644 --- a/libs/extensions/std/exec/src/http-extractor-executor.ts +++ b/libs/extensions/std/exec/src/http-extractor-executor.ts @@ -2,8 +2,6 @@ // // SPDX-License-Identifier: AGPL-3.0-only -// import * as http from 'http'; -// import * as https from 'https'; import * as path from 'path'; import { http, https } from 'follow-redirects';