@rdfx/format 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ import type { CompressionMethod } from "./CompressionMethod.js";
2
+ import type { UncompressedRdfFormat } from "./UncompressedRdfFormat.js";
3
+ export interface CompressedRdfFormat extends Omit<UncompressedRdfFormat, "mimeType"> {
4
+ readonly mimeType: CompressionMethod;
5
+ readonly uncompressedMimeType: UncompressedRdfFormat["mimeType"];
6
+ }
7
+ //# sourceMappingURL=CompressedRdfFormat.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CompressedRdfFormat.js.map
@@ -0,0 +1,3 @@
1
+ import type { compressionMethods } from "./compressionMethods.js";
2
+ export type CompressionMethod = (typeof compressionMethods)[number];
3
+ //# sourceMappingURL=CompressionMethod.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CompressionMethod.js.map
@@ -0,0 +1,9 @@
1
+ import { type Either } from "purify-ts";
2
+ import type { CompressedRdfFormat } from "./CompressedRdfFormat.js";
3
+ import type { UncompressedRdfFormat } from "./UncompressedRdfFormat.js";
4
+ export type RdfFormat = CompressedRdfFormat | UncompressedRdfFormat;
5
+ export declare namespace RdfFormat {
6
+ function fromFileName(fileName: string): Either<Error, RdfFormat>;
7
+ function isCompressed(rdfFormat: RdfFormat): rdfFormat is CompressedRdfFormat;
8
+ }
9
+ //# sourceMappingURL=RdfFormat.d.ts.map
@@ -0,0 +1,58 @@
1
+ import { Mime } from "mime";
2
+ import otherMimeTypes from "mime/types/other.js";
3
+ import standardMimeTypes from "mime/types/standard.js";
4
+ import { Left, Right } from "purify-ts";
5
+ import { compressionMethods } from "./compressionMethods.js";
6
+ import { uncompressedRdfFormatsByMimeType } from "./uncompressedRdfFormatsByMimeType.js";
7
+ const compressionMethodsSet = new Set(compressionMethods);
8
+ const mime = new Mime(standardMimeTypes, otherMimeTypes, {
9
+ "application/x-brotli": ["br"],
10
+ });
11
+ export var RdfFormat;
12
+ (function (RdfFormat) {
13
+ function basename(filePath) {
14
+ const lastSlashIndex = Math.max(filePath.lastIndexOf("/"), filePath.lastIndexOf("\\"));
15
+ return lastSlashIndex === -1
16
+ ? filePath
17
+ : filePath.slice(lastSlashIndex + 1);
18
+ }
19
+ function removeExtension(fileName) {
20
+ const lastDotIndex = fileName.lastIndexOf(".");
21
+ // lastDotIndex <= 0 covers "no extension" and dotfiles like ".gitignore"
22
+ return lastDotIndex <= 0 ? fileName : fileName.slice(0, lastDotIndex);
23
+ }
24
+ function fromFileName(fileName) {
25
+ const mimeType = mime.getType(fileName);
26
+ if (mimeType === null) {
27
+ return Left(new Error(`unable to infer MIME type of ${fileName}`));
28
+ }
29
+ if (compressionMethodsSet.has(mimeType)) {
30
+ const uncompressedFileName = removeExtension(basename(fileName));
31
+ const uncompressedMimeType = mime.getType(uncompressedFileName);
32
+ if (uncompressedMimeType === null) {
33
+ return Left(new Error(`unable to infer MIME type of ${uncompressedFileName}`));
34
+ }
35
+ const uncompressedRdfFormat = uncompressedRdfFormatsByMimeType[uncompressedMimeType];
36
+ if (uncompressedRdfFormat === undefined) {
37
+ return Left(new Error(`${fileName} has a non-RDF MIME type: ${uncompressedMimeType}`));
38
+ }
39
+ return Right({
40
+ lineOriented: uncompressedRdfFormat.lineOriented,
41
+ mimeType: mimeType,
42
+ supportsQuads: uncompressedRdfFormat.supportsQuads,
43
+ uncompressedMimeType: uncompressedRdfFormat.mimeType,
44
+ });
45
+ }
46
+ const uncompressedRdfFormat = uncompressedRdfFormatsByMimeType[mimeType];
47
+ if (uncompressedRdfFormat === undefined) {
48
+ return Left(new Error(`${fileName} has a non-RDF MIME type: ${mimeType}`));
49
+ }
50
+ return Right(uncompressedRdfFormat);
51
+ }
52
+ RdfFormat.fromFileName = fromFileName;
53
+ function isCompressed(rdfFormat) {
54
+ return compressionMethods.some((compressionMethod) => compressionMethod === rdfFormat.mimeType);
55
+ }
56
+ RdfFormat.isCompressed = isCompressed;
57
+ })(RdfFormat || (RdfFormat = {}));
58
+ //# sourceMappingURL=RdfFormat.js.map
@@ -0,0 +1,7 @@
1
+ export declare const RDF_FORMATS: readonly [];
2
+ export interface UncompressedRdfFormat {
3
+ readonly lineOriented: boolean;
4
+ readonly mimeType: "application/ld+json" | "application/n-quads" | "application/n-triples" | "application/trig" | "text/n3" | "text/turtle";
5
+ readonly supportsQuads: boolean;
6
+ }
7
+ //# sourceMappingURL=UncompressedRdfFormat.d.ts.map
@@ -0,0 +1,2 @@
1
+ export const RDF_FORMATS = [];
2
+ //# sourceMappingURL=UncompressedRdfFormat.js.map
@@ -0,0 +1,2 @@
1
+ export declare const compressionMethods: readonly ["application/gzip", "application/x-brotli", "application/x-bzip2"];
2
+ //# sourceMappingURL=compressionMethods.d.ts.map
@@ -0,0 +1,6 @@
1
+ export const compressionMethods = [
2
+ "application/gzip",
3
+ "application/x-brotli",
4
+ "application/x-bzip2",
5
+ ];
6
+ //# sourceMappingURL=compressionMethods.js.map
@@ -0,0 +1,8 @@
1
+ export * from "./CompressedRdfFormat.js";
2
+ export * from "./CompressionMethod.js";
3
+ export * from "./compressionMethods.js";
4
+ export * from "./RdfFormat.js";
5
+ export * from "./UncompressedRdfFormat.js";
6
+ export * from "./uncompressedRdfFormats.js";
7
+ export * from "./uncompressedRdfFormatsByMimeType.js";
8
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./CompressedRdfFormat.js";
2
+ export * from "./CompressionMethod.js";
3
+ export * from "./compressionMethods.js";
4
+ export * from "./RdfFormat.js";
5
+ export * from "./UncompressedRdfFormat.js";
6
+ export * from "./uncompressedRdfFormats.js";
7
+ export * from "./uncompressedRdfFormatsByMimeType.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import type { UncompressedRdfFormat } from "./UncompressedRdfFormat.js";
2
+ export declare const uncompressedRdfFormats: readonly UncompressedRdfFormat[];
3
+ //# sourceMappingURL=uncompressedRdfFormats.d.ts.map
@@ -0,0 +1,33 @@
1
+ export const uncompressedRdfFormats = [
2
+ {
3
+ lineOriented: false,
4
+ mimeType: "application/ld+json",
5
+ supportsQuads: true,
6
+ },
7
+ {
8
+ lineOriented: true,
9
+ mimeType: "application/n-quads",
10
+ supportsQuads: false,
11
+ },
12
+ {
13
+ lineOriented: true,
14
+ mimeType: "application/n-triples",
15
+ supportsQuads: false,
16
+ },
17
+ {
18
+ lineOriented: false,
19
+ mimeType: "application/trig",
20
+ supportsQuads: true,
21
+ },
22
+ {
23
+ lineOriented: false,
24
+ mimeType: "text/n3",
25
+ supportsQuads: false,
26
+ },
27
+ {
28
+ lineOriented: false,
29
+ mimeType: "text/turtle",
30
+ supportsQuads: false,
31
+ },
32
+ ];
33
+ //# sourceMappingURL=uncompressedRdfFormats.js.map
@@ -0,0 +1,3 @@
1
+ import type { UncompressedRdfFormat } from "./UncompressedRdfFormat.js";
2
+ export declare const uncompressedRdfFormatsByMimeType: Record<"application/ld+json" | "application/n-quads" | "application/n-triples" | "application/rdf+xml" | "application/trig" | "text/n3" | "text/turtle", UncompressedRdfFormat>;
3
+ //# sourceMappingURL=uncompressedRdfFormatsByMimeType%20copy.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { uncompressedRdfFormats } from "./uncompressedRdfFormats.js";
2
+ export const uncompressedRdfFormatsByMimeType = uncompressedRdfFormats.reduce((acc, uncompressedRdfFormat) => {
3
+ acc[uncompressedRdfFormat.mimeType] = uncompressedRdfFormat;
4
+ return acc;
5
+ }, {});
6
+ //# sourceMappingURL=uncompressedRdfFormatsByMimeType%20copy.js.map
@@ -0,0 +1,3 @@
1
+ import type { UncompressedRdfFormat } from "./UncompressedRdfFormat.js";
2
+ export declare const uncompressedRdfFormatsByMimeType: Record<"application/ld+json" | "application/n-quads" | "application/n-triples" | "application/trig" | "text/n3" | "text/turtle", UncompressedRdfFormat>;
3
+ //# sourceMappingURL=uncompressedRdfFormatsByMimeType.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { uncompressedRdfFormats } from "./uncompressedRdfFormats.js";
2
+ export const uncompressedRdfFormatsByMimeType = uncompressedRdfFormats.reduce((acc, uncompressedRdfFormat) => {
3
+ acc[uncompressedRdfFormat.mimeType] = uncompressedRdfFormat;
4
+ return acc;
5
+ }, {});
6
+ //# sourceMappingURL=uncompressedRdfFormatsByMimeType.js.map
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "dependencies": {
3
+ "mime": "~4.1.0"
4
+ },
5
+ "devDependencies": {},
6
+ "files": [
7
+ "LICENSE",
8
+ "dist/*.d.ts",
9
+ "dist/*.js"
10
+ ],
11
+ "license": "Apache-2.0",
12
+ "main": "./dist/index.js",
13
+ "name": "@rdfx/format",
14
+ "packageManager": "npm@11.11.0",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/minorg/rdfx.git"
18
+ },
19
+ "scripts": {
20
+ "build": "tsc -b",
21
+ "clean": "rimraf dist",
22
+ "depcheck": "depcheck --ignores=\"@tsconfig/*,vitest,vitest-fetch-mock\" .",
23
+ "dev": "tsc -w --preserveWatchOutput",
24
+ "dev:tests": "tsc -p __tests__ -w --preserveWatchOutput",
25
+ "test": "cd ../.. && vitest run packages/format/__tests__"
26
+ },
27
+ "type": "module",
28
+ "types": "./dist/index.d.ts",
29
+ "version": "0.0.51"
30
+ }