diff --git a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts index 85702bb1d061bb2170cd0af494ca21ea768857ea..91a39e8de3eca27817a941cd61a0d91620551716 100644 --- a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts +++ b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts @@ -261,6 +261,7 @@ function isReviewerName(value: string): boolean { return name.length > 0 && !name.startsWith("-"); } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const azure = yield* AzureDevOpsCli.AzureDevOpsCli; diff --git a/apps/server/src/pullRequest/BitbucketPullRequestApi.ts b/apps/server/src/pullRequest/BitbucketPullRequestApi.ts index 9b8db662f7e0dd30df693aa1907f30172127c511..632f0d9a550fad4994552ce4820dfa899a247f9b 100644 --- a/apps/server/src/pullRequest/BitbucketPullRequestApi.ts +++ b/apps/server/src/pullRequest/BitbucketPullRequestApi.ts @@ -378,6 +378,7 @@ function bitbucketReviewPosition( } } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const bitbucket = yield* BitbucketApi.BitbucketApi; diff --git a/apps/server/src/pullRequest/GitHubPullRequestCli.ts b/apps/server/src/pullRequest/GitHubPullRequestCli.ts index 22989a94f04a0f0fe0418a23a5500484bdd0eb66..6152df75fb73a1a1d28a8323948fcbef1d3683a9 100644 --- a/apps/server/src/pullRequest/GitHubPullRequestCli.ts +++ b/apps/server/src/pullRequest/GitHubPullRequestCli.ts @@ -714,7 +714,7 @@ export class GitHubPullRequestCli extends Context.Service< * The host is not read off the identity: it travels alongside it, because the identity a * project records is the path below its host and never names the host itself. */ -export function parseRepositorySelector(value: string): { +function parseRepositorySelector(value: string): { readonly owner: string; readonly name: string; } { @@ -980,6 +980,7 @@ function actionArgs( } } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const github = yield* GitHubCli.GitHubCli; const graphQlBudget = yield* GitHubGraphQlBudget.GitHubGraphQlBudget; diff --git a/apps/server/src/pullRequest/GitLabPullRequestCli.ts b/apps/server/src/pullRequest/GitLabPullRequestCli.ts index a1510c4f0a3de71b5881d451790d1fb50e51eecd..60bf2c55742e8e71c2411adb4fa2d13b313695ed 100644 --- a/apps/server/src/pullRequest/GitLabPullRequestCli.ts +++ b/apps/server/src/pullRequest/GitLabPullRequestCli.ts @@ -511,6 +511,7 @@ function actionArgs( } } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const gitlab = yield* GitLabCli.GitLabCli; diff --git a/apps/server/src/pullRequest/PullRequestProviderRegistry.ts b/apps/server/src/pullRequest/PullRequestProviderRegistry.ts index d2caf3ff35bd692578863fd413ad760003a8a79e..f5b4251f7d9afc467ba9895f4913048eedf5ed0f 100644 --- a/apps/server/src/pullRequest/PullRequestProviderRegistry.ts +++ b/apps/server/src/pullRequest/PullRequestProviderRegistry.ts @@ -41,6 +41,8 @@ export function fromProviders( /** * The hosts this build can read change requests from. A host with no entry here still shows up * in the provider list as unimplemented, so its projects are explained rather than missing. + * + * @public Service construction is part of the canonical Effect module API. */ export const make = Effect.map( Effect.all([ diff --git a/apps/server/src/sourceControl/AzureDevOpsCli.ts b/apps/server/src/sourceControl/AzureDevOpsCli.ts index b0018c1fc4c17908a929e9a255708bfa5844d7cf..f5e436ef6c564386fbabb86ae1d4ac4a2e872207 100644 --- a/apps/server/src/sourceControl/AzureDevOpsCli.ts +++ b/apps/server/src/sourceControl/AzureDevOpsCli.ts @@ -203,8 +203,6 @@ export const AzureDevOpsCliError = Schema.Union([ ]); export type AzureDevOpsCliError = typeof AzureDevOpsCliError.Type; -export const isAzureDevOpsCliError = Schema.is(AzureDevOpsCliError); - export interface AzureDevOpsRepositoryCloneUrls { readonly nameWithOwner: string; readonly url: string; @@ -352,6 +350,7 @@ function decodeAzureDevOpsJson( ); } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const process = yield* VcsProcess.VcsProcess; diff --git a/apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.ts b/apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.ts index 20a74cc8a5d74ac179081f6bca6ec12214301b36..c2f6a5efc65ac7ef7977f5bea3b5fddd61195071 100644 --- a/apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.ts +++ b/apps/server/src/sourceControl/AzureDevOpsSourceControlProvider.ts @@ -1,5 +1,4 @@ import * as Effect from "effect/Effect"; -import * as Layer from "effect/Layer"; import { SourceControlProviderError, type ChangeRequest } from "@t3tools/contracts"; import * as AzureDevOpsCli from "./AzureDevOpsCli.ts"; @@ -235,5 +234,3 @@ export const make = Effect.gen(function* () { ), }); }); - -export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make); diff --git a/apps/server/src/sourceControl/BitbucketApi.ts b/apps/server/src/sourceControl/BitbucketApi.ts index b30e934f8ce696ae55d5ee2bedb4022c60a7bb56..1223f95f68fd5c3048bb8977c62ea6c0a1227b57 100644 --- a/apps/server/src/sourceControl/BitbucketApi.ts +++ b/apps/server/src/sourceControl/BitbucketApi.ts @@ -262,7 +262,7 @@ export const BitbucketApiError = Schema.Union([ BitbucketCheckoutError, ]); export type BitbucketApiError = typeof BitbucketApiError.Type; -export const isBitbucketApiError = Schema.is(BitbucketApiError); +const isBitbucketApiError = Schema.is(BitbucketApiError); const RawBitbucketRepositorySchema = Schema.Struct({ full_name: TrimmedNonEmptyString, @@ -606,6 +606,7 @@ function responseError( }); } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const config = yield* BitbucketApiEnvConfig; const httpClient = yield* HttpClient.HttpClient; diff --git a/apps/server/src/sourceControl/BitbucketSourceControlProvider.ts b/apps/server/src/sourceControl/BitbucketSourceControlProvider.ts index ffa3fb1301c93079f0642aedcc8218fe22de3281..e27aa4c7dc88d487c80d4f26657d1a8b6064abf9 100644 --- a/apps/server/src/sourceControl/BitbucketSourceControlProvider.ts +++ b/apps/server/src/sourceControl/BitbucketSourceControlProvider.ts @@ -1,5 +1,4 @@ import * as Effect from "effect/Effect"; -import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import { SourceControlProviderError, type ChangeRequest } from "@t3tools/contracts"; @@ -186,8 +185,6 @@ export const make = Effect.gen(function* () { }); }); -export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make); - export const makeDiscovery = Effect.gen(function* () { const bitbucket = yield* BitbucketApi.BitbucketApi; diff --git a/apps/server/src/sourceControl/GitHubCli.ts b/apps/server/src/sourceControl/GitHubCli.ts index 57b9ee6e7a63d03e5b74c0307135713301b30518..cd8782c87d9e6d104ddcb575139d2fe3520139a9 100644 --- a/apps/server/src/sourceControl/GitHubCli.ts +++ b/apps/server/src/sourceControl/GitHubCli.ts @@ -338,6 +338,7 @@ function deriveRepositoryCloneUrlsFromCreateOutput( }; } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const process = yield* VcsProcess.VcsProcess; diff --git a/apps/server/src/sourceControl/GitHubSourceControlProvider.ts b/apps/server/src/sourceControl/GitHubSourceControlProvider.ts index 74f08a9a912732ad3029e2f9652bbe3779a93c0c..d82832564a24796f01d2c93754036ee6f989c881 100644 --- a/apps/server/src/sourceControl/GitHubSourceControlProvider.ts +++ b/apps/server/src/sourceControl/GitHubSourceControlProvider.ts @@ -1,6 +1,5 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Result from "effect/Result"; import { @@ -322,5 +321,3 @@ export const make = Effect.gen(function* () { ), }); }); - -export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make); diff --git a/apps/server/src/sourceControl/GitLabCli.ts b/apps/server/src/sourceControl/GitLabCli.ts index 9c9b1d4bedd044829828a227724870e2b099d93a..9d03e1ab8aa5499a64bdd1d2ac3b150b185ff791 100644 --- a/apps/server/src/sourceControl/GitLabCli.ts +++ b/apps/server/src/sourceControl/GitLabCli.ts @@ -237,7 +237,6 @@ export const GitLabCliError = Schema.Union([ GitLabNamespaceDecodeError, ]); export type GitLabCliError = typeof GitLabCliError.Type; -export const isGitLabCliError = Schema.is(GitLabCliError); export interface GitLabMergeRequestSummary { readonly number: number; @@ -409,6 +408,7 @@ function parseRepositoryPath(repository: string): { return { namespacePath, projectPath }; } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const process = yield* VcsProcess.VcsProcess; diff --git a/apps/server/src/sourceControl/GitLabSourceControlProvider.ts b/apps/server/src/sourceControl/GitLabSourceControlProvider.ts index 28211c6b850955ef2ba47001349be48d1ebcfe2b..5eb9b326423fba95898ad902fa7f85f4a6cf0dd6 100644 --- a/apps/server/src/sourceControl/GitLabSourceControlProvider.ts +++ b/apps/server/src/sourceControl/GitLabSourceControlProvider.ts @@ -1,5 +1,4 @@ import * as Effect from "effect/Effect"; -import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import { SourceControlProviderError, type ChangeRequest } from "@t3tools/contracts"; @@ -250,5 +249,3 @@ export const make = Effect.gen(function* () { ), }); }); - -export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make); diff --git a/apps/server/src/sourceControl/SourceControlDiscovery.ts b/apps/server/src/sourceControl/SourceControlDiscovery.ts index 660f32283e0fe9278f9369f354333b7e634a3f60..2628360780e140250a58b9f1f9e190e4a70a2fa7 100644 --- a/apps/server/src/sourceControl/SourceControlDiscovery.ts +++ b/apps/server/src/sourceControl/SourceControlDiscovery.ts @@ -64,6 +64,7 @@ export class SourceControlDiscovery extends Context.Service< } >()("t3/sourceControl/SourceControlDiscovery") {} +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const config = yield* ServerConfig; const process = yield* VcsProcess.VcsProcess; diff --git a/apps/server/src/sourceControl/SourceControlProvider.ts b/apps/server/src/sourceControl/SourceControlProvider.ts index 5f93dbcaa425270e1629758e2101c365c2d5698e..1844e1bfa7cb6a19bf685f7b0d6468e3b552c7fb 100644 --- a/apps/server/src/sourceControl/SourceControlProvider.ts +++ b/apps/server/src/sourceControl/SourceControlProvider.ts @@ -61,7 +61,7 @@ export function parseSourceControlOwnerRef( return owner && refName ? { owner, refName } : undefined; } -export function normalizeSourceBranch(headSelector: string): string { +function normalizeSourceBranch(headSelector: string): string { return parseSourceControlOwnerRef(headSelector)?.refName ?? headSelector.trim(); } diff --git a/apps/server/src/sourceControl/SourceControlProviderDiscovery.ts b/apps/server/src/sourceControl/SourceControlProviderDiscovery.ts index b2b9e4513378a5fe8533e7ccf3511924bd84c53a..69ac90edbfb369b8c4395c7c6a7df50aa5b2c077 100644 --- a/apps/server/src/sourceControl/SourceControlProviderDiscovery.ts +++ b/apps/server/src/sourceControl/SourceControlProviderDiscovery.ts @@ -115,7 +115,7 @@ export function providerAuth(input: { }; } -export function unknownAuth(detail?: string): SourceControlProviderAuth { +function unknownAuth(detail?: string): SourceControlProviderAuth { return providerAuth({ status: "unknown", detail }); } diff --git a/apps/server/src/sourceControl/SourceControlRateLimit.ts b/apps/server/src/sourceControl/SourceControlRateLimit.ts index e71516946e7c343322a840822ed09c3899cecdb2..b936c456079bcdaa1ced8b95ae7eef1ab8f7137d 100644 --- a/apps/server/src/sourceControl/SourceControlRateLimit.ts +++ b/apps/server/src/sourceControl/SourceControlRateLimit.ts @@ -82,6 +82,7 @@ export function retryAtFromHeader(value: string | undefined, now: number): numbe return Number.isFinite(retryAt) && retryAt > now ? retryAt : undefined; } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const entries = yield* Ref.make>(new Map()); diff --git a/apps/server/src/sourceControl/SourceControlRepositoryService.ts b/apps/server/src/sourceControl/SourceControlRepositoryService.ts index b38fe3d5c30258080d1b0654bd289ea9cd1515a4..0addeca9e7859f8bef0edae4cbc979414ce9fd70 100644 --- a/apps/server/src/sourceControl/SourceControlRepositoryService.ts +++ b/apps/server/src/sourceControl/SourceControlRepositoryService.ts @@ -77,6 +77,7 @@ function selectRemoteUrl( } } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const config = yield* ServerConfig; const fileSystem = yield* FileSystem.FileSystem; diff --git a/apps/server/src/sourceControl/azureDevOpsPullRequests.ts b/apps/server/src/sourceControl/azureDevOpsPullRequests.ts index 24c0e49fd8f4b4ede651c567d038f7622d082925..d11d1a87077a867881f964500ad7e1c14b678ce8 100644 --- a/apps/server/src/sourceControl/azureDevOpsPullRequests.ts +++ b/apps/server/src/sourceControl/azureDevOpsPullRequests.ts @@ -5,7 +5,7 @@ import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import { PositiveInt, TrimmedNonEmptyString } from "@t3tools/contracts"; -import { decodeJsonResult, formatSchemaError } from "@t3tools/shared/schemaJson"; +import { decodeJsonResult } from "@t3tools/shared/schemaJson"; export interface NormalizedAzureDevOpsPullRequestRecord { readonly number: number; @@ -190,8 +190,6 @@ const decodeAzureDevOpsPullRequestList = decodeJsonResult(Schema.Array(Schema.Un const decodeAzureDevOpsPullRequest = decodeJsonResult(AzureDevOpsPullRequestSchema); const decodeAzureDevOpsPullRequestEntry = Schema.decodeUnknownExit(AzureDevOpsPullRequestSchema); -export const formatAzureDevOpsJsonDecodeError = formatSchemaError; - export function decodeAzureDevOpsPullRequestListJson( raw: string, ): Result.Result< diff --git a/apps/server/src/sourceControl/gitHubPullRequests.ts b/apps/server/src/sourceControl/gitHubPullRequests.ts index 822de1e02797594a62fe52426087afe2598e2e33..b233d900adf1175f25d107ce504b7c99220ddc48 100644 --- a/apps/server/src/sourceControl/gitHubPullRequests.ts +++ b/apps/server/src/sourceControl/gitHubPullRequests.ts @@ -5,7 +5,7 @@ import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import { PositiveInt, TrimmedNonEmptyString } from "@t3tools/contracts"; -import { decodeJsonResult, formatSchemaError } from "@t3tools/shared/schemaJson"; +import { decodeJsonResult } from "@t3tools/shared/schemaJson"; export interface NormalizedGitHubPullRequestRecord { readonly number: number; @@ -114,8 +114,6 @@ const decodeGitHubPullRequestList = decodeJsonResult(Schema.Array(Schema.Unknown const decodeGitHubPullRequest = decodeJsonResult(GitHubPullRequestSchema); const decodeGitHubPullRequestEntry = Schema.decodeUnknownExit(GitHubPullRequestSchema); -export const formatGitHubJsonDecodeError = formatSchemaError; - export function decodeGitHubPullRequestListJson( raw: string, ): Result.Result< diff --git a/apps/server/src/sourceControl/gitLabMergeRequests.ts b/apps/server/src/sourceControl/gitLabMergeRequests.ts index 0525260df51b2c4ac59ba0202133fcdaf90b94bc..d03d43411224af8ec3d24b9bda88454377e57524 100644 --- a/apps/server/src/sourceControl/gitLabMergeRequests.ts +++ b/apps/server/src/sourceControl/gitLabMergeRequests.ts @@ -5,7 +5,7 @@ import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import { PositiveInt, TrimmedNonEmptyString } from "@t3tools/contracts"; -import { decodeJsonResult, formatSchemaError } from "@t3tools/shared/schemaJson"; +import { decodeJsonResult } from "@t3tools/shared/schemaJson"; export interface NormalizedGitLabMergeRequestRecord { readonly number: number; @@ -129,8 +129,6 @@ const decodeGitLabMergeRequestList = decodeJsonResult(Schema.Array(Schema.Unknow const decodeGitLabMergeRequest = decodeJsonResult(GitLabMergeRequestSchema); const decodeGitLabMergeRequestEntry = Schema.decodeUnknownExit(GitLabMergeRequestSchema); -export const formatGitLabJsonDecodeError = formatSchemaError; - export function decodeGitLabMergeRequestListJson( raw: string, ): Result.Result< diff --git a/apps/server/src/sourceControl/githubGraphQlBudget.ts b/apps/server/src/sourceControl/githubGraphQlBudget.ts index 9ece27547f5e9a00ad5e130430dfae2919a71d54..05e4b3a5ce2476323b1d16f0b00cf7aaaf36cb45 100644 --- a/apps/server/src/sourceControl/githubGraphQlBudget.ts +++ b/apps/server/src/sourceControl/githubGraphQlBudget.ts @@ -77,6 +77,7 @@ function withRateLimit(document: string): string { return `${document.slice(0, end)}\n ${RATE_LIMIT_SELECTION}\n${document.slice(end)}`; } +/** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const snapshots = yield* Ref.make>(new Map());