diff --git a/deno.json b/deno.json index 0848110d6..1efea66a5 100644 --- a/deno.json +++ b/deno.json @@ -9,17 +9,21 @@ "./options": "./src/setup/options.ts", "./issues": "./src/issues/datasetIssues.ts" }, + "exclude": [ + "docs/", + "tools/", + "web/", + ".*", + "CITATION.cff", + "Dockerfile", + "build.ts", + "local-run" + ], "publish": { "exclude": [ "**/tests/", - "tools/", - "web/", - ".*", "**/*.test.ts", - "Dockerfile", - "build.ts", - "deno.lock", - "local-run" + "deno.lock" ] }, "imports": { @@ -47,6 +51,8 @@ "semiColons": false, "singleQuote": true, "proseWrap": "preserve", - "include": ["src/"] + "include": [ + "src/" + ] } } diff --git a/deno.lock b/deno.lock index a9e547f5c..c90229f9a 100644 --- a/deno.lock +++ b/deno.lock @@ -1,11 +1,12 @@ { "version": "4", "specifiers": { - "jsr:@bids/schema@0.11.4-dev.10+436d7cde": "0.11.4-dev.10+436d7cde", - "jsr:@cliffy/command@1.0.0-rc.7": "1.0.0-rc.7", + "jsr:@bids/schema@0.11.3+2": "0.11.3+1", "jsr:@cliffy/flags@1.0.0-rc.7": "1.0.0-rc.7", "jsr:@cliffy/internal@1.0.0-rc.7": "1.0.0-rc.7", - "jsr:@cliffy/table@1.0.0-rc.7": "1.0.0-rc.7", + "jsr:@effigies/cliffy-command@1.0.0-dev.8": "1.0.0-dev.8", + "jsr:@effigies/cliffy-table@1.0.0-dev.5": "1.0.0-dev.5", + "jsr:@effigies/cliffy-table@^1.0.0-dev.5": "1.0.0-dev.5", "jsr:@libs/typing@3": "3.1.0", "jsr:@libs/xml@6.0.1": "6.0.1", "jsr:@luca/esbuild-deno-loader@0.10.3": "0.10.3", @@ -38,18 +39,8 @@ "npm:ignore@6.0.2": "6.0.2" }, "jsr": { - "@bids/schema@0.11.4-dev.10+436d7cde": { - "integrity": "ad822d610054450b0b4b2fc71a654a415951e42aa4e753ede4eb550a62d04f50" - }, - "@cliffy/command@1.0.0-rc.7": { - "integrity": "1288808d7a3cd18b86c24c2f920e47a6d954b7e23cadc35c8cbd78f8be41f0cd", - "dependencies": [ - "jsr:@cliffy/flags", - "jsr:@cliffy/internal", - "jsr:@cliffy/table", - "jsr:@std/fmt@~1.0.2", - "jsr:@std/text" - ] + "@bids/schema@0.11.3+1": { + "integrity": "331d9975fe35175e5fc4990e97abf6459f564bc630309ae80ceee98211123cfb" }, "@cliffy/flags@1.0.0-rc.7": { "integrity": "318d9be98f6a6417b108e03dec427dea96cdd41a15beb21d2554ae6da450a781", @@ -60,8 +51,18 @@ "@cliffy/internal@1.0.0-rc.7": { "integrity": "10412636ab3e67517d448be9eaab1b70c88eba9be22617b5d146257a11cc9b17" }, - "@cliffy/table@1.0.0-rc.7": { - "integrity": "9fdd9776eda28a0b397981c400eeb1aa36da2371b43eefe12e6ff555290e3180", + "@effigies/cliffy-command@1.0.0-dev.8": { + "integrity": "d6489c66bf7f603225a426b26b62eaee32bf6da04b69056bcb015a1f17190087", + "dependencies": [ + "jsr:@cliffy/flags", + "jsr:@cliffy/internal", + "jsr:@effigies/cliffy-table@^1.0.0-dev.5", + "jsr:@std/fmt@~1.0.2", + "jsr:@std/text" + ] + }, + "@effigies/cliffy-table@1.0.0-dev.5": { + "integrity": "60944463d73cdb5aa70d9ff67062ac324ade5734384a410bcdd9b4b9b7d0bb1a", "dependencies": [ "jsr:@std/fmt@~1.0.2" ] @@ -401,9 +402,9 @@ }, "workspace": { "dependencies": [ - "jsr:@bids/schema@0.11.4-dev.10+436d7cde", - "jsr:@cliffy/command@1.0.0-rc.7", - "jsr:@cliffy/table@1.0.0-rc.7", + "jsr:@bids/schema@0.11.3+2", + "jsr:@effigies/cliffy-command@1.0.0-dev.8", + "jsr:@effigies/cliffy-table@1.0.0-dev.5", "jsr:@libs/xml@6.0.1", "jsr:@std/assert@1.0.7", "jsr:@std/fmt@1.0.3", diff --git a/src/files/deno.test.ts b/src/files/deno.test.ts index 24e4c13f3..330f99f2e 100644 --- a/src/files/deno.test.ts +++ b/src/files/deno.test.ts @@ -2,7 +2,7 @@ import { assert, assertEquals, assertRejects } from '@std/assert' import { readAll, readerFromStreamReader } from '@std/io' import { basename, dirname, fromFileUrl, join } from '@std/path' import { EOL } from '@std/fs' -import { FileTree } from '../types/filetree.ts' +import type { FileTree } from '../types/filetree.ts' import { BIDSFileDeno, readFileTree, UnicodeDecodeError } from './deno.ts' import { requestReadPermission } from '../setup/requestPermissions.ts' import { FileIgnoreRules } from './ignore.ts' diff --git a/src/files/dwi.test.ts b/src/files/dwi.test.ts index acb426a7e..723f1e685 100644 --- a/src/files/dwi.test.ts +++ b/src/files/dwi.test.ts @@ -4,7 +4,7 @@ import { parseBvalBvec } from './dwi.ts' Deno.test('Test bval/bvec parsing', async (t) => { await t.step('Load 3 bvals', async () => { - const bvals = parseBvalBvec('0 1 2 \n') // Typically ends with " \n" + const bvals = parseBvalBvec('0 1 2 \n') // Typically ends with " \n" assertEquals(bvals, [['0', '1', '2']]) }) await t.step('Load 3 bvals - missing newline', async () => { @@ -32,4 +32,3 @@ Deno.test('Test bval/bvec parsing', async (t) => { assertEquals(bvecs, [['0', '1', '2'], ['0', '1', '2'], ['0', '1', '2']]) }) }) - diff --git a/src/files/filetree.test.ts b/src/files/filetree.test.ts index 9c990bb1e..b23307e30 100644 --- a/src/files/filetree.test.ts +++ b/src/files/filetree.test.ts @@ -1,6 +1,6 @@ import { assert, assertEquals } from '@std/assert' -import { FileIgnoreRules } from './ignore.ts' -import { FileTree } from '../types/filetree.ts' +import type { FileIgnoreRules } from './ignore.ts' +import type { FileTree } from '../types/filetree.ts' import { filesToTree, pathsToTree } from './filetree.ts' Deno.test('FileTree generation', async (t) => { diff --git a/src/files/filetree.ts b/src/files/filetree.ts index aac9734e8..045eca904 100644 --- a/src/files/filetree.ts +++ b/src/files/filetree.ts @@ -1,6 +1,6 @@ import { parse, SEPARATOR_PATTERN } from '@std/path' import * as posix from '@std/path/posix' -import { BIDSFile, FileTree } from '../types/filetree.ts' +import { type BIDSFile, FileTree } from '../types/filetree.ts' const nullFile = { size: 0, diff --git a/src/files/gzip.ts b/src/files/gzip.ts index e15f0f85c..f5ec02ca2 100644 --- a/src/files/gzip.ts +++ b/src/files/gzip.ts @@ -2,8 +2,8 @@ * GZIP * Module for extracting gzip metadata from a file */ -import { Gzip } from '@bids/schema/context' -import { BIDSFile } from '../types/filetree.ts' +import type { Gzip } from '@bids/schema/context' +import type { BIDSFile } from '../types/filetree.ts' /** * Parse a gzip header from a file diff --git a/src/files/tiff.ts b/src/files/tiff.ts index ba828564a..2634de0b2 100644 --- a/src/files/tiff.ts +++ b/src/files/tiff.ts @@ -2,9 +2,9 @@ * TIFF * Module for extracting Tiff metadata */ -import { Ome, Tiff } from '@bids/schema/context' +import type { Ome, Tiff } from '@bids/schema/context' import * as XML from '@libs/xml' -import { BIDSFile } from '../types/filetree.ts' +import type { BIDSFile } from '../types/filetree.ts' function getImageDescription( dataview: DataView, diff --git a/src/issues/datasetIssues.ts b/src/issues/datasetIssues.ts index 18ecbbc23..3bb52df71 100644 --- a/src/issues/datasetIssues.ts +++ b/src/issues/datasetIssues.ts @@ -1,6 +1,6 @@ import { nonSchemaIssues } from './list.ts' -import type { Issue, Severity, IssueDefinition, IssueFile } from '../types/issues.ts' -export type { Issue, Severity, IssueDefinition, IssueFile } +import type { Issue, IssueDefinition, IssueFile, Severity } from '../types/issues.ts' +export type { Issue, IssueDefinition, IssueFile, Severity } // Code is deprecated, return something unusual but JSON serializable const CODE_DEPRECATED = Number.MIN_SAFE_INTEGER diff --git a/src/issues/list.ts b/src/issues/list.ts index 779a7cdef..edd0a6f54 100644 --- a/src/issues/list.ts +++ b/src/issues/list.ts @@ -168,14 +168,13 @@ export const bidsIssues: IssueDefinitionRecord = { }, CITATION_CFF_VALIDATION_ERROR: { severity: 'error', - reason: - "The file does not pass validation using the citation.cff standard's schema." + - 'https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md' + reason: "The file does not pass validation using the citation.cff standard's schema." + + 'https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md', }, FILE_READ: { severity: 'error', - reason: 'We were unable to read this file.' - } + reason: 'We were unable to read this file.', + }, } const hedIssues: IssueDefinitionRecord = { diff --git a/src/main.ts b/src/main.ts index eb9c835fb..56b28fff0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -28,9 +28,9 @@ export async function main(): Promise { // Run the schema based validator const schemaResult = await validate(tree, options, config) - let output_string = "" + let output_string = '' if (options.json) { - output_string = resultToJSONStr(schemaResult) + output_string = resultToJSONStr(schemaResult) } else { output_string = consoleFormat(schemaResult, { verbose: options.verbose ? options.verbose : false, @@ -41,7 +41,7 @@ export async function main(): Promise { if (globalThis.Deno) { Deno.writeTextFileSync(options.outfile, output_string) } else { - console.error("Output to file only supported in Deno runtime") + console.error('Output to file only supported in Deno runtime') console.log(output_string) } } else { diff --git a/src/schema/associations.ts b/src/schema/associations.ts index ec1d17645..bc7eef45a 100644 --- a/src/schema/associations.ts +++ b/src/schema/associations.ts @@ -163,7 +163,10 @@ export async function buildAssociations( try { file = walkBack(source, inherit, extensions, suffix).next().value } catch (error) { - if (error && typeof error === 'object' && 'code' in error && error.code === 'MULTIPLE_INHERITABLE_FILES') { + if ( + error && typeof error === 'object' && 'code' in error && + error.code === 'MULTIPLE_INHERITABLE_FILES' + ) { // @ts-expect-error issues.add(error) break diff --git a/src/schema/context.ts b/src/schema/context.ts index e4b5c83e5..273215af7 100644 --- a/src/schema/context.ts +++ b/src/schema/context.ts @@ -184,7 +184,10 @@ export class BIDSContext implements Context { try { sidecars = [...walkBack(this.file)] } catch (error) { - if (error && typeof error === 'object' && 'code' in error && error.code === 'MULTIPLE_INHERITABLE_FILES') { + if ( + error && typeof error === 'object' && 'code' in error && + error.code === 'MULTIPLE_INHERITABLE_FILES' + ) { // @ts-expect-error this.dataset.issues.add(error) } else { diff --git a/src/schema/fixtures.test.ts b/src/schema/fixtures.test.ts index 9f5f7b8f9..45c00df71 100644 --- a/src/schema/fixtures.test.ts +++ b/src/schema/fixtures.test.ts @@ -1,4 +1,4 @@ -import { BIDSFile, FileTree } from '../types/filetree.ts' +import type { BIDSFile, FileTree } from '../types/filetree.ts' import { pathsToTree } from '../files/filetree.ts' import { nullReadBytes } from '../tests/nullReadBytes.ts' diff --git a/src/schema/tables.ts b/src/schema/tables.ts index acf88a8c3..77bc3bed5 100644 --- a/src/schema/tables.ts +++ b/src/schema/tables.ts @@ -1,5 +1,5 @@ -import { GenericRule, GenericSchema, SchemaType, SchemaTypeLike } from '../types/schema.ts' -import { BIDSContext } from './context.ts' +import type { GenericRule, GenericSchema, SchemaType, SchemaTypeLike } from '../types/schema.ts' +import type { BIDSContext } from './context.ts' interface ColumnDefinition { Levels?: Record diff --git a/src/setup/options.ts b/src/setup/options.ts index 76aa10f1d..891fcfe32 100644 --- a/src/setup/options.ts +++ b/src/setup/options.ts @@ -32,7 +32,7 @@ export type ValidatorOptions = { } const modalityType = new EnumType( - Object.keys(schema.rules.modalities) + Object.keys(schema.rules.modalities), ) /** Extendable Cliffy Command with built in BIDS validator options */ diff --git a/src/validators/citation.test.ts b/src/validators/citation.test.ts index 16bcfbcba..7b7f0227e 100644 --- a/src/validators/citation.test.ts +++ b/src/validators/citation.test.ts @@ -3,7 +3,7 @@ import { pathsToTree } from '../files/filetree.ts' import { BIDSFileDeno } from '../files/deno.ts' import { citationValidate } from './citation.ts' import { BIDSContextDataset } from '../schema/context.ts' -import { GenericSchema } from '../types/schema.ts' +import type { GenericSchema } from '../types/schema.ts' import { loadSchema } from '../setup/loadSchema.ts' Deno.test('citation validation', async (t) => { diff --git a/src/validators/filenameValidate.test.ts b/src/validators/filenameValidate.test.ts index 9771d32c0..af741e52f 100644 --- a/src/validators/filenameValidate.test.ts +++ b/src/validators/filenameValidate.test.ts @@ -1,4 +1,4 @@ -import { FileTree } from '../types/filetree.ts' +import type { FileTree } from '../types/filetree.ts' import type { GenericSchema } from '../types/schema.ts' import { assertEquals } from '@std/assert' import { BIDSContext } from '../schema/context.ts' diff --git a/src/version.ts b/src/version.ts index ff11a197b..b9b711499 100644 --- a/src/version.ts +++ b/src/version.ts @@ -34,14 +34,14 @@ export async function getVersion(): Promise { async function getLocalVersion(path: string): Promise { // safe.directory setting so we could still operate from another user try { - const command = new Deno.Command("git", { + const command = new Deno.Command('git', { args: ['-C', path, '-c', 'safe.directory=*', 'describe', '--tags', '--always'], }) - const { success, stdout } = await command.output(); + const { success, stdout } = await command.output() const description = new TextDecoder().decode(stdout).trim() return description - } catch(err) { - return "" + } catch (err) { + return '' } }