From 58589c0c3808c3f4811e1cdb45f8e5b88b2ec8d0 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 16 Feb 2026 15:52:44 +0100 Subject: [PATCH 1/3] fix: add file-extensions to the package-internal imports to generate valid esm --- src/axios/cached-instance.ts | 2 +- src/github-adapter.ts | 18 +++++++++--------- src/github-api/get-entry-content.ts | 8 ++++---- src/github-api/get-file-paths.ts | 8 ++++---- src/index.ts | 4 ++-- src/util/entries-to-actions-converter.ts | 6 +++--- src/util/entry-factory.ts | 6 +++--- src/util/path-factory.ts | 4 ++-- tsconfig.build.cjs.json | 5 +++-- tsconfig.json | 12 +++++------- 10 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/axios/cached-instance.ts b/src/axios/cached-instance.ts index b72e2ca..b19afd6 100644 --- a/src/axios/cached-instance.ts +++ b/src/axios/cached-instance.ts @@ -4,7 +4,7 @@ import { setupCache, } from 'axios-cache-interceptor' import axios from 'axios' -import { cacheKeyGenerator } from './cache-key-generator' +import { cacheKeyGenerator } from './cache-key-generator.ts' export const QUERY_CACHE_SECONDS = 10 * 60 diff --git a/src/github-adapter.ts b/src/github-adapter.ts index 5496054..133716e 100644 --- a/src/github-adapter.ts +++ b/src/github-adapter.ts @@ -6,19 +6,19 @@ import { ErrorCode, GitAdapterError, } from '@commitspark/git-adapter' -import { GitHubRepositoryOptions } from './index' +import { GitHubRepositoryOptions } from './index.ts' import { createSingleBlobContentQuery, createCommitMutation, createLatestCommitQuery, -} from './github-api/graphql-query-factory' -import { convertEntriesToActions } from './util/entries-to-actions-converter' -import { getPathEntryFolder, getPathSchema } from './util/path-factory' -import { createEntriesFromFileContent } from './util/entry-factory' -import { handleGraphQLErrors, handleHttpErrors } from './errors' -import { getEntryContent } from './github-api/get-entry-content' -import { getFilePaths } from './github-api/get-file-paths' -import { GITHUB_GRAPHQL_API_URL } from './types' +} from './github-api/graphql-query-factory.ts' +import { convertEntriesToActions } from './util/entries-to-actions-converter.ts' +import { getPathEntryFolder, getPathSchema } from './util/path-factory.ts' +import { createEntriesFromFileContent } from './util/entry-factory.ts' +import { handleGraphQLErrors, handleHttpErrors } from './errors.ts' +import { getEntryContent } from './github-api/get-entry-content.ts' +import { getFilePaths } from './github-api/get-file-paths.ts' +import { GITHUB_GRAPHQL_API_URL } from './types.ts' export const getEntries = async ( gitRepositoryOptions: GitHubRepositoryOptions, diff --git a/src/github-api/get-entry-content.ts b/src/github-api/get-entry-content.ts index ad084b1..158a3ea 100644 --- a/src/github-api/get-entry-content.ts +++ b/src/github-api/get-entry-content.ts @@ -1,8 +1,8 @@ import { AxiosCacheInstance, CacheAxiosResponse } from 'axios-cache-interceptor' -import { GitHubRepositoryOptions } from '../index' -import { createBlobsContentByFilePathsQuery } from './graphql-query-factory' -import { GITHUB_GRAPHQL_API_URL, QUERY_BATCH_SIZE } from '../types' -import { handleGraphQLErrors, handleHttpErrors } from '../errors' +import { GitHubRepositoryOptions } from '../index.ts' +import { createBlobsContentByFilePathsQuery } from './graphql-query-factory.ts' +import { GITHUB_GRAPHQL_API_URL, QUERY_BATCH_SIZE } from '../types.ts' +import { handleGraphQLErrors, handleHttpErrors } from '../errors.ts' export const getEntryContent = async ( gitRepositoryOptions: GitHubRepositoryOptions, diff --git a/src/github-api/get-file-paths.ts b/src/github-api/get-file-paths.ts index f17e507..c65a5f1 100644 --- a/src/github-api/get-file-paths.ts +++ b/src/github-api/get-file-paths.ts @@ -1,9 +1,9 @@ -import { GitHubRepositoryOptions } from '../index' +import { GitHubRepositoryOptions } from '../index.ts' import { AxiosCacheInstance } from 'axios-cache-interceptor' import { ErrorCode, GitAdapterError } from '@commitspark/git-adapter' -import { getPathEntryFolder } from '../util/path-factory' -import { handleHttpErrors } from '../errors' -import { GITHUB_REST_API_URL } from '../types' +import { getPathEntryFolder } from '../util/path-factory.ts' +import { handleHttpErrors } from '../errors.ts' +import { GITHUB_REST_API_URL } from '../types.ts' export const getFilePaths = async ( gitRepositoryOptions: GitHubRepositoryOptions, diff --git a/src/index.ts b/src/index.ts index 12d5f7e..7651312 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,11 @@ import { GitAdapter, CommitDraft } from '@commitspark/git-adapter' -import { createAxiosCachedInstance } from './axios/cached-instance' +import { createAxiosCachedInstance } from './axios/cached-instance.ts' import { createCommit, getEntries, getLatestCommitHash, getSchema, -} from './github-adapter' +} from './github-adapter.ts' export interface GitHubRepositoryOptions { repositoryOwner: string diff --git a/src/util/entries-to-actions-converter.ts b/src/util/entries-to-actions-converter.ts index 8029088..220e440 100644 --- a/src/util/entries-to-actions-converter.ts +++ b/src/util/entries-to-actions-converter.ts @@ -1,8 +1,8 @@ import { EntryDraft } from '@commitspark/git-adapter' import { stringify } from 'yaml' -import { AdditionModel } from '../model/addition.model' -import { DeletionModel } from '../model/deletion.model' -import { ENTRY_EXTENSION } from '../types' +import { AdditionModel } from '../model/addition.model.ts' +import { DeletionModel } from '../model/deletion.model.ts' +import { ENTRY_EXTENSION } from '../types.ts' export function convertEntriesToActions( entryDrafts: EntryDraft[], diff --git a/src/util/entry-factory.ts b/src/util/entry-factory.ts index 508b5b8..b8ca30e 100644 --- a/src/util/entry-factory.ts +++ b/src/util/entry-factory.ts @@ -1,8 +1,8 @@ import { parse } from 'yaml' import { Entry } from '@commitspark/git-adapter' -import { ENTRY_EXTENSION } from '../types' -import { getPathEntryFolder } from './path-factory' -import { GitHubRepositoryOptions } from '../index' +import { ENTRY_EXTENSION } from '../types.ts' +import { getPathEntryFolder } from './path-factory.ts' +import { GitHubRepositoryOptions } from '../index.ts' export function createEntriesFromFileContent( gitRepositoryOptions: GitHubRepositoryOptions, diff --git a/src/util/path-factory.ts b/src/util/path-factory.ts index ae10001..b1554ad 100644 --- a/src/util/path-factory.ts +++ b/src/util/path-factory.ts @@ -1,5 +1,5 @@ -import { GitHubRepositoryOptions } from '../index' -import { PATH_ENTRY_FOLDER, PATH_SCHEMA_FILE } from '../types' +import { GitHubRepositoryOptions } from '../index.ts' +import { PATH_ENTRY_FOLDER, PATH_SCHEMA_FILE } from '../types.ts' export function getPathSchema(gitRepositoryOptions: GitHubRepositoryOptions) { return gitRepositoryOptions.pathSchemaFile ?? PATH_SCHEMA_FILE diff --git a/tsconfig.build.cjs.json b/tsconfig.build.cjs.json index f51aab3..9c7f381 100644 --- a/tsconfig.build.cjs.json +++ b/tsconfig.build.cjs.json @@ -2,9 +2,10 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "./tsconfig.build.json", "compilerOptions": { - "module": "commonjs", + "module": "CommonJS", + "moduleResolution": "Node", "target": "es6", "outDir": "./dist/cjs", - "declarationDir": "./dist/types", + "declarationDir": "./dist/types" } } diff --git a/tsconfig.json b/tsconfig.json index 554aa88..a1f6dcc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,12 @@ { - "$schema": "https://json.schemastore.org/tsconfig", + "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { - "module": "ES2015", + "module": "ES2022", "target": "ES2022", - "moduleResolution": "node", + "moduleResolution": "Bundler", "esModuleInterop": true, "resolveJsonModule": true, + "rewriteRelativeImportExtensions": true, "composite": true, "strict": true, @@ -16,8 +17,5 @@ "rootDir": "./src", "outDir": "./dist" }, - "include": [ - "./src/**/*.ts", - "./tests/**/*.ts" - ] + "include": ["./src/**/*.ts", "./tests/**/*.ts"] } From 74fd04eb20bba4d5a0cb86a2ca175e24373cf293 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 16 Feb 2026 15:53:50 +0100 Subject: [PATCH 2/3] fix: add a pkg.json with type:module to make sure, files are interpreted as esm --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7220c37..23bea0d 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "scripts": { "build": "npm run build:cjs && npm run build:esm && npm run build:types", "build:cjs": "tsc --project tsconfig.build.cjs.json", - "build:esm": "tsc --project tsconfig.build.esm.json", + "build:esm": "tsc --project tsconfig.build.esm.json && echo '{\"type\":\"module\"}' > dist/esm/package.json", "build:types": "tsc --project tsconfig.build.types.json", "lint": "eslint \"{src,tests}/**/*.ts\"", "test": "jest", From 9e5f139b0193cd58d5d16cb92a04cf07e0923735 Mon Sep 17 00:00:00 2001 From: Florian Bacher Date: Mon, 16 Feb 2026 15:54:37 +0100 Subject: [PATCH 3/3] fix: correct extension for jest-setup as well --- jest.config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jest.config.ts b/jest.config.ts index 9fd4f33..36477a7 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -9,6 +9,10 @@ const jestConfig: Config = { transform: { '^.+\\.ts$': 'ts-jest', }, + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.ts$': '$1', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, } export default jestConfig