From faa5b5bf222ec4e9baf6c4e2b98c844748c8d7f4 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Wed, 28 Jan 2026 10:34:04 +0100 Subject: [PATCH] switch to ESM and update config/test wiring Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- ...sProcessor.js => testResultsProcessor.cjs} | 0 eslint.config.js => eslint.config.cjs | 4 +-- jest.config.js => jest.config.cjs | 13 ++++++-- jest.config.itg.js => jest.config.itg.cjs | 13 ++++++-- package.json | 7 ++-- src/buildkit/buildkit.ts | 10 +++--- src/buildkit/config.ts | 2 +- src/buildkit/git.ts | 2 +- src/buildx/bake.ts | 14 ++++---- src/buildx/build.ts | 14 ++++---- src/buildx/builder.ts | 6 ++-- src/buildx/buildx.ts | 18 +++++------ src/buildx/history.ts | 14 ++++---- src/buildx/imagetools.ts | 12 +++---- src/buildx/install.ts | 20 ++++++------ src/compose/compose.ts | 4 +-- src/compose/install.ts | 12 +++---- src/context.ts | 2 +- src/cosign/cosign.ts | 4 +-- src/cosign/install.ts | 20 ++++++------ src/docker/assets.ts | 2 +- src/docker/docker.ts | 10 +++--- src/docker/install.ts | 20 ++++++------ src/dockerhub.ts | 2 +- src/git.ts | 6 ++-- src/github.ts | 4 +-- src/index.ts | 2 +- src/oci/oci.ts | 14 ++++---- src/regclient/install.ts | 10 +++--- src/regclient/regctl.ts | 4 +-- src/sigstore/sigstore.ts | 14 ++++---- src/toolkit.ts | 32 +++++++++---------- src/types/buildkit/client.ts | 4 +-- src/types/buildkit/control.ts | 8 ++--- src/types/buildx/buildx.ts | 2 +- src/types/buildx/imagetools.ts | 6 ++-- src/types/compose/compose.ts | 2 +- src/types/cosign/cosign.ts | 2 +- src/types/github.ts | 4 +-- src/types/oci/config.ts | 4 +-- src/types/oci/descriptor.ts | 4 +-- src/types/oci/index.ts | 4 +-- src/types/oci/manifest.ts | 4 +-- src/types/oci/oci.ts | 8 ++--- src/types/regclient/regclient.ts | 2 +- src/types/sigstore/sigstore.ts | 4 +-- src/types/undock/undock.ts | 2 +- src/undock/install.ts | 10 +++--- src/undock/undock.ts | 2 +- tsconfig.json | 5 +-- 50 files changed, 202 insertions(+), 186 deletions(-) rename __tests__/{testResultsProcessor.js => testResultsProcessor.cjs} (100%) rename eslint.config.js => eslint.config.cjs (93%) rename jest.config.js => jest.config.cjs (90%) rename jest.config.itg.js => jest.config.itg.cjs (85%) 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/eslint.config.js b/eslint.config.cjs similarity index 93% rename from eslint.config.js rename to eslint.config.cjs index dfaf93e..fe8611b 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 90% rename from jest.config.js rename to jest.config.cjs index 2a4a458..019056b 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 + } + ] }, moduleNameMapper: { - '^csv-parse/sync': '/node_modules/csv-parse/dist/cjs/sync.cjs' + '^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 85% rename from jest.config.itg.js rename to jest.config.itg.cjs index a05e702..18c8ab3 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 + } + ] }, moduleNameMapper: { - '^csv-parse/sync': '/node_modules/csv-parse/dist/cjs/sync.cjs' + '^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 107ee74..bfd231f 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 ee90ab4..dbf80ae 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 9563b4c..bd9fa7b 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 2415b59..cb9d68d 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 db0dfd0..7730f9e 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 cd385e8..5cf3e91 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 {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'; -import {VertexWarning} from '../types/buildkit/client'; -import {ProvenancePredicate} from '../types/intoto/slsa_provenance/v0.2/provenance'; +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 2e54e8e..8f902a1 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 ef5f41c..2b26a1b 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 {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'; -import {GitURL} from '../types/buildkit/git'; -import {Cert, LocalRefsOpts, LocalRefsResponse, LocalState} from '../types/buildx/buildx'; -import {GitHubAnnotation} from '../types/github'; +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 02abde6..c8067ff 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 {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'; +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 dfaac46..ca35acd 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 2fc61f8..293b152 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 {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'; -import {GitHubRelease} from '../types/github'; +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 5548b70..7b3327d 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 1034982..de0456e 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 502bb3e..0e6c040 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 f280caf..1b83cd0 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 4a512e2..56a0152 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 {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'; -import {GitHubRelease} from '../types/github'; -import {dockerfileContent} from './dockerfile'; +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 89b7c26..abbd721 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 7bb978e..f7fac24 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 a199678..5fcdb83 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 {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'; +import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets.js'; -import {GitHubRelease} from '../types/github'; -import {Image} from '../types/oci/config'; +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 3bf1d59..6bf8b43 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 c43af4d..879727f 100644 --- a/src/git.ts +++ b/src/git.ts @@ -18,11 +18,11 @@ import * as core from '@actions/core'; import {Octokit} from '@octokit/core'; import {restEndpointMethods} from '@octokit/plugin-rest-endpoint-methods'; -import {Exec} from './exec'; -import {GitHub} from './github'; +import {Exec} from './exec.js'; +import {GitHub} from './github.js'; import {Context} from '@actions/github/lib/context'; -import {Context as GitContext} from './types/git'; +import {Context as GitContext} from './types/git.js'; export class Git { public static async context(): Promise { diff --git a/src/github.ts b/src/github.ts index c5a335c..3d31fda 100644 --- a/src/github.ts +++ b/src/github.ts @@ -36,9 +36,9 @@ 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, UploadArtifactOpts, UploadArtifactResponse} from './types/github.js'; export interface GitHubOpts { token?: string; diff --git a/src/index.ts b/src/index.ts index 9c23eac..e58f646 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 da888b4..c1dff3a 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 5c14aaf..9edb407 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 b784d9d..868cab8 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 8b8ad0e..6fa8966 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 1994276..1563ce0 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 0a91342..a14f445 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 3d3f157..0d7f975 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 10ede92..0047a19 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 4594c7f..ce2007f 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 4e69ea9..8bb536d 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 4aca14b..cda1036 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 8fc4bbe..33b4fcf 100644 --- a/src/types/github.ts +++ b/src/types/github.ts @@ -18,8 +18,8 @@ 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 interface GitHubRelease { id: number; diff --git a/src/types/oci/config.ts b/src/types/oci/config.ts index b9f0d1c..eec0502 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 e2de5f8..65b6796 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 480aab5..2dcf054 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 14e28a6..d774162 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 0b36a71..e0483e2 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 4aca14b..cda1036 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 b08e1ff..d6a2d70 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 21374ca..745ca28 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 2b19003..887a254 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 f75b320..a93017b 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 9dd4a98..88dabea 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__/**/*",