diff --git a/src/types/git.ts b/__tests__/.helpers/os.ts similarity index 55% rename from src/types/git.ts rename to __tests__/.helpers/os.ts index 47cd3d0e..0f2f770c 100644 --- a/src/types/git.ts +++ b/__tests__/.helpers/os.ts @@ -1,5 +1,5 @@ /** - * Copyright 2023 actions-toolkit authors + * Copyright 2025 actions-toolkit authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,6 +14,17 @@ * limitations under the License. */ -import {Context as GitHubContext} from '@actions/github/lib/context'; +import {jest} from '@jest/globals'; +import os from 'os'; -export type Context = GitHubContext; +export const mockPlatform = (platform: NodeJS.Platform) => { + return jest.spyOn(os, 'platform').mockImplementation(() => platform); +}; + +export const mockArch = (arch: string) => { + return jest.spyOn(os, 'arch').mockImplementation(() => arch); +}; + +export const mockHomedir = (dir: string) => { + return jest.spyOn(os, 'homedir').mockImplementation(() => dir); +}; diff --git a/__tests__/buildx/install.test.ts b/__tests__/buildx/install.test.ts index 9defe183..fcfa3112 100644 --- a/__tests__/buildx/install.test.ts +++ b/__tests__/buildx/install.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {describe, expect, it, jest, test, afterEach} from '@jest/globals'; +import {describe, expect, it, test, afterEach} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install} from '../../src/buildx/install'; @@ -85,8 +86,8 @@ describe('download', () => { ['linux', 's390x'], ])( 'acquires buildx for %s/%s', async (os, arch) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const install = new Install(); const buildxBin = await install.download('latest'); expect(fs.existsSync(buildxBin)).toBe(true); diff --git a/__tests__/compose/install.test.ts b/__tests__/compose/install.test.ts index c87ea0cd..b50da2c7 100644 --- a/__tests__/compose/install.test.ts +++ b/__tests__/compose/install.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {describe, expect, it, jest, test, afterEach} from '@jest/globals'; +import {describe, expect, it, test, afterEach} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install} from '../../src/compose/install'; @@ -85,8 +86,8 @@ describe('download', () => { ['linux', 's390x'], ])( 'acquires compose for %s/%s', async (os, arch) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const install = new Install(); const composeBin = await install.download('latest'); expect(fs.existsSync(composeBin)).toBe(true); diff --git a/__tests__/cosign/install.test.ts b/__tests__/cosign/install.test.ts index f77fe10b..4a97fc80 100644 --- a/__tests__/cosign/install.test.ts +++ b/__tests__/cosign/install.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {describe, expect, it, jest, test, afterEach} from '@jest/globals'; +import {describe, expect, it, test, afterEach} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install} from '../../src/cosign/install'; @@ -80,8 +81,8 @@ describe('download', () => { ['linux', 'arm64'] ])( 'acquires undock for %s/%s', async (os, arch) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const install = new Install(); const cosignBin = await install.download({ version: 'latest' diff --git a/__tests__/docker/docker.test.ts b/__tests__/docker/docker.test.ts index c0bd65a2..483c52a5 100644 --- a/__tests__/docker/docker.test.ts +++ b/__tests__/docker/docker.test.ts @@ -19,9 +19,10 @@ import fs from 'fs'; import os from 'os'; import path from 'path'; import * as io from '@actions/io'; -import osm = require('os'); import * as rimraf from 'rimraf'; +import {mockHomedir} from '../.helpers/os'; + import {Docker} from '../../src/docker/docker'; import {ConfigFile} from '../../src/types/docker/docker'; @@ -47,7 +48,7 @@ describe('configDir', () => { }); it('returns default', async () => { process.env.DOCKER_CONFIG = ''; - jest.spyOn(osm, 'homedir').mockImplementation(() => path.join('/tmp', 'home')); + mockHomedir(path.join('/tmp', 'home')); expect(Docker.configDir).toEqual(path.join('/tmp', 'home', '.docker')); }); it('returns from env', async () => { diff --git a/__tests__/docker/install.test.ts b/__tests__/docker/install.test.ts index 7b1d1ce3..aebec663 100644 --- a/__tests__/docker/install.test.ts +++ b/__tests__/docker/install.test.ts @@ -19,7 +19,8 @@ import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install'; @@ -60,8 +61,8 @@ describe('download', () => { [image('27.3.1'), 'win32'], ])( 'acquires %p of docker (%s)', async (source, platformOS) => { - jest.spyOn(osm, 'platform').mockImplementation(() => platformOS as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => 'x64'); + mockPlatform(platformOS as NodeJS.Platform); + mockArch('x64'); const install = new Install({ source: source, runDir: tmpDir diff --git a/__tests__/oci/oci.test.ts b/__tests__/oci/oci.test.ts index 684f88fe..0125ee73 100644 --- a/__tests__/oci/oci.test.ts +++ b/__tests__/oci/oci.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {afterEach, describe, expect, jest, test} from '@jest/globals'; +import {afterEach, describe, expect, test} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {OCI} from '../../src/oci/oci'; @@ -44,8 +45,8 @@ describe('defaultPlatform', () => { ['linux', 'ppc64', {architecture: 'ppc64le', os: 'linux'}], ['linux', 's390x', {architecture: 's390x', os: 'linux'}] ])('default platform for %s/%s', async (os: string, arch: string, expected: Platform) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const res = OCI.defaultPlatform(); expect(res).toEqual(expected); }); diff --git a/__tests__/regclient/install.test.ts b/__tests__/regclient/install.test.ts index 132fd7a0..90733a88 100644 --- a/__tests__/regclient/install.test.ts +++ b/__tests__/regclient/install.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {describe, expect, it, jest, test, afterEach} from '@jest/globals'; +import {describe, expect, it, test, afterEach} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install} from '../../src/regclient/install'; @@ -75,8 +76,8 @@ describe('download', () => { ['linux', 's390x'], ])( 'acquires regclient for %s/%s', async (os, arch) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const install = new Install(); const regclientBin = await install.download('latest'); expect(fs.existsSync(regclientBin)).toBe(true); diff --git a/__tests__/testResultsProcessor.js b/__tests__/testResultsProcessor.cjs similarity index 100% rename from __tests__/testResultsProcessor.js rename to __tests__/testResultsProcessor.cjs diff --git a/__tests__/undock/install.test.ts b/__tests__/undock/install.test.ts index fe604cff..3d075804 100644 --- a/__tests__/undock/install.test.ts +++ b/__tests__/undock/install.test.ts @@ -14,12 +14,13 @@ * limitations under the License. */ -import {describe, expect, it, jest, test, afterEach} from '@jest/globals'; +import {describe, expect, it, test, afterEach} from '@jest/globals'; import fs from 'fs'; import os from 'os'; import path from 'path'; import * as rimraf from 'rimraf'; -import osm = require('os'); + +import {mockArch, mockPlatform} from '../.helpers/os'; import {Install} from '../../src/undock/install'; @@ -80,8 +81,8 @@ describe('download', () => { ['linux', 's390x'], ])( 'acquires undock for %s/%s', async (os, arch) => { - jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform); - jest.spyOn(osm, 'arch').mockImplementation(() => arch); + mockPlatform(os as NodeJS.Platform); + mockArch(arch); const install = new Install(); const undockBin = await install.download('latest'); expect(fs.existsSync(undockBin)).toBe(true); diff --git a/eslint.config.js b/eslint.config.cjs similarity index 93% rename from eslint.config.js rename to eslint.config.cjs index dfaf93e3..fe8611b0 100644 --- a/eslint.config.js +++ b/eslint.config.cjs @@ -62,7 +62,7 @@ module.exports = defineConfig([ }, parser: tsParser, ecmaVersion: 2023, - sourceType: 'commonjs' + sourceType: 'module' }, rules: { @@ -75,7 +75,7 @@ module.exports = defineConfig([ 'import/no-unresolved': [ 'error', { - ignore: ['csv-parse/sync', '@octokit/openapi-types'] + ignore: ['\\.js$', 'csv-parse/sync', '@octokit/openapi-types', '@octokit/core', '@octokit/plugin-rest-endpoint-methods'] } ], 'jest/no-disabled-tests': 0 diff --git a/jest.config.js b/jest.config.cjs similarity index 88% rename from jest.config.js rename to jest.config.cjs index 2a4a4587..374a9f06 100644 --- a/jest.config.js +++ b/jest.config.cjs @@ -38,13 +38,20 @@ module.exports = { setupFiles: ['dotenv/config'], testMatch: ['**/*.test.ts'], transform: { - '^.+\\.ts$': 'ts-jest' + '^.+\\.ts$': [ + 'ts-jest', + { + useESM: true, + tsconfig: '/tsconfig.test.json' + } + ] }, moduleNameMapper: { - '^csv-parse/sync': '/node_modules/csv-parse/dist/cjs/sync.cjs' + '^(\\.{1,2}/.*)\\.js$': '$1' }, + extensionsToTreatAsEsm: ['.ts'], collectCoverageFrom: ['src/**/{!(index.ts),}.ts'], coveragePathIgnorePatterns: ['lib/', 'node_modules/', '__mocks__/', '__tests__/'], - testResultsProcessor: '/__tests__/testResultsProcessor.js', + testResultsProcessor: '/__tests__/testResultsProcessor.cjs', verbose: true }; diff --git a/jest.config.itg.js b/jest.config.itg.cjs similarity index 81% rename from jest.config.itg.js rename to jest.config.itg.cjs index a05e702b..87547520 100644 --- a/jest.config.itg.js +++ b/jest.config.itg.cjs @@ -21,11 +21,18 @@ module.exports = { testMatch: ['**/*.test.itg.ts'], testTimeout: 1800000, // 30 minutes transform: { - '^.+\\.ts$': 'ts-jest' + '^.+\\.ts$': [ + 'ts-jest', + { + useESM: true, + tsconfig: '/tsconfig.test.json' + } + ] }, moduleNameMapper: { - '^csv-parse/sync': '/node_modules/csv-parse/dist/cjs/sync.cjs' + '^(\\.{1,2}/.*)\\.js$': '$1' }, - testResultsProcessor: '/__tests__/testResultsProcessor.js', + extensionsToTreatAsEsm: ['.ts'], + testResultsProcessor: '/__tests__/testResultsProcessor.cjs', verbose: false }; diff --git a/package.json b/package.json index 107ee743..bfd231f8 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "@docker/actions-toolkit", "version": "0.0.0+unknown", "description": "Toolkit for Docker (GitHub) Actions", + "type": "module", "scripts": { "build": "tsc", "lint": "yarn run prettier && yarn run eslint", @@ -12,9 +13,9 @@ "prettier:fix": "prettier --write \"./**/*.ts\"", "test": "jest", "test:coverage": "jest --coverage", - "test:itg": "jest -c jest.config.itg.js --runInBand", - "test:itg-list": "jest -c jest.config.itg.js --listTests", - "test:itg-coverage": "jest -c jest.config.itg.js --coverage --runInBand" + "test:itg": "jest -c jest.config.itg.cjs --runInBand", + "test:itg-list": "jest -c jest.config.itg.cjs --listTests", + "test:itg-coverage": "jest -c jest.config.itg.cjs --coverage --runInBand" }, "repository": { "type": "git", diff --git a/src/buildkit/buildkit.ts b/src/buildkit/buildkit.ts index ee90ab42..dbf80aeb 100644 --- a/src/buildkit/buildkit.ts +++ b/src/buildkit/buildkit.ts @@ -17,12 +17,12 @@ import * as core from '@actions/core'; import * as semver from 'semver'; -import {Buildx} from '../buildx/buildx'; -import {Builder} from '../buildx/builder'; -import {Docker} from '../docker/docker'; -import {Config} from './config'; +import {Buildx} from '../buildx/buildx.js'; +import {Builder} from '../buildx/builder.js'; +import {Docker} from '../docker/docker.js'; +import {Config} from './config.js'; -import {BuilderInfo, NodeInfo} from '../types/buildx/builder'; +import {BuilderInfo, NodeInfo} from '../types/buildx/builder.js'; export interface BuildKitOpts { buildx?: Buildx; diff --git a/src/buildkit/config.ts b/src/buildkit/config.ts index 9563b4ce..bd9fa7bb 100644 --- a/src/buildkit/config.ts +++ b/src/buildkit/config.ts @@ -16,7 +16,7 @@ import fs from 'fs'; -import {Context} from '../context'; +import {Context} from '../context.js'; export class Config { public resolveFromString(s: string): string { diff --git a/src/buildkit/git.ts b/src/buildkit/git.ts index 2415b59b..cb9d68d3 100644 --- a/src/buildkit/git.ts +++ b/src/buildkit/git.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitRef, GitURL, GitURLFragment, URLUserInfo} from '../types/buildkit/git'; +import {GitRef, GitURL, GitURLFragment, URLUserInfo} from '../types/buildkit/git.js'; export class Git { private static protoRegexp = new RegExp('^[a-zA-Z0-9]+://'); diff --git a/src/buildx/bake.ts b/src/buildx/bake.ts index db0dfd05..7730f9e5 100644 --- a/src/buildx/bake.ts +++ b/src/buildx/bake.ts @@ -18,15 +18,15 @@ import fs from 'fs'; import path from 'path'; import {parse} from 'csv-parse/sync'; -import {Buildx} from './buildx'; -import {Context} from '../context'; -import {Exec} from '../exec'; -import {Util} from '../util'; +import {Buildx} from './buildx.js'; +import {Context} from '../context.js'; +import {Exec} from '../exec.js'; +import {Util} from '../util.js'; import {ExecOptions} from '@actions/exec'; -import {AttestEntry, BakeDefinition, CacheEntry, ExportEntry, SecretEntry, SSHEntry} from '../types/buildx/bake'; -import {BuildMetadata} from '../types/buildx/build'; -import {VertexWarning} from '../types/buildkit/client'; +import {AttestEntry, BakeDefinition, CacheEntry, ExportEntry, SecretEntry, SSHEntry} from '../types/buildx/bake.js'; +import {BuildMetadata} from '../types/buildx/build.js'; +import {VertexWarning} from '../types/buildkit/client.js'; export interface BakeOpts { buildx?: Buildx; diff --git a/src/buildx/build.ts b/src/buildx/build.ts index cd385e8b..5cf3e919 100644 --- a/src/buildx/build.ts +++ b/src/buildx/build.ts @@ -19,14 +19,14 @@ import path from 'path'; import * as core from '@actions/core'; import {parse} from 'csv-parse/sync'; -import {Buildx} from './buildx'; -import {Context} from '../context'; -import {GitHub} from '../github'; -import {Util} from '../util'; - -import {BuildMetadata} from '../types/buildx/build'; -import {VertexWarning} from '../types/buildkit/client'; -import {ProvenancePredicate} from '../types/intoto/slsa_provenance/v0.2/provenance'; +import {Buildx} from './buildx.js'; +import {Context} from '../context.js'; +import {GitHub} from '../github.js'; +import {Util} from '../util.js'; + +import {BuildMetadata} from '../types/buildx/build.js'; +import {VertexWarning} from '../types/buildkit/client.js'; +import {ProvenancePredicate} from '../types/intoto/slsa_provenance/v0.2/provenance.js'; export interface BuildOpts { buildx?: Buildx; diff --git a/src/buildx/builder.ts b/src/buildx/builder.ts index 2e54e8e1..8f902a14 100644 --- a/src/buildx/builder.ts +++ b/src/buildx/builder.ts @@ -16,10 +16,10 @@ import * as core from '@actions/core'; -import {Buildx} from './buildx'; -import {Exec} from '../exec'; +import {Buildx} from './buildx.js'; +import {Exec} from '../exec.js'; -import {BuilderInfo, Device, GCPolicy, NodeInfo} from '../types/buildx/builder'; +import {BuilderInfo, Device, GCPolicy, NodeInfo} from '../types/buildx/builder.js'; export interface BuilderOpts { buildx?: Buildx; diff --git a/src/buildx/buildx.ts b/src/buildx/buildx.ts index ef5f41ce..2b26a1b0 100644 --- a/src/buildx/buildx.ts +++ b/src/buildx/buildx.ts @@ -19,16 +19,16 @@ import path from 'path'; import * as core from '@actions/core'; import * as semver from 'semver'; -import {Git} from '../buildkit/git'; -import {Docker} from '../docker/docker'; -import {GitHub} from '../github'; -import {Exec} from '../exec'; -import {Util} from '../util'; - -import {VertexWarning} from '../types/buildkit/client'; -import {GitURL} from '../types/buildkit/git'; -import {Cert, LocalRefsOpts, LocalRefsResponse, LocalState} from '../types/buildx/buildx'; -import {GitHubAnnotation} from '../types/github'; +import {Git} from '../buildkit/git.js'; +import {Docker} from '../docker/docker.js'; +import {GitHub} from '../github.js'; +import {Exec} from '../exec.js'; +import {Util} from '../util.js'; + +import {VertexWarning} from '../types/buildkit/client.js'; +import {GitURL} from '../types/buildkit/git.js'; +import {Cert, LocalRefsOpts, LocalRefsResponse, LocalState} from '../types/buildx/buildx.js'; +import {GitHubAnnotation} from '../types/github.js'; export interface BuildxOpts { standalone?: boolean; diff --git a/src/buildx/history.ts b/src/buildx/history.ts index 02abde6d..c8067ffd 100644 --- a/src/buildx/history.ts +++ b/src/buildx/history.ts @@ -21,14 +21,14 @@ import path from 'path'; import {Readable, Writable} from 'stream'; import * as core from '@actions/core'; -import {Buildx} from './buildx'; -import {Context} from '../context'; -import {Docker} from '../docker/docker'; -import {Exec} from '../exec'; -import {GitHub} from '../github'; -import {Util} from '../util'; - -import {ExportOpts, ExportResponse, InspectOpts, InspectResponse, Summaries} from '../types/buildx/history'; +import {Buildx} from './buildx.js'; +import {Context} from '../context.js'; +import {Docker} from '../docker/docker.js'; +import {Exec} from '../exec.js'; +import {GitHub} from '../github.js'; +import {Util} from '../util.js'; + +import {ExportOpts, ExportResponse, InspectOpts, InspectResponse, Summaries} from '../types/buildx/history.js'; export interface HistoryOpts { buildx?: Buildx; diff --git a/src/buildx/imagetools.ts b/src/buildx/imagetools.ts index dfaac461..ca35acd1 100644 --- a/src/buildx/imagetools.ts +++ b/src/buildx/imagetools.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import {Buildx} from './buildx'; -import {Exec} from '../exec'; +import {Buildx} from './buildx.js'; +import {Exec} from '../exec.js'; -import {Manifest as ImageToolsManifest} from '../types/buildx/imagetools'; -import {Image} from '../types/oci/config'; -import {Descriptor, Platform} from '../types/oci/descriptor'; -import {Digest} from '../types/oci/digest'; +import {Manifest as ImageToolsManifest} from '../types/buildx/imagetools.js'; +import {Image} from '../types/oci/config.js'; +import {Descriptor, Platform} from '../types/oci/descriptor.js'; +import {Digest} from '../types/oci/digest.js'; export interface ImageToolsOpts { buildx?: Buildx; diff --git a/src/buildx/install.ts b/src/buildx/install.ts index 2fc61f84..293b152b 100644 --- a/src/buildx/install.ts +++ b/src/buildx/install.ts @@ -22,17 +22,17 @@ import * as tc from '@actions/tool-cache'; import * as semver from 'semver'; import * as util from 'util'; -import {Buildx} from './buildx'; -import {Cache} from '../cache'; -import {Context} from '../context'; -import {Exec} from '../exec'; -import {Docker} from '../docker/docker'; -import {Git} from '../git'; -import {GitHub} from '../github'; -import {Util} from '../util'; - -import {DownloadVersion} from '../types/buildx/buildx'; -import {GitHubRelease} from '../types/github'; +import {Buildx} from './buildx.js'; +import {Cache} from '../cache.js'; +import {Context} from '../context.js'; +import {Exec} from '../exec.js'; +import {Docker} from '../docker/docker.js'; +import {Git} from '../git.js'; +import {GitHub} from '../github.js'; +import {Util} from '../util.js'; + +import {DownloadVersion} from '../types/buildx/buildx.js'; +import {GitHubRelease} from '../types/github.js'; export interface InstallOpts { standalone?: boolean; diff --git a/src/compose/compose.ts b/src/compose/compose.ts index 5548b70f..7b3327d0 100644 --- a/src/compose/compose.ts +++ b/src/compose/compose.ts @@ -16,8 +16,8 @@ import * as core from '@actions/core'; -import {Docker} from '../docker/docker'; -import {Exec} from '../exec'; +import {Docker} from '../docker/docker.js'; +import {Exec} from '../exec.js'; export interface ComposeOpts { standalone?: boolean; diff --git a/src/compose/install.ts b/src/compose/install.ts index 10349821..de0456e8 100644 --- a/src/compose/install.ts +++ b/src/compose/install.ts @@ -22,13 +22,13 @@ import * as tc from '@actions/tool-cache'; import * as semver from 'semver'; import * as util from 'util'; -import {Cache} from '../cache'; -import {Context} from '../context'; -import {Docker} from '../docker/docker'; -import {GitHub} from '../github'; +import {Cache} from '../cache.js'; +import {Context} from '../context.js'; +import {Docker} from '../docker/docker.js'; +import {GitHub} from '../github.js'; -import {DownloadVersion} from '../types/compose/compose'; -import {GitHubRelease} from '../types/github'; +import {DownloadVersion} from '../types/compose/compose.js'; +import {GitHubRelease} from '../types/github.js'; export interface InstallOpts { standalone?: boolean; diff --git a/src/context.ts b/src/context.ts index 502bb3e9..0e6c0409 100644 --- a/src/context.ts +++ b/src/context.ts @@ -20,7 +20,7 @@ import path from 'path'; import * as tmp from 'tmp'; import * as github from '@actions/github'; -import {GitHub} from './github'; +import {GitHub} from './github.js'; export class Context { private static readonly _tmpDir = fs.mkdtempSync(path.join(Context.ensureDirExists(process.env.RUNNER_TEMP || os.tmpdir()), 'docker-actions-toolkit-')); diff --git a/src/cosign/cosign.ts b/src/cosign/cosign.ts index f280caf3..1b83cd05 100644 --- a/src/cosign/cosign.ts +++ b/src/cosign/cosign.ts @@ -17,9 +17,9 @@ import * as core from '@actions/core'; import {BUNDLE_V03_MEDIA_TYPE, SerializedBundle} from '@sigstore/bundle'; -import {Exec} from '../exec'; +import {Exec} from '../exec.js'; import * as semver from 'semver'; -import {MEDIATYPE_EMPTY_JSON_V1} from '../types/oci/mediatype'; +import {MEDIATYPE_EMPTY_JSON_V1} from '../types/oci/mediatype.js'; export interface CosignOpts { binPath?: string; diff --git a/src/cosign/install.ts b/src/cosign/install.ts index 4a512e2e..56a01525 100644 --- a/src/cosign/install.ts +++ b/src/cosign/install.ts @@ -25,17 +25,17 @@ import {toSignedEntity, toTrustMaterial, Verifier} from '@sigstore/verify'; import * as semver from 'semver'; import * as util from 'util'; -import {Buildx} from '../buildx/buildx'; -import {Cache} from '../cache'; -import {Context} from '../context'; -import {Exec} from '../exec'; -import {Git} from '../git'; -import {GitHub} from '../github'; -import {Util} from '../util'; - -import {DownloadVersion} from '../types/cosign/cosign'; -import {GitHubRelease} from '../types/github'; -import {dockerfileContent} from './dockerfile'; +import {Buildx} from '../buildx/buildx.js'; +import {Cache} from '../cache.js'; +import {Context} from '../context.js'; +import {Exec} from '../exec.js'; +import {Git} from '../git.js'; +import {GitHub} from '../github.js'; +import {Util} from '../util.js'; + +import {DownloadVersion} from '../types/cosign/cosign.js'; +import {GitHubRelease} from '../types/github.js'; +import {dockerfileContent} from './dockerfile.js'; export interface DownloadOpts { version: string; diff --git a/src/docker/assets.ts b/src/docker/assets.ts index 89b7c269..abbd721f 100644 --- a/src/docker/assets.ts +++ b/src/docker/assets.ts @@ -15,7 +15,7 @@ */ import fs from 'fs'; -import {Context} from '../context'; +import {Context} from '../context.js'; export const setupDockerWinPs1 = (): string => { return get('docker-setup-win.ps1', setupDockerWinPs1Data); diff --git a/src/docker/docker.ts b/src/docker/docker.ts index 7bb978e7..f7fac241 100644 --- a/src/docker/docker.ts +++ b/src/docker/docker.ts @@ -21,12 +21,12 @@ import * as core from '@actions/core'; import {ExecOptions, ExecOutput} from '@actions/exec'; import * as io from '@actions/io'; -import {Context} from '../context'; -import {Cache} from '../cache'; -import {Exec} from '../exec'; -import {Util} from '../util'; +import {Context} from '../context.js'; +import {Cache} from '../cache.js'; +import {Exec} from '../exec.js'; +import {Util} from '../util.js'; -import {ConfigFile, ContextInfo} from '../types/docker/docker'; +import {ConfigFile, ContextInfo} from '../types/docker/docker.js'; export class Docker { static get configDir(): string { diff --git a/src/docker/install.ts b/src/docker/install.ts index a1996789..5fcdb837 100644 --- a/src/docker/install.ts +++ b/src/docker/install.ts @@ -25,18 +25,18 @@ import * as core from '@actions/core'; import * as io from '@actions/io'; import * as tc from '@actions/tool-cache'; -import {Context} from '../context'; -import {Docker} from './docker'; -import {Exec} from '../exec'; -import {GitHub} from '../github'; -import {Regctl} from '../regclient/regctl'; -import {Undock} from '../undock/undock'; -import {Util} from '../util'; - -import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets'; - -import {GitHubRelease} from '../types/github'; -import {Image} from '../types/oci/config'; +import {Context} from '../context.js'; +import {Docker} from './docker.js'; +import {Exec} from '../exec.js'; +import {GitHub} from '../github.js'; +import {Regctl} from '../regclient/regctl.js'; +import {Undock} from '../undock/undock.js'; +import {Util} from '../util.js'; + +import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets.js'; + +import {GitHubRelease} from '../types/github.js'; +import {Image} from '../types/oci/config.js'; export interface InstallSourceImage { type: 'image'; diff --git a/src/dockerhub.ts b/src/dockerhub.ts index 3bf1d59c..6bf8b437 100644 --- a/src/dockerhub.ts +++ b/src/dockerhub.ts @@ -18,7 +18,7 @@ import * as core from '@actions/core'; import * as httpm from '@actions/http-client'; import {HttpCodes} from '@actions/http-client'; -import {RepositoryRequest, RepositoryResponse, RepositoryTagsRequest, RepositoryTagsResponse, TokenRequest, TokenResponse, UpdateRepoDescriptionRequest} from './types/dockerhub'; +import {RepositoryRequest, RepositoryResponse, RepositoryTagsRequest, RepositoryTagsResponse, TokenRequest, TokenResponse, UpdateRepoDescriptionRequest} from './types/dockerhub.js'; export interface DockerHubOpts { credentials: TokenRequest; diff --git a/src/git.ts b/src/git.ts index c43af4dc..b69f50bd 100644 --- a/src/git.ts +++ b/src/git.ts @@ -15,18 +15,18 @@ */ import * as core from '@actions/core'; +import * as github from '@actions/github'; import {Octokit} from '@octokit/core'; import {restEndpointMethods} from '@octokit/plugin-rest-endpoint-methods'; -import {Exec} from './exec'; -import {GitHub} from './github'; -import {Context} from '@actions/github/lib/context'; +import {Exec} from './exec.js'; +import {GitHub} from './github.js'; -import {Context as GitContext} from './types/git'; +export type GitContext = typeof github.context; export class Git { public static async context(): Promise { - const ctx = new Context(); + const ctx = {...github.context} as GitContext; ctx.ref = await Git.ref(); ctx.sha = await Git.fullCommit(); return ctx; diff --git a/src/github.ts b/src/github.ts index c5a335c1..403f2543 100644 --- a/src/github.ts +++ b/src/github.ts @@ -27,18 +27,15 @@ import {getBackendIdsFromToken} from '@actions/artifact/lib/internal/shared/util import {getExpiration} from '@actions/artifact/lib/internal/upload/retention'; import {InvalidResponseError, NetworkError} from '@actions/artifact'; import * as core from '@actions/core'; -import {SummaryTableCell} from '@actions/core/lib/summary'; import * as github from '@actions/github'; -import {GitHub as Octokit} from '@actions/github/lib/utils'; -import {Context} from '@actions/github/lib/context'; import * as httpm from '@actions/http-client'; import {TransferProgressEvent} from '@azure/core-rest-pipeline'; import {BlobClient, BlobHTTPHeaders} from '@azure/storage-blob'; import {jwtDecode, JwtPayload} from 'jwt-decode'; -import {Util} from './util'; +import {Util} from './util.js'; -import {BuildSummaryOpts, GitHubActionsRuntimeToken, GitHubActionsRuntimeTokenAC, GitHubContentOpts, GitHubRelease, GitHubRepo, UploadArtifactOpts, UploadArtifactResponse} from './types/github'; +import {BuildSummaryOpts, GitHubActionsRuntimeToken, GitHubActionsRuntimeTokenAC, GitHubContentOpts, GitHubRelease, GitHubRepo, SummaryTableCell, UploadArtifactOpts, UploadArtifactResponse} from './types/github.js'; export interface GitHubOpts { token?: string; @@ -46,7 +43,7 @@ export interface GitHubOpts { export class GitHub { private readonly githubToken?: string; - public readonly octokit: InstanceType; + public readonly octokit: ReturnType; constructor(opts?: GitHubOpts) { this.githubToken = opts?.token || process.env.GITHUB_TOKEN; @@ -87,7 +84,7 @@ export class GitHub { return >JSON.parse(dt); } - static get context(): Context { + static get context(): typeof github.context { return github.context; } diff --git a/src/index.ts b/src/index.ts index 9c23eacb..e58f646c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,7 +16,7 @@ import * as core from '@actions/core'; -import {Cache} from './cache'; +import {Cache} from './cache.js'; const isPost = !!process.env['STATE_isPost']; if (!isPost) { diff --git a/src/oci/oci.ts b/src/oci/oci.ts index da888b48..c1dff3a2 100644 --- a/src/oci/oci.ts +++ b/src/oci/oci.ts @@ -20,13 +20,13 @@ import * as path from 'path'; import {Readable} from 'stream'; import * as tar from 'tar-stream'; -import {Archive, LoadArchiveOpts} from '../types/oci/oci'; -import {Index} from '../types/oci'; -import {Platform} from '../types/oci/descriptor'; -import {Manifest} from '../types/oci/manifest'; -import {Image} from '../types/oci/config'; -import {IMAGE_BLOBS_DIR_V1, IMAGE_INDEX_FILE_V1, IMAGE_LAYOUT_FILE_V1, ImageLayout} from '../types/oci/layout'; -import {MEDIATYPE_IMAGE_INDEX_V1, MEDIATYPE_IMAGE_MANIFEST_V1} from '../types/oci/mediatype'; +import {Archive, LoadArchiveOpts} from '../types/oci/oci.js'; +import {Index} from '../types/oci/index.js'; +import {Platform} from '../types/oci/descriptor.js'; +import {Manifest} from '../types/oci/manifest.js'; +import {Image} from '../types/oci/config.js'; +import {IMAGE_BLOBS_DIR_V1, IMAGE_INDEX_FILE_V1, IMAGE_LAYOUT_FILE_V1, ImageLayout} from '../types/oci/layout.js'; +import {MEDIATYPE_IMAGE_INDEX_V1, MEDIATYPE_IMAGE_MANIFEST_V1} from '../types/oci/mediatype.js'; export class OCI { public static defaultPlatform(): Platform { diff --git a/src/regclient/install.ts b/src/regclient/install.ts index 5c14aaf3..9edb407b 100644 --- a/src/regclient/install.ts +++ b/src/regclient/install.ts @@ -22,12 +22,12 @@ import * as tc from '@actions/tool-cache'; import * as semver from 'semver'; import * as util from 'util'; -import {Cache} from '../cache'; -import {Context} from '../context'; -import {GitHub} from '../github'; +import {Cache} from '../cache.js'; +import {Context} from '../context.js'; +import {GitHub} from '../github.js'; -import {GitHubRelease} from '../types/github'; -import {DownloadVersion} from '../types/regclient/regclient'; +import {GitHubRelease} from '../types/github.js'; +import {DownloadVersion} from '../types/regclient/regclient.js'; export interface InstallOpts { githubToken?: string; diff --git a/src/regclient/regctl.ts b/src/regclient/regctl.ts index b784d9da..868cab8f 100644 --- a/src/regclient/regctl.ts +++ b/src/regclient/regctl.ts @@ -17,9 +17,9 @@ import * as core from '@actions/core'; import * as semver from 'semver'; -import {Exec} from '../exec'; +import {Exec} from '../exec.js'; -import {Manifest} from '../types/oci/manifest'; +import {Manifest} from '../types/oci/manifest.js'; export interface RegctlOpts { binPath?: string; diff --git a/src/sigstore/sigstore.ts b/src/sigstore/sigstore.ts index 8b8ad0e3..6fa8966a 100644 --- a/src/sigstore/sigstore.ts +++ b/src/sigstore/sigstore.ts @@ -22,13 +22,13 @@ import * as core from '@actions/core'; import {bundleFromJSON, bundleToJSON} from '@sigstore/bundle'; import {Artifact, Bundle, CIContextProvider, DSSEBundleBuilder, FulcioSigner, RekorWitness, TSAWitness, Witness} from '@sigstore/sign'; -import {Context} from '../context'; -import {Cosign} from '../cosign/cosign'; -import {Exec} from '../exec'; -import {GitHub} from '../github'; -import {ImageTools} from '../buildx/imagetools'; +import {Context} from '../context.js'; +import {Cosign} from '../cosign/cosign.js'; +import {Exec} from '../exec.js'; +import {GitHub} from '../github.js'; +import {ImageTools} from '../buildx/imagetools.js'; -import {MEDIATYPE_PAYLOAD as INTOTO_MEDIATYPE_PAYLOAD, Subject} from '../types/intoto/intoto'; +import {MEDIATYPE_PAYLOAD as INTOTO_MEDIATYPE_PAYLOAD, Subject} from '../types/intoto/intoto.js'; import { Endpoints, FULCIO_URL, @@ -44,7 +44,7 @@ import { VerifySignedArtifactsResult, VerifySignedManifestsOpts, VerifySignedManifestsResult -} from '../types/sigstore/sigstore'; +} from '../types/sigstore/sigstore.js'; export interface SigstoreOpts { cosign?: Cosign; diff --git a/src/toolkit.ts b/src/toolkit.ts index 1994276d..1563ce0b 100644 --- a/src/toolkit.ts +++ b/src/toolkit.ts @@ -14,22 +14,22 @@ * limitations under the License. */ -import {GitHub} from './github'; -import {Buildx} from './buildx/buildx'; -import {Build as BuildxBuild} from './buildx/build'; -import {Bake as BuildxBake} from './buildx/bake'; -import {Install as BuildxInstall} from './buildx/install'; -import {Builder} from './buildx/builder'; -import {BuildKit} from './buildkit/buildkit'; -import {Compose} from './compose/compose'; -import {Install as ComposeInstall} from './compose/install'; -import {Cosign} from './cosign/cosign'; -import {Install as CosignInstall} from './cosign/install'; -import {Regctl} from './regclient/regctl'; -import {Install as RegctlInstall} from './regclient/install'; -import {Undock} from './undock/undock'; -import {Install as UndockInstall} from './undock/install'; -import {Sigstore} from './sigstore/sigstore'; +import {GitHub} from './github.js'; +import {Buildx} from './buildx/buildx.js'; +import {Build as BuildxBuild} from './buildx/build.js'; +import {Bake as BuildxBake} from './buildx/bake.js'; +import {Install as BuildxInstall} from './buildx/install.js'; +import {Builder} from './buildx/builder.js'; +import {BuildKit} from './buildkit/buildkit.js'; +import {Compose} from './compose/compose.js'; +import {Install as ComposeInstall} from './compose/install.js'; +import {Cosign} from './cosign/cosign.js'; +import {Install as CosignInstall} from './cosign/install.js'; +import {Regctl} from './regclient/regctl.js'; +import {Install as RegctlInstall} from './regclient/install.js'; +import {Undock} from './undock/undock.js'; +import {Install as UndockInstall} from './undock/install.js'; +import {Sigstore} from './sigstore/sigstore.js'; export interface ToolkitOpts { /** diff --git a/src/types/buildkit/client.ts b/src/types/buildkit/client.ts index 0a913426..a14f4457 100644 --- a/src/types/buildkit/client.ts +++ b/src/types/buildkit/client.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import {Digest} from '../oci/digest'; -import {ProgressGroup, Range, SourceInfo} from './ops'; +import {Digest} from '../oci/digest.js'; +import {ProgressGroup, Range, SourceInfo} from './ops.js'; // https://github.com/moby/buildkit/blob/v0.14.0/client/graph.go#L10-L19 export interface Vertex { diff --git a/src/types/buildkit/control.ts b/src/types/buildkit/control.ts index 3d3f157a..0d7f9756 100644 --- a/src/types/buildkit/control.ts +++ b/src/types/buildkit/control.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import {Descriptor} from '../oci/descriptor'; -import {Digest} from '../oci/digest'; -import {ProgressGroup, Range, SourceInfo} from './ops'; -import {RpcStatus} from './rpc'; +import {Descriptor} from '../oci/descriptor.js'; +import {Digest} from '../oci/digest.js'; +import {ProgressGroup, Range, SourceInfo} from './ops.js'; +import {RpcStatus} from './rpc.js'; // https://github.com/moby/buildkit/blob/v0.14.0/api/services/control/control.pb.go#L1504-L1525 export interface BuildHistoryRecord { diff --git a/src/types/buildx/buildx.ts b/src/types/buildx/buildx.ts index 10ede92f..0047a190 100644 --- a/src/types/buildx/buildx.ts +++ b/src/types/buildx/buildx.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitHubContentOpts} from '../github'; +import {GitHubContentOpts} from '../github.js'; export interface Cert { cacert?: string; diff --git a/src/types/buildx/imagetools.ts b/src/types/buildx/imagetools.ts index 4594c7fb..ce2007ff 100644 --- a/src/types/buildx/imagetools.ts +++ b/src/types/buildx/imagetools.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import {Versioned} from '../oci/versioned'; -import {Descriptor} from '../oci/descriptor'; -import {Digest} from '../oci/digest'; +import {Versioned} from '../oci/versioned.js'; +import {Descriptor} from '../oci/descriptor.js'; +import {Digest} from '../oci/digest.js'; // https://github.com/docker/buildx/blob/62857022a08552bee5cad0c3044a9a3b185f0b32/util/imagetools/printers.go#L109-L123 export interface Manifest extends Versioned { diff --git a/src/types/compose/compose.ts b/src/types/compose/compose.ts index 4e69ea92..8bb536d4 100644 --- a/src/types/compose/compose.ts +++ b/src/types/compose/compose.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitHubContentOpts} from '../github'; +import {GitHubContentOpts} from '../github.js'; export interface DownloadVersion { key: string; diff --git a/src/types/cosign/cosign.ts b/src/types/cosign/cosign.ts index 4aca14b8..cda1036b 100644 --- a/src/types/cosign/cosign.ts +++ b/src/types/cosign/cosign.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitHubContentOpts} from '../github'; +import {GitHubContentOpts} from '../github.js'; export interface DownloadVersion { version: string; diff --git a/src/types/github.ts b/src/types/github.ts index 8fc4bbea..af184ef6 100644 --- a/src/types/github.ts +++ b/src/types/github.ts @@ -14,12 +14,16 @@ * limitations under the License. */ +import * as core from '@actions/core'; import {AnnotationProperties} from '@actions/core'; import {components as OctoOpenApiTypes} from '@octokit/openapi-types'; import {JwtPayload} from 'jwt-decode'; -import {BakeDefinition} from './buildx/bake'; -import {ExportResponse} from './buildx/history'; +import {BakeDefinition} from './buildx/bake.js'; +import {ExportResponse} from './buildx/history.js'; + +export type SummaryTableRow = Parameters[0][number]; +export type SummaryTableCell = Exclude; export interface GitHubRelease { id: number; diff --git a/src/types/oci/config.ts b/src/types/oci/config.ts index b9f0d1ca..eec05028 100644 --- a/src/types/oci/config.ts +++ b/src/types/oci/config.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import {Digest} from './digest'; -import {Platform} from './descriptor'; +import {Digest} from './digest.js'; +import {Platform} from './descriptor.js'; export interface ImageConfig { User?: string; diff --git a/src/types/oci/descriptor.ts b/src/types/oci/descriptor.ts index e2de5f85..65b67965 100644 --- a/src/types/oci/descriptor.ts +++ b/src/types/oci/descriptor.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import {Digest} from './digest'; +import {Digest} from './digest.js'; -import {MEDIATYPE_EMPTY_JSON_V1} from './mediatype'; +import {MEDIATYPE_EMPTY_JSON_V1} from './mediatype.js'; export interface Descriptor { mediaType: string; diff --git a/src/types/oci/index.ts b/src/types/oci/index.ts index 480aab5f..2dcf0545 100644 --- a/src/types/oci/index.ts +++ b/src/types/oci/index.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import {Versioned} from './versioned'; -import {Descriptor} from './descriptor'; +import {Versioned} from './versioned.js'; +import {Descriptor} from './descriptor.js'; export interface Index extends Versioned { mediaType?: string; diff --git a/src/types/oci/manifest.ts b/src/types/oci/manifest.ts index 14e28a69..d7741622 100644 --- a/src/types/oci/manifest.ts +++ b/src/types/oci/manifest.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import {Descriptor} from './descriptor'; -import {Versioned} from './versioned'; +import {Descriptor} from './descriptor.js'; +import {Versioned} from './versioned.js'; export interface Manifest extends Versioned { mediaType?: string; diff --git a/src/types/oci/oci.ts b/src/types/oci/oci.ts index 0b36a71b..e0483e29 100644 --- a/src/types/oci/oci.ts +++ b/src/types/oci/oci.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import {Index} from './index'; -import {ImageLayout} from './layout'; -import {Manifest} from './manifest'; -import {Image} from './config'; +import {Index} from './index.js'; +import {ImageLayout} from './layout.js'; +import {Manifest} from './manifest.js'; +import {Image} from './config.js'; export interface LoadArchiveOpts { file: string; diff --git a/src/types/regclient/regclient.ts b/src/types/regclient/regclient.ts index 4aca14b8..cda1036b 100644 --- a/src/types/regclient/regclient.ts +++ b/src/types/regclient/regclient.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitHubContentOpts} from '../github'; +import {GitHubContentOpts} from '../github.js'; export interface DownloadVersion { version: string; diff --git a/src/types/sigstore/sigstore.ts b/src/types/sigstore/sigstore.ts index b08e1ffe..d6a2d70c 100644 --- a/src/types/sigstore/sigstore.ts +++ b/src/types/sigstore/sigstore.ts @@ -16,8 +16,8 @@ import type {SerializedBundle} from '@sigstore/bundle'; -import {Subject} from '../intoto/intoto'; -import {Platform} from '../oci/descriptor'; +import {Subject} from '../intoto/intoto.js'; +import {Platform} from '../oci/descriptor.js'; export const FULCIO_URL = 'https://fulcio.sigstore.dev'; export const REKOR_URL = 'https://rekor.sigstore.dev'; diff --git a/src/types/undock/undock.ts b/src/types/undock/undock.ts index 21374ca9..745ca280 100644 --- a/src/types/undock/undock.ts +++ b/src/types/undock/undock.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {GitHubContentOpts} from '../github'; +import {GitHubContentOpts} from '../github.js'; export interface DownloadVersion { version: string; diff --git a/src/undock/install.ts b/src/undock/install.ts index 2b190036..887a254b 100644 --- a/src/undock/install.ts +++ b/src/undock/install.ts @@ -22,12 +22,12 @@ import * as tc from '@actions/tool-cache'; import * as semver from 'semver'; import * as util from 'util'; -import {Cache} from '../cache'; -import {Context} from '../context'; -import {GitHub} from '../github'; +import {Cache} from '../cache.js'; +import {Context} from '../context.js'; +import {GitHub} from '../github.js'; -import {GitHubRelease} from '../types/github'; -import {DownloadVersion} from '../types/undock/undock'; +import {GitHubRelease} from '../types/github.js'; +import {DownloadVersion} from '../types/undock/undock.js'; export interface InstallOpts { githubToken?: string; diff --git a/src/undock/undock.ts b/src/undock/undock.ts index f75b320b..a93017b3 100644 --- a/src/undock/undock.ts +++ b/src/undock/undock.ts @@ -17,7 +17,7 @@ import * as core from '@actions/core'; import * as semver from 'semver'; -import {Exec} from '../exec'; +import {Exec} from '../exec.js'; export interface UndockOpts { binPath?: string; diff --git a/tsconfig.json b/tsconfig.json index 9dd4a983..88dabea4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { + "module": "es2020", + "moduleResolution": "bundler", "esModuleInterop": true, - "target": "es6", - "module": "node16", "isolatedModules": true, "strict": true, "declaration": true, @@ -14,6 +14,7 @@ "noImplicitAny": false, "resolveJsonModule": true, "useUnknownInCatchVariables": false, + "skipLibCheck": true, }, "exclude": [ "./__mocks__/**/*", diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 00000000..d78b1e5f --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": ".", + "noEmit": true + }, + "include": [ + "src/**/*.ts", + "__tests__/**/*.ts" + ], + "exclude": [ + "lib", + "node_modules" + ] +}