diff --git a/compat-test/quick-start.spec.ts b/compat-test/quick-start.spec.ts index c226f52d6..e172c4a33 100644 --- a/compat-test/quick-start.spec.ts +++ b/compat-test/quick-start.spec.ts @@ -8,7 +8,7 @@ import { expect, test, } from "vitest"; -import { givePort } from "../tools/ports"; +import { givePort } from "../tools/ports.ts"; describe("ESM Test", async () => { let out = ""; diff --git a/eslint.config.js b/eslint.config.js index 39b2b1e87..28fa2cddf 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -24,6 +24,10 @@ const importConcerns = [ selector: "ImportDeclaration[source.value=/^zod/] > ImportDefaultSpecifier", message: "do import { z } instead", }, + { + selector: "ImportDeclaration[source.value=/\\.js$/]", + message: "use .ts extension for relative imports", + }, ...builtinModules.map((mod) => ({ selector: `ImportDeclaration[source.value='${mod}']`, message: `use node:${mod} for the built-in module`, @@ -64,6 +68,10 @@ const performanceConcerns = [ selector: "MemberExpression[object.name='R'] > Identifier[name='union']", // #2599 message: "R.union() is 1.5x slower than [...Set().add()]", }, + { + selector: "ImportDeclaration[source.value=/package.json$/]", // #2974 + message: "it can not be tree shaken, use tsdown and process.env instead", + }, ]; const tsFactoryConcerns = [ diff --git a/esm-test/quick-start.spec.ts b/esm-test/quick-start.spec.ts index fd102c884..c05fbfe14 100644 --- a/esm-test/quick-start.spec.ts +++ b/esm-test/quick-start.spec.ts @@ -1,5 +1,5 @@ import { spawn } from "node:child_process"; -import { givePort } from "../tools/ports"; +import { givePort } from "../tools/ports.ts"; describe("ESM Test", async () => { let out = ""; diff --git a/esm-test/tsconfig.json b/esm-test/tsconfig.json deleted file mode 100644 index 61eabb994..000000000 --- a/esm-test/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler" - } -} diff --git a/example/config.ts b/example/config.ts index f91c7ea2f..1f9eb6f79 100644 --- a/example/config.ts +++ b/example/config.ts @@ -1,7 +1,7 @@ import { BuiltinLogger, createConfig } from "express-zod-api"; import ui from "swagger-ui-express"; import createHttpError from "http-errors"; -import { givePort } from "../tools/ports"; +import { givePort } from "../tools/ports.ts"; import qs from "qs"; export const config = createConfig({ diff --git a/example/endpoints/create-user.ts b/example/endpoints/create-user.ts index 0cbbba789..b7b6f44cf 100644 --- a/example/endpoints/create-user.ts +++ b/example/endpoints/create-user.ts @@ -1,7 +1,7 @@ import createHttpError from "http-errors"; import assert from "node:assert/strict"; import { z } from "zod"; -import { statusDependingFactory } from "../factories"; +import { statusDependingFactory } from "../factories.ts"; const namePart = z.string().regex(/^\w+$/); diff --git a/example/endpoints/delete-user.ts b/example/endpoints/delete-user.ts index e655a3e4a..eb521ba95 100644 --- a/example/endpoints/delete-user.ts +++ b/example/endpoints/delete-user.ts @@ -1,7 +1,7 @@ import createHttpError from "http-errors"; import assert from "node:assert/strict"; import { z } from "zod"; -import { noContentFactory } from "../factories"; +import { noContentFactory } from "../factories.ts"; /** @desc The endpoint demonstrates no content response established by its factory */ export const deleteUserEndpoint = noContentFactory.buildVoid({ diff --git a/example/endpoints/list-users.ts b/example/endpoints/list-users.ts index b9844dfa3..c5e919ef2 100644 --- a/example/endpoints/list-users.ts +++ b/example/endpoints/list-users.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { arrayRespondingFactory } from "../factories"; +import { arrayRespondingFactory } from "../factories.ts"; const roleSchema = z.enum(["manager", "operator", "admin"]); diff --git a/example/endpoints/retrieve-user.ts b/example/endpoints/retrieve-user.ts index 1c3c9f327..20e6bfd42 100644 --- a/example/endpoints/retrieve-user.ts +++ b/example/endpoints/retrieve-user.ts @@ -2,7 +2,7 @@ import createHttpError from "http-errors"; import assert from "node:assert/strict"; import { z } from "zod"; import { defaultEndpointsFactory } from "express-zod-api"; -import { methodProviderMiddleware } from "../middlewares"; +import { methodProviderMiddleware } from "../middlewares.ts"; // Demonstrating circular schemas using z.object() const feature = z.object({ diff --git a/example/endpoints/send-avatar.ts b/example/endpoints/send-avatar.ts index 9bc91b442..4ba078d78 100644 --- a/example/endpoints/send-avatar.ts +++ b/example/endpoints/send-avatar.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { fileSendingEndpointsFactory } from "../factories"; +import { fileSendingEndpointsFactory } from "../factories.ts"; import { readFile } from "node:fs/promises"; export const sendAvatarEndpoint = fileSendingEndpointsFactory.build({ diff --git a/example/endpoints/stream-avatar.ts b/example/endpoints/stream-avatar.ts index 677edc57b..8c567313a 100644 --- a/example/endpoints/stream-avatar.ts +++ b/example/endpoints/stream-avatar.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { fileStreamingEndpointsFactory } from "../factories"; +import { fileStreamingEndpointsFactory } from "../factories.ts"; export const streamAvatarEndpoint = fileStreamingEndpointsFactory.build({ shortDescription: "Streams a file content.", diff --git a/example/endpoints/time-subscription.ts b/example/endpoints/time-subscription.ts index ca8625630..5a2b98a5b 100644 --- a/example/endpoints/time-subscription.ts +++ b/example/endpoints/time-subscription.ts @@ -1,6 +1,6 @@ import { z } from "zod"; import { setTimeout } from "node:timers/promises"; -import { eventsFactory } from "../factories"; +import { eventsFactory } from "../factories.ts"; /** @desc The endpoint demonstrates emitting server-sent events (SSE) */ export const subscriptionEndpoint = eventsFactory.buildVoid({ diff --git a/example/endpoints/update-user.ts b/example/endpoints/update-user.ts index 2aedbf4f6..56ca40dd8 100644 --- a/example/endpoints/update-user.ts +++ b/example/endpoints/update-user.ts @@ -2,7 +2,7 @@ import createHttpError from "http-errors"; import assert from "node:assert/strict"; import { z } from "zod"; import { ez } from "express-zod-api"; -import { keyAndTokenAuthenticatedEndpointsFactory } from "../factories"; +import { keyAndTokenAuthenticatedEndpointsFactory } from "../factories.ts"; export const updateUserEndpoint = keyAndTokenAuthenticatedEndpointsFactory.build({ diff --git a/example/factories.ts b/example/factories.ts index 3486217b9..e63782016 100644 --- a/example/factories.ts +++ b/example/factories.ts @@ -7,7 +7,7 @@ import { EventStreamFactory, defaultEndpointsFactory, } from "express-zod-api"; -import { authMiddleware } from "./middlewares"; +import { authMiddleware } from "./middlewares.ts"; import { createReadStream } from "node:fs"; import { z } from "zod"; import { stat } from "node:fs/promises"; diff --git a/example/generate-client.ts b/example/generate-client.ts index 0578e18b1..d96aec4d6 100644 --- a/example/generate-client.ts +++ b/example/generate-client.ts @@ -1,7 +1,7 @@ import { writeFile } from "node:fs/promises"; import { Integration } from "express-zod-api"; -import { routing } from "./routing"; -import { config } from "./config"; +import { routing } from "./routing.ts"; +import { config } from "./config.ts"; await writeFile( "example.client.ts", diff --git a/example/generate-documentation.ts b/example/generate-documentation.ts index 82f70845a..badba033c 100644 --- a/example/generate-documentation.ts +++ b/example/generate-documentation.ts @@ -1,8 +1,8 @@ import { writeFile } from "node:fs/promises"; import { Documentation } from "express-zod-api"; -import { config } from "./config"; -import { routing } from "./routing"; -import manifest from "./package.json"; +import { config } from "./config.ts"; +import { routing } from "./routing.ts"; +import manifest from "./package.json" with { type: "json" }; await writeFile( "example.documentation.yaml", diff --git a/example/index.spec.ts b/example/index.spec.ts index 2a8255abf..2f7b40b92 100644 --- a/example/index.spec.ts +++ b/example/index.spec.ts @@ -1,8 +1,8 @@ import assert from "node:assert/strict"; import { spawn } from "node:child_process"; import { createReadStream, readFileSync } from "node:fs"; -import { Client, Subscription } from "./example.client"; -import { givePort } from "../tools/ports"; +import { Client, Subscription } from "./example.client.ts"; +import { givePort } from "../tools/ports.ts"; import { createHash } from "node:crypto"; import { readFile } from "node:fs/promises"; import { fail } from "node:assert"; diff --git a/example/index.ts b/example/index.ts index 9f62dc28d..3292f7dfc 100644 --- a/example/index.ts +++ b/example/index.ts @@ -1,6 +1,6 @@ import { createServer } from "express-zod-api"; -import { config } from "./config"; -import { routing } from "./routing"; +import { config } from "./config.ts"; +import { routing } from "./routing.ts"; /** * "await" is only needed for using entities returned from this method. diff --git a/example/routing.ts b/example/routing.ts index a57865a50..0d9ef98a7 100644 --- a/example/routing.ts +++ b/example/routing.ts @@ -1,15 +1,15 @@ import { DependsOnMethod, Routing, ServeStatic } from "express-zod-api"; -import { rawAcceptingEndpoint } from "./endpoints/accept-raw"; -import { createUserEndpoint } from "./endpoints/create-user"; -import { deleteUserEndpoint } from "./endpoints/delete-user"; -import { listUsersEndpoint } from "./endpoints/list-users"; -import { submitFeedbackEndpoint } from "./endpoints/submit-feedback"; -import { subscriptionEndpoint } from "./endpoints/time-subscription"; -import { uploadAvatarEndpoint } from "./endpoints/upload-avatar"; -import { retrieveUserEndpoint } from "./endpoints/retrieve-user"; -import { sendAvatarEndpoint } from "./endpoints/send-avatar"; -import { updateUserEndpoint } from "./endpoints/update-user"; -import { streamAvatarEndpoint } from "./endpoints/stream-avatar"; +import { rawAcceptingEndpoint } from "./endpoints/accept-raw.ts"; +import { createUserEndpoint } from "./endpoints/create-user.ts"; +import { deleteUserEndpoint } from "./endpoints/delete-user.ts"; +import { listUsersEndpoint } from "./endpoints/list-users.ts"; +import { submitFeedbackEndpoint } from "./endpoints/submit-feedback.ts"; +import { subscriptionEndpoint } from "./endpoints/time-subscription.ts"; +import { uploadAvatarEndpoint } from "./endpoints/upload-avatar.ts"; +import { retrieveUserEndpoint } from "./endpoints/retrieve-user.ts"; +import { sendAvatarEndpoint } from "./endpoints/send-avatar.ts"; +import { updateUserEndpoint } from "./endpoints/update-user.ts"; +import { streamAvatarEndpoint } from "./endpoints/stream-avatar.ts"; export const routing: Routing = { v1: { diff --git a/example/tsconfig.json b/example/tsconfig.json index 61eabb994..3c43903cf 100644 --- a/example/tsconfig.json +++ b/example/tsconfig.json @@ -1,7 +1,3 @@ { - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler" - } + "extends": "../tsconfig.json" } diff --git a/express-zod-api/src/builtin-logger.ts b/express-zod-api/src/builtin-logger.ts index 1008bff27..c2de34731 100644 --- a/express-zod-api/src/builtin-logger.ts +++ b/express-zod-api/src/builtin-logger.ts @@ -1,14 +1,14 @@ import ansis from "ansis"; import { inspect } from "node:util"; import { performance } from "node:perf_hooks"; -import { FlatObject, isProduction } from "./common-helpers"; +import { FlatObject, isProduction } from "./common-helpers.ts"; import { AbstractLogger, formatDuration, isHidden, Severity, styles, -} from "./logger-helpers"; +} from "./logger-helpers.ts"; interface Context extends FlatObject { requestId?: string; diff --git a/express-zod-api/src/common-helpers.ts b/express-zod-api/src/common-helpers.ts index d727e4cc0..96c2e3ece 100644 --- a/express-zod-api/src/common-helpers.ts +++ b/express-zod-api/src/common-helpers.ts @@ -1,16 +1,16 @@ import { Request } from "express"; import * as R from "ramda"; import { z } from "zod"; -import { CommonConfig, InputSource, InputSources } from "./config-type"; -import { contentTypes } from "./content-type"; +import { CommonConfig, InputSource, InputSources } from "./config-type.ts"; +import { contentTypes } from "./content-type.ts"; import { ClientMethod, SomeMethod, isMethod, Method, CORSMethod, -} from "./method"; -import { NormalizedResponse } from "./api-response"; +} from "./method.ts"; +import { NormalizedResponse } from "./api-response.ts"; /** @since zod 3.25.61 output type fixed */ export const emptySchema = z.object({}); diff --git a/express-zod-api/src/config-type.ts b/express-zod-api/src/config-type.ts index 783ea6f75..fd1cbd7e0 100644 --- a/express-zod-api/src/config-type.ts +++ b/express-zod-api/src/config-type.ts @@ -2,13 +2,13 @@ import type compression from "compression"; import { IRouter, Request, RequestHandler } from "express"; import type fileUpload from "express-fileupload"; import { ServerOptions } from "node:https"; -import { BuiltinLoggerConfig } from "./builtin-logger"; -import { AbstractEndpoint } from "./endpoint"; -import { AbstractLogger, ActualLogger } from "./logger-helpers"; -import { Method } from "./method"; -import { AbstractResultHandler } from "./result-handler"; +import { BuiltinLoggerConfig } from "./builtin-logger.ts"; +import { AbstractEndpoint } from "./endpoint.ts"; +import { AbstractLogger, ActualLogger } from "./logger-helpers.ts"; +import { Method } from "./method.ts"; +import { AbstractResultHandler } from "./result-handler.ts"; import { ListenOptions } from "node:net"; -import { GetLogger } from "./server-helpers"; +import { GetLogger } from "./server-helpers.ts"; export type InputSource = keyof Pick< Request, diff --git a/express-zod-api/src/deep-checks.ts b/express-zod-api/src/deep-checks.ts index 0b167ad15..a5417f22b 100644 --- a/express-zod-api/src/deep-checks.ts +++ b/express-zod-api/src/deep-checks.ts @@ -1,15 +1,15 @@ import * as R from "ramda"; import { z } from "zod"; -import { ezBufferBrand } from "./buffer-schema"; -import { ezDateInBrand } from "./date-in-schema"; -import { ezDateOutBrand } from "./date-out-schema"; -import { DeepCheckError } from "./errors"; -import { ezFormBrand } from "./form-schema"; -import { IOSchema } from "./io-schema"; +import { ezBufferBrand } from "./buffer-schema.ts"; +import { ezDateInBrand } from "./date-in-schema.ts"; +import { ezDateOutBrand } from "./date-out-schema.ts"; +import { DeepCheckError } from "./errors.ts"; +import { ezFormBrand } from "./form-schema.ts"; +import { IOSchema } from "./io-schema.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { FirstPartyKind } from "./schema-walker"; -import { ezUploadBrand } from "./upload-schema"; -import { ezRawBrand } from "./raw-schema"; +import { FirstPartyKind } from "./schema-walker.ts"; +import { ezUploadBrand } from "./upload-schema.ts"; +import { ezRawBrand } from "./raw-schema.ts"; interface NestedSchemaLookupProps { io: "input" | "output"; diff --git a/express-zod-api/src/depends-on-method.ts b/express-zod-api/src/depends-on-method.ts index 39f8237ff..191d8c132 100644 --- a/express-zod-api/src/depends-on-method.ts +++ b/express-zod-api/src/depends-on-method.ts @@ -1,7 +1,7 @@ import * as R from "ramda"; -import { AbstractEndpoint } from "./endpoint"; -import { Method } from "./method"; -import { Routable } from "./routable"; +import { AbstractEndpoint } from "./endpoint.ts"; +import { Method } from "./method.ts"; +import { Routable } from "./routable.ts"; export class DependsOnMethod extends Routable { readonly #endpoints: ConstructorParameters[0]; diff --git a/express-zod-api/src/diagnostics.ts b/express-zod-api/src/diagnostics.ts index 024f4ffcf..bc69fb606 100644 --- a/express-zod-api/src/diagnostics.ts +++ b/express-zod-api/src/diagnostics.ts @@ -1,11 +1,11 @@ import { z } from "zod"; -import { responseVariants } from "./api-response"; -import { FlatObject, getRoutePathParams } from "./common-helpers"; -import { contentTypes } from "./content-type"; -import { findJsonIncompatible } from "./deep-checks"; -import { AbstractEndpoint } from "./endpoint"; -import { flattenIO } from "./json-schema-helpers"; -import { ActualLogger } from "./logger-helpers"; +import { responseVariants } from "./api-response.ts"; +import { FlatObject, getRoutePathParams } from "./common-helpers.ts"; +import { contentTypes } from "./content-type.ts"; +import { findJsonIncompatible } from "./deep-checks.ts"; +import { AbstractEndpoint } from "./endpoint.ts"; +import { flattenIO } from "./json-schema-helpers.ts"; +import { ActualLogger } from "./logger-helpers.ts"; export class Diagnostics { #verifiedEndpoints = new WeakSet(); diff --git a/express-zod-api/src/documentation-helpers.ts b/express-zod-api/src/documentation-helpers.ts index 33e930a9b..0416a8d8d 100644 --- a/express-zod-api/src/documentation-helpers.ts +++ b/express-zod-api/src/documentation-helpers.ts @@ -16,8 +16,8 @@ import { } from "openapi3-ts/oas31"; import * as R from "ramda"; import { z } from "zod"; -import { NormalizedResponse, ResponseVariant } from "./api-response"; -import { ezBufferBrand } from "./buffer-schema"; +import { NormalizedResponse, ResponseVariant } from "./api-response.ts"; +import { ezBufferBrand } from "./buffer-schema.ts"; import { shouldHaveContent, FlatObject, @@ -29,23 +29,23 @@ import { routePathParamsRegex, Tag, ucFirst, -} from "./common-helpers"; -import { InputSource } from "./config-type"; -import { contentTypes } from "./content-type"; -import { ezDateInBrand } from "./date-in-schema"; -import { ezDateOutBrand } from "./date-out-schema"; -import { DocumentationError } from "./errors"; -import { IOSchema } from "./io-schema"; -import { flattenIO } from "./json-schema-helpers"; -import { Alternatives } from "./logical-container"; +} from "./common-helpers.ts"; +import { InputSource } from "./config-type.ts"; +import { contentTypes } from "./content-type.ts"; +import { ezDateInBrand } from "./date-in-schema.ts"; +import { ezDateOutBrand } from "./date-out-schema.ts"; +import { DocumentationError } from "./errors.ts"; +import { IOSchema } from "./io-schema.ts"; +import { flattenIO } from "./json-schema-helpers.ts"; +import { Alternatives } from "./logical-container.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { ClientMethod } from "./method"; -import { ProprietaryBrand } from "./proprietary-schemas"; -import { ezRawBrand } from "./raw-schema"; -import { FirstPartyKind } from "./schema-walker"; -import { Security } from "./security"; -import { ezUploadBrand } from "./upload-schema"; -import wellKnownHeaders from "./well-known-headers.json"; +import { ClientMethod } from "./method.ts"; +import { ProprietaryBrand } from "./proprietary-schemas.ts"; +import { ezRawBrand } from "./raw-schema.ts"; +import { FirstPartyKind } from "./schema-walker.ts"; +import { Security } from "./security.ts"; +import { ezUploadBrand } from "./upload-schema.ts"; +import wellKnownHeaders from "./well-known-headers.json" with { type: "json" }; interface ReqResCommons { makeRef: ( diff --git a/express-zod-api/src/documentation.ts b/express-zod-api/src/documentation.ts index 987f82acc..4454bdfcc 100644 --- a/express-zod-api/src/documentation.ts +++ b/express-zod-api/src/documentation.ts @@ -8,13 +8,13 @@ import { SecuritySchemeType, } from "openapi3-ts/oas31"; import * as R from "ramda"; -import { responseVariants } from "./api-response"; -import { contentTypes } from "./content-type"; -import { DocumentationError } from "./errors"; -import { getInputSources, makeCleanId } from "./common-helpers"; -import { CommonConfig } from "./config-type"; -import { processContainers } from "./logical-container"; -import { ClientMethod } from "./method"; +import { responseVariants } from "./api-response.ts"; +import { contentTypes } from "./content-type.ts"; +import { DocumentationError } from "./errors.ts"; +import { getInputSources, makeCleanId } from "./common-helpers.ts"; +import { CommonConfig } from "./config-type.ts"; +import { processContainers } from "./logical-container.ts"; +import { ClientMethod } from "./method.ts"; import { depictBody, depictRequestParams, @@ -28,9 +28,9 @@ import { nonEmpty, BrandHandling, depictRequest, -} from "./documentation-helpers"; -import { Routing } from "./routing"; -import { OnEndpoint, walkRouting, withHead } from "./routing-walker"; +} from "./documentation-helpers.ts"; +import { Routing } from "./routing.ts"; +import { OnEndpoint, walkRouting, withHead } from "./routing-walker.ts"; type Component = | "positiveResponse" diff --git a/express-zod-api/src/endpoint.ts b/express-zod-api/src/endpoint.ts index b21dd45ab..535a6fef8 100644 --- a/express-zod-api/src/endpoint.ts +++ b/express-zod-api/src/endpoint.ts @@ -1,36 +1,36 @@ import { Request, Response } from "express"; import * as R from "ramda"; import { z, globalRegistry } from "zod"; -import { NormalizedResponse, ResponseVariant } from "./api-response"; -import { findRequestTypeDefiningSchema } from "./deep-checks"; +import { NormalizedResponse, ResponseVariant } from "./api-response.ts"; +import { findRequestTypeDefiningSchema } from "./deep-checks.ts"; import { FlatObject, getActualMethod, getInput, ensureError, isSchema, -} from "./common-helpers"; -import { CommonConfig } from "./config-type"; +} from "./common-helpers.ts"; +import { CommonConfig } from "./config-type.ts"; import { InputValidationError, OutputValidationError, ResultHandlerError, -} from "./errors"; -import { ezFormBrand } from "./form-schema"; -import { IOSchema } from "./io-schema"; -import { lastResortHandler } from "./last-resort"; -import { ActualLogger } from "./logger-helpers"; -import { LogicalContainer } from "./logical-container"; +} from "./errors.ts"; +import { ezFormBrand } from "./form-schema.ts"; +import { IOSchema } from "./io-schema.ts"; +import { lastResortHandler } from "./last-resort.ts"; +import { ActualLogger } from "./logger-helpers.ts"; +import { LogicalContainer } from "./logical-container.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { ClientMethod, CORSMethod, Method, SomeMethod } from "./method"; -import { AbstractMiddleware, ExpressMiddleware } from "./middleware"; -import { ContentType } from "./content-type"; -import { ezRawBrand } from "./raw-schema"; -import { DiscriminatedResult, pullResponseExamples } from "./result-helpers"; -import { Routable } from "./routable"; -import { AbstractResultHandler } from "./result-handler"; -import { Security } from "./security"; -import { ezUploadBrand } from "./upload-schema"; +import { ClientMethod, CORSMethod, Method, SomeMethod } from "./method.ts"; +import { AbstractMiddleware, ExpressMiddleware } from "./middleware.ts"; +import { ContentType } from "./content-type.ts"; +import { ezRawBrand } from "./raw-schema.ts"; +import { DiscriminatedResult, pullResponseExamples } from "./result-helpers.ts"; +import { Routable } from "./routable.ts"; +import { AbstractResultHandler } from "./result-handler.ts"; +import { Security } from "./security.ts"; +import { ezUploadBrand } from "./upload-schema.ts"; export type Handler = (params: { /** @desc The inputs from the enabled input sources validated against the final input schema (incl. Middlewares) */ diff --git a/express-zod-api/src/endpoints-factory.ts b/express-zod-api/src/endpoints-factory.ts index a76c8fa05..eebbc6385 100644 --- a/express-zod-api/src/endpoints-factory.ts +++ b/express-zod-api/src/endpoints-factory.ts @@ -6,26 +6,26 @@ import { EmptySchema, FlatObject, Tag, -} from "./common-helpers"; -import { Endpoint, Handler } from "./endpoint"; +} from "./common-helpers.ts"; +import { Endpoint, Handler } from "./endpoint.ts"; import { IOSchema, FinalInputSchema, Extension, ensureExtension, makeFinalInputSchema, -} from "./io-schema"; -import { ClientMethod, Method } from "./method"; +} from "./io-schema.ts"; +import { ClientMethod, Method } from "./method.ts"; import { AbstractMiddleware, ExpressMiddleware, Middleware, -} from "./middleware"; +} from "./middleware.ts"; import { AbstractResultHandler, arrayResultHandler, defaultResultHandler, -} from "./result-handler"; +} from "./result-handler.ts"; interface BuildProps< IN extends IOSchema, diff --git a/express-zod-api/src/errors.ts b/express-zod-api/src/errors.ts index 3da95acea..5bd0947b3 100644 --- a/express-zod-api/src/errors.ts +++ b/express-zod-api/src/errors.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import { getMessageFromError } from "./common-helpers"; -import { OpenAPIContext } from "./documentation-helpers"; -import type { Method } from "./method"; +import { getMessageFromError } from "./common-helpers.ts"; +import { OpenAPIContext } from "./documentation-helpers.ts"; +import type { Method } from "./method.ts"; /** @desc An error related to the wrong Routing declaration */ export class RoutingError extends Error { diff --git a/express-zod-api/src/graceful-shutdown.ts b/express-zod-api/src/graceful-shutdown.ts index bb3762e95..268c0767d 100644 --- a/express-zod-api/src/graceful-shutdown.ts +++ b/express-zod-api/src/graceful-shutdown.ts @@ -2,14 +2,14 @@ import http from "node:http"; import https from "node:https"; import { setInterval } from "node:timers/promises"; import type { Socket } from "node:net"; -import type { ActualLogger } from "./logger-helpers"; +import type { ActualLogger } from "./logger-helpers.ts"; import { closeAsync, hasHttpServer, hasResponse, isEncrypted, weAreClosed, -} from "./graceful-helpers"; +} from "./graceful-helpers.ts"; export const monitor = ( servers: Array, diff --git a/express-zod-api/src/index.ts b/express-zod-api/src/index.ts index a97563aee..6bbd6ccde 100644 --- a/express-zod-api/src/index.ts +++ b/express-zod-api/src/index.ts @@ -1,52 +1,52 @@ import "@express-zod-api/zod-plugin"; // side effects here -export { createConfig } from "./config-type"; +export { createConfig } from "./config-type.ts"; export { EndpointsFactory, defaultEndpointsFactory, arrayEndpointsFactory, -} from "./endpoints-factory"; -export { getMessageFromError } from "./common-helpers"; -export { ensureHttpError } from "./result-helpers"; -export { BuiltinLogger } from "./builtin-logger"; -export { Middleware } from "./middleware"; +} from "./endpoints-factory.ts"; +export { getMessageFromError } from "./common-helpers.ts"; +export { ensureHttpError } from "./result-helpers.ts"; +export { BuiltinLogger } from "./builtin-logger.ts"; +export { Middleware } from "./middleware.ts"; export { ResultHandler, defaultResultHandler, arrayResultHandler, -} from "./result-handler"; -export { DependsOnMethod } from "./depends-on-method"; -export { ServeStatic } from "./serve-static"; -export { createServer, attachRouting } from "./server"; -export { Documentation } from "./documentation"; +} from "./result-handler.ts"; +export { DependsOnMethod } from "./depends-on-method.ts"; +export { ServeStatic } from "./serve-static.ts"; +export { createServer, attachRouting } from "./server.ts"; +export { Documentation } from "./documentation.ts"; export { DocumentationError, RoutingError, OutputValidationError, InputValidationError, MissingPeerError, -} from "./errors"; -export { testEndpoint, testMiddleware } from "./testing"; -export { Integration } from "./integration"; -export { EventStreamFactory } from "./sse"; +} from "./errors.ts"; +export { testEndpoint, testMiddleware } from "./testing.ts"; +export { Integration } from "./integration.ts"; +export { EventStreamFactory } from "./sse.ts"; -export { ez } from "./proprietary-schemas"; +export { ez } from "./proprietary-schemas.ts"; // Convenience types -export type { Depicter } from "./documentation-helpers"; -export type { Producer } from "./zts-helpers"; +export type { Depicter } from "./documentation-helpers.ts"; +export type { Producer } from "./zts-helpers.ts"; // Interfaces exposed for augmentation -export type { LoggerOverrides } from "./logger-helpers"; -export type { TagOverrides } from "./common-helpers"; +export type { LoggerOverrides } from "./logger-helpers.ts"; +export type { TagOverrides } from "./common-helpers.ts"; // Issues 952, 1182, 1269: Insufficient exports for consumer's declaration import type {} from "qs"; // fixes TS2742 for attachRouting -export type { Routing } from "./routing"; -export type { FlatObject } from "./common-helpers"; -export type { Method } from "./method"; -export type { IOSchema } from "./io-schema"; -export type { CommonConfig, AppConfig, ServerConfig } from "./config-type"; -export type { ApiResponse } from "./api-response"; +export type { Routing } from "./routing.ts"; +export type { FlatObject } from "./common-helpers.ts"; +export type { Method } from "./method.ts"; +export type { IOSchema } from "./io-schema.ts"; +export type { CommonConfig, AppConfig, ServerConfig } from "./config-type.ts"; +export type { ApiResponse } from "./api-response.ts"; export type { BasicSecurity, BearerSecurity, @@ -55,4 +55,4 @@ export type { InputSecurity, OAuth2Security, OpenIdSecurity, -} from "./security"; +} from "./security.ts"; diff --git a/express-zod-api/src/integration-base.ts b/express-zod-api/src/integration-base.ts index c5ae09c38..a80453b8a 100644 --- a/express-zod-api/src/integration-base.ts +++ b/express-zod-api/src/integration-base.ts @@ -1,9 +1,9 @@ import * as R from "ramda"; import ts from "typescript"; -import { ResponseVariant } from "./api-response"; -import { contentTypes } from "./content-type"; -import { ClientMethod, clientMethods } from "./method"; -import type { makeEventSchema } from "./sse"; +import { ResponseVariant } from "./api-response.ts"; +import { contentTypes } from "./content-type.ts"; +import { ClientMethod, clientMethods } from "./method.ts"; +import type { makeEventSchema } from "./sse.ts"; import { accessModifiers, ensureTypeNode, @@ -39,7 +39,7 @@ import { makeFnType, makeLiteralType, literally, -} from "./typescript-api"; +} from "./typescript-api.ts"; type IOKind = "input" | "response" | ResponseVariant | "encoded"; type SSEShape = ReturnType["shape"]; diff --git a/express-zod-api/src/integration.ts b/express-zod-api/src/integration.ts index 6baa5e7ad..98fe3cb54 100644 --- a/express-zod-api/src/integration.ts +++ b/express-zod-api/src/integration.ts @@ -1,8 +1,8 @@ import * as R from "ramda"; import ts from "typescript"; import { z } from "zod"; -import { ResponseVariant, responseVariants } from "./api-response"; -import { IntegrationBase } from "./integration-base"; +import { ResponseVariant, responseVariants } from "./api-response.ts"; +import { IntegrationBase } from "./integration-base.ts"; import { f, makeInterfaceProp, @@ -13,16 +13,16 @@ import { makeIndexed, makeLiteralType, makeUnion, -} from "./typescript-api"; -import { shouldHaveContent, makeCleanId } from "./common-helpers"; -import { loadPeer } from "./peer-helpers"; -import { Routing } from "./routing"; -import { OnEndpoint, walkRouting, withHead } from "./routing-walker"; -import { HandlingRules } from "./schema-walker"; -import { zodToTs } from "./zts"; -import { ZTSContext } from "./zts-helpers"; +} from "./typescript-api.ts"; +import { shouldHaveContent, makeCleanId } from "./common-helpers.ts"; +import { loadPeer } from "./peer-helpers.ts"; +import { Routing } from "./routing.ts"; +import { OnEndpoint, walkRouting, withHead } from "./routing-walker.ts"; +import { HandlingRules } from "./schema-walker.ts"; +import { zodToTs } from "./zts.ts"; +import { ZTSContext } from "./zts-helpers.ts"; import type Prettier from "prettier"; -import { ClientMethod } from "./method"; +import { ClientMethod } from "./method.ts"; interface IntegrationParams { routing: Routing; diff --git a/express-zod-api/src/json-schema-helpers.ts b/express-zod-api/src/json-schema-helpers.ts index 1d96da0da..4aec0da69 100644 --- a/express-zod-api/src/json-schema-helpers.ts +++ b/express-zod-api/src/json-schema-helpers.ts @@ -1,5 +1,5 @@ import * as R from "ramda"; -import { combinations, FlatObject, isObject } from "./common-helpers"; +import { combinations, FlatObject, isObject } from "./common-helpers.ts"; import type { z } from "zod"; const isJsonObjectSchema = ( diff --git a/express-zod-api/src/last-resort.ts b/express-zod-api/src/last-resort.ts index a37b81151..0270b27d6 100644 --- a/express-zod-api/src/last-resort.ts +++ b/express-zod-api/src/last-resort.ts @@ -1,8 +1,8 @@ import { Response } from "express"; import createHttpError, { isHttpError } from "http-errors"; -import { ResultHandlerError } from "./errors"; -import { ActualLogger } from "./logger-helpers"; -import { getPublicErrorMessage } from "./result-helpers"; +import { ResultHandlerError } from "./errors.ts"; +import { ActualLogger } from "./logger-helpers.ts"; +import { getPublicErrorMessage } from "./result-helpers.ts"; interface LastResortHandlerParams { error: ResultHandlerError; diff --git a/express-zod-api/src/logger-helpers.ts b/express-zod-api/src/logger-helpers.ts index fffab336f..afb106b99 100644 --- a/express-zod-api/src/logger-helpers.ts +++ b/express-zod-api/src/logger-helpers.ts @@ -1,6 +1,6 @@ import { Ansis, blue, green, hex, red, cyanBright } from "ansis"; import * as R from "ramda"; -import { isObject } from "./common-helpers"; +import { isObject } from "./common-helpers.ts"; export const styles = { debug: blue, diff --git a/express-zod-api/src/logical-container.ts b/express-zod-api/src/logical-container.ts index 588011371..07b043883 100644 --- a/express-zod-api/src/logical-container.ts +++ b/express-zod-api/src/logical-container.ts @@ -1,5 +1,5 @@ import * as R from "ramda"; -import { combinations, isObject } from "./common-helpers"; +import { combinations, isObject } from "./common-helpers.ts"; type LogicalOr = { or: T[] }; type LogicalAnd = { and: T[] }; diff --git a/express-zod-api/src/middleware.ts b/express-zod-api/src/middleware.ts index 47035c414..e62034462 100644 --- a/express-zod-api/src/middleware.ts +++ b/express-zod-api/src/middleware.ts @@ -1,11 +1,11 @@ import { NextFunction, Request, Response } from "express"; import { z } from "zod"; -import { emptySchema, FlatObject } from "./common-helpers"; -import { InputValidationError } from "./errors"; -import { IOSchema } from "./io-schema"; -import { LogicalContainer } from "./logical-container"; -import { Security } from "./security"; -import { ActualLogger } from "./logger-helpers"; +import { emptySchema, FlatObject } from "./common-helpers.ts"; +import { InputValidationError } from "./errors.ts"; +import { IOSchema } from "./io-schema.ts"; +import { LogicalContainer } from "./logical-container.ts"; +import { Security } from "./security.ts"; +import { ActualLogger } from "./logger-helpers.ts"; type Handler = (params: { /** @desc The inputs from the enabled input sources validated against the input schema of the Middleware */ diff --git a/express-zod-api/src/peer-helpers.ts b/express-zod-api/src/peer-helpers.ts index 952e10592..254377bef 100644 --- a/express-zod-api/src/peer-helpers.ts +++ b/express-zod-api/src/peer-helpers.ts @@ -1,4 +1,4 @@ -import { MissingPeerError } from "./errors"; +import { MissingPeerError } from "./errors.ts"; export const loadPeer = async ( moduleName: string, diff --git a/express-zod-api/src/proprietary-schemas.ts b/express-zod-api/src/proprietary-schemas.ts index c6c740746..e710b4de5 100644 --- a/express-zod-api/src/proprietary-schemas.ts +++ b/express-zod-api/src/proprietary-schemas.ts @@ -1,9 +1,9 @@ -import { buffer, type ezBufferBrand } from "./buffer-schema"; -import { dateIn, type ezDateInBrand } from "./date-in-schema"; -import { dateOut, type ezDateOutBrand } from "./date-out-schema"; -import { form, type ezFormBrand } from "./form-schema"; -import { raw, type ezRawBrand } from "./raw-schema"; -import { upload, type ezUploadBrand } from "./upload-schema"; +import { buffer, type ezBufferBrand } from "./buffer-schema.ts"; +import { dateIn, type ezDateInBrand } from "./date-in-schema.ts"; +import { dateOut, type ezDateOutBrand } from "./date-out-schema.ts"; +import { form, type ezFormBrand } from "./form-schema.ts"; +import { raw, type ezRawBrand } from "./raw-schema.ts"; +import { upload, type ezUploadBrand } from "./upload-schema.ts"; export const ez = { dateIn, dateOut, form, upload, raw, buffer }; diff --git a/express-zod-api/src/raw-schema.ts b/express-zod-api/src/raw-schema.ts index d779b85b8..0ca1a9af8 100644 --- a/express-zod-api/src/raw-schema.ts +++ b/express-zod-api/src/raw-schema.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { buffer } from "./buffer-schema"; +import { buffer } from "./buffer-schema.ts"; export const ezRawBrand = Symbol("Raw"); diff --git a/express-zod-api/src/result-handler.ts b/express-zod-api/src/result-handler.ts index e788af642..a41cf18b8 100644 --- a/express-zod-api/src/result-handler.ts +++ b/express-zod-api/src/result-handler.ts @@ -4,11 +4,11 @@ import { ApiResponse, defaultStatusCodes, NormalizedResponse, -} from "./api-response"; -import { FlatObject, isObject } from "./common-helpers"; -import { contentTypes } from "./content-type"; -import { IOSchema } from "./io-schema"; -import { ActualLogger } from "./logger-helpers"; +} from "./api-response.ts"; +import { FlatObject, isObject } from "./common-helpers.ts"; +import { contentTypes } from "./content-type.ts"; +import { IOSchema } from "./io-schema.ts"; +import { ActualLogger } from "./logger-helpers.ts"; import { DiscriminatedResult, ensureHttpError, @@ -16,7 +16,7 @@ import { logServerError, normalize, ResultSchema, -} from "./result-helpers"; +} from "./result-helpers.ts"; type Handler = ( params: DiscriminatedResult & { diff --git a/express-zod-api/src/result-helpers.ts b/express-zod-api/src/result-helpers.ts index 0f7cd1162..ba31af016 100644 --- a/express-zod-api/src/result-helpers.ts +++ b/express-zod-api/src/result-helpers.ts @@ -2,16 +2,16 @@ import { Request } from "express"; import createHttpError, { HttpError, isHttpError } from "http-errors"; import * as R from "ramda"; import { globalRegistry, z } from "zod"; -import { NormalizedResponse, ResponseVariant } from "./api-response"; +import { NormalizedResponse, ResponseVariant } from "./api-response.ts"; import { combinations, FlatObject, getMessageFromError, isProduction, -} from "./common-helpers"; -import { InputValidationError, ResultHandlerError } from "./errors"; -import { ActualLogger } from "./logger-helpers"; -import type { LazyResult, Result } from "./result-handler"; +} from "./common-helpers.ts"; +import { InputValidationError, ResultHandlerError } from "./errors.ts"; +import { ActualLogger } from "./logger-helpers.ts"; +import type { LazyResult, Result } from "./result-handler.ts"; export type ResultSchema = R extends Result ? S : never; diff --git a/express-zod-api/src/routable.ts b/express-zod-api/src/routable.ts index 707645af7..8800157df 100644 --- a/express-zod-api/src/routable.ts +++ b/express-zod-api/src/routable.ts @@ -1,4 +1,4 @@ -import { Routing } from "./routing"; +import { Routing } from "./routing.ts"; export abstract class Routable { /** @desc Marks the route as deprecated (makes a copy of the endpoint) */ diff --git a/express-zod-api/src/routing-walker.ts b/express-zod-api/src/routing-walker.ts index a4313a30f..906f93721 100644 --- a/express-zod-api/src/routing-walker.ts +++ b/express-zod-api/src/routing-walker.ts @@ -1,9 +1,9 @@ -import { DependsOnMethod } from "./depends-on-method"; -import { AbstractEndpoint } from "./endpoint"; -import { RoutingError } from "./errors"; -import { ClientMethod, isMethod, Method } from "./method"; -import { Routing } from "./routing"; -import { ServeStatic, StaticHandler } from "./serve-static"; +import { DependsOnMethod } from "./depends-on-method.ts"; +import { AbstractEndpoint } from "./endpoint.ts"; +import { RoutingError } from "./errors.ts"; +import { ClientMethod, isMethod, Method } from "./method.ts"; +import { Routing } from "./routing.ts"; +import { ServeStatic, StaticHandler } from "./serve-static.ts"; export type OnEndpoint = ( method: M, diff --git a/express-zod-api/src/routing.ts b/express-zod-api/src/routing.ts index 360d53b4d..6c85de88c 100644 --- a/express-zod-api/src/routing.ts +++ b/express-zod-api/src/routing.ts @@ -1,15 +1,15 @@ import { IRouter, RequestHandler } from "express"; import createHttpError from "http-errors"; -import { isProduction } from "./common-helpers"; -import { CommonConfig } from "./config-type"; -import { ContentType } from "./content-type"; -import { DependsOnMethod } from "./depends-on-method"; -import { Diagnostics } from "./diagnostics"; -import { AbstractEndpoint } from "./endpoint"; -import { CORSMethod, isMethod } from "./method"; -import { OnEndpoint, walkRouting } from "./routing-walker"; -import { ServeStatic } from "./serve-static"; -import { GetLogger } from "./server-helpers"; +import { isProduction } from "./common-helpers.ts"; +import { CommonConfig } from "./config-type.ts"; +import { ContentType } from "./content-type.ts"; +import { DependsOnMethod } from "./depends-on-method.ts"; +import { Diagnostics } from "./diagnostics.ts"; +import { AbstractEndpoint } from "./endpoint.ts"; +import { CORSMethod, isMethod } from "./method.ts"; +import { OnEndpoint, walkRouting } from "./routing-walker.ts"; +import { ServeStatic } from "./serve-static.ts"; +import { GetLogger } from "./server-helpers.ts"; import * as R from "ramda"; /** diff --git a/express-zod-api/src/schema-walker.ts b/express-zod-api/src/schema-walker.ts index be458eb19..0cce7e5fd 100644 --- a/express-zod-api/src/schema-walker.ts +++ b/express-zod-api/src/schema-walker.ts @@ -1,4 +1,4 @@ -import type { EmptyObject, FlatObject } from "./common-helpers"; +import type { EmptyObject, FlatObject } from "./common-helpers.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; import type { z } from "zod"; diff --git a/express-zod-api/src/server-helpers.ts b/express-zod-api/src/server-helpers.ts index 1569908c2..1db70773c 100644 --- a/express-zod-api/src/server-helpers.ts +++ b/express-zod-api/src/server-helpers.ts @@ -1,17 +1,17 @@ import type fileUpload from "express-fileupload"; -import { loadPeer } from "./peer-helpers"; -import { AbstractResultHandler } from "./result-handler"; -import { ActualLogger } from "./logger-helpers"; -import { CommonConfig, ServerConfig } from "./config-type"; +import { loadPeer } from "./peer-helpers.ts"; +import { AbstractResultHandler } from "./result-handler.ts"; +import { ActualLogger } from "./logger-helpers.ts"; +import { CommonConfig, ServerConfig } from "./config-type.ts"; import { ErrorRequestHandler, RequestHandler, Request } from "express"; import createHttpError from "http-errors"; -import { lastResortHandler } from "./last-resort"; -import { ResultHandlerError } from "./errors"; -import { ensureError } from "./common-helpers"; -import { monitor } from "./graceful-shutdown"; -import { name as self } from "../package.json"; +import { lastResortHandler } from "./last-resort.ts"; +import { ResultHandlerError } from "./errors.ts"; +import { ensureError } from "./common-helpers.ts"; +import { monitor } from "./graceful-shutdown.ts"; -export const localsID = Symbol.for(self); +// eslint-disable-next-line no-restricted-syntax -- substituted by TSDOWN +export const localsID = Symbol.for(process.env.TSDOWN_SELF!); type EquippedRequest = Request< unknown, diff --git a/express-zod-api/src/server.ts b/express-zod-api/src/server.ts index a2239db43..09e0b0c0a 100644 --- a/express-zod-api/src/server.ts +++ b/express-zod-api/src/server.ts @@ -2,17 +2,17 @@ import express from "express"; import type compression from "compression"; import http from "node:http"; import https from "node:https"; -import { BuiltinLogger } from "./builtin-logger"; +import { BuiltinLogger } from "./builtin-logger.ts"; import { AppConfig, CommonConfig, HttpConfig, ServerConfig, -} from "./config-type"; -import { isLoggerInstance } from "./logger-helpers"; -import { loadPeer } from "./peer-helpers"; -import { defaultResultHandler } from "./result-handler"; -import { Parsers, Routing, initRouting } from "./routing"; +} from "./config-type.ts"; +import { isLoggerInstance } from "./logger-helpers.ts"; +import { loadPeer } from "./peer-helpers.ts"; +import { defaultResultHandler } from "./result-handler.ts"; +import { Parsers, Routing, initRouting } from "./routing.ts"; import { createLoggingMiddleware, createNotFoundHandler, @@ -22,8 +22,8 @@ import { installDeprecationListener, moveRaw, installTerminationListener, -} from "./server-helpers"; -import { printStartupLogo } from "./startup-logo"; +} from "./server-helpers.ts"; +import { printStartupLogo } from "./startup-logo.ts"; const makeCommonEntities = (config: CommonConfig) => { if (config.startupLogo !== false) printStartupLogo(process.stdout); diff --git a/express-zod-api/src/sse.ts b/express-zod-api/src/sse.ts index 273e12fc0..ab067bf5d 100644 --- a/express-zod-api/src/sse.ts +++ b/express-zod-api/src/sse.ts @@ -1,15 +1,15 @@ import { Response } from "express"; import { z } from "zod"; -import { FlatObject } from "./common-helpers"; -import { contentTypes } from "./content-type"; -import { EndpointsFactory } from "./endpoints-factory"; -import { Middleware } from "./middleware"; -import { ResultHandler } from "./result-handler"; +import { FlatObject } from "./common-helpers.ts"; +import { contentTypes } from "./content-type.ts"; +import { EndpointsFactory } from "./endpoints-factory.ts"; +import { Middleware } from "./middleware.ts"; +import { ResultHandler } from "./result-handler.ts"; import { ensureHttpError, getPublicErrorMessage, logServerError, -} from "./result-helpers"; +} from "./result-helpers.ts"; type EventsMap = Record; diff --git a/express-zod-api/src/testing.ts b/express-zod-api/src/testing.ts index dc161ea7c..6ca2177a3 100644 --- a/express-zod-api/src/testing.ts +++ b/express-zod-api/src/testing.ts @@ -1,22 +1,22 @@ import { Request, Response } from "express"; -import { ensureError, FlatObject, getInput } from "./common-helpers"; -import { CommonConfig } from "./config-type"; -import { AbstractEndpoint } from "./endpoint"; +import { ensureError, FlatObject, getInput } from "./common-helpers.ts"; +import { CommonConfig } from "./config-type.ts"; +import { AbstractEndpoint } from "./endpoint.ts"; import { AbstractLogger, ActualLogger, isSeverity, Severity, -} from "./logger-helpers"; -import { contentTypes } from "./content-type"; +} from "./logger-helpers.ts"; +import { contentTypes } from "./content-type.ts"; import { createRequest, RequestOptions, createResponse, ResponseOptions, } from "node-mocks-http"; -import { AbstractMiddleware } from "./middleware"; -import { defaultResultHandler } from "./result-handler"; +import { AbstractMiddleware } from "./middleware.ts"; +import { defaultResultHandler } from "./result-handler.ts"; export const makeRequestMock = (props?: REQ) => createRequest({ diff --git a/express-zod-api/src/zts-helpers.ts b/express-zod-api/src/zts-helpers.ts index 484c68fb0..9db9a7f23 100644 --- a/express-zod-api/src/zts-helpers.ts +++ b/express-zod-api/src/zts-helpers.ts @@ -1,6 +1,6 @@ import type ts from "typescript"; -import { FlatObject } from "./common-helpers"; -import { SchemaHandler } from "./schema-walker"; +import { FlatObject } from "./common-helpers.ts"; +import { SchemaHandler } from "./schema-walker.ts"; export interface ZTSContext extends FlatObject { isResponse: boolean; diff --git a/express-zod-api/src/zts.ts b/express-zod-api/src/zts.ts index 681920a2e..b860ae38e 100644 --- a/express-zod-api/src/zts.ts +++ b/express-zod-api/src/zts.ts @@ -1,21 +1,21 @@ import * as R from "ramda"; import ts from "typescript"; import { globalRegistry, z } from "zod"; -import { ezBufferBrand } from "./buffer-schema"; -import { getTransformedType, isSchema } from "./common-helpers"; -import { ezDateInBrand } from "./date-in-schema"; -import { ezDateOutBrand } from "./date-out-schema"; -import { hasCycle } from "./deep-checks"; -import { ProprietaryBrand } from "./proprietary-schemas"; -import { ezRawBrand, RawSchema } from "./raw-schema"; -import { FirstPartyKind, HandlingRules, walkSchema } from "./schema-walker"; +import { ezBufferBrand } from "./buffer-schema.ts"; +import { getTransformedType, isSchema } from "./common-helpers.ts"; +import { ezDateInBrand } from "./date-in-schema.ts"; +import { ezDateOutBrand } from "./date-out-schema.ts"; +import { hasCycle } from "./deep-checks.ts"; +import { ProprietaryBrand } from "./proprietary-schemas.ts"; +import { ezRawBrand, RawSchema } from "./raw-schema.ts"; +import { FirstPartyKind, HandlingRules, walkSchema } from "./schema-walker.ts"; import { ensureTypeNode, makeInterfaceProp, makeLiteralType, makeUnion, -} from "./typescript-api"; -import { Producer, ZTSContext } from "./zts-helpers"; +} from "./typescript-api.ts"; +import { Producer, ZTSContext } from "./zts-helpers.ts"; const { factory: f } = ts; diff --git a/express-zod-api/tests/api-response.spec.ts b/express-zod-api/tests/api-response.spec.ts index f619c2f9d..573bb423d 100644 --- a/express-zod-api/tests/api-response.spec.ts +++ b/express-zod-api/tests/api-response.spec.ts @@ -1,4 +1,4 @@ -import { defaultStatusCodes, responseVariants } from "../src/api-response"; +import { defaultStatusCodes, responseVariants } from "../src/api-response.ts"; describe("ApiResponse", () => { describe("defaultStatusCodes", () => { diff --git a/express-zod-api/tests/buffer-schema.spec.ts b/express-zod-api/tests/buffer-schema.spec.ts index cdb8bcaf9..10e3b0993 100644 --- a/express-zod-api/tests/buffer-schema.spec.ts +++ b/express-zod-api/tests/buffer-schema.spec.ts @@ -1,6 +1,6 @@ import { readFile } from "node:fs/promises"; import { z, $brand } from "zod"; -import { ez } from "../src"; +import { ez } from "../src/index.ts"; describe("ez.buffer()", () => { describe("creation", () => { diff --git a/express-zod-api/tests/builtin-logger.spec.ts b/express-zod-api/tests/builtin-logger.spec.ts index 92a7b8520..bb34e1d52 100644 --- a/express-zod-api/tests/builtin-logger.spec.ts +++ b/express-zod-api/tests/builtin-logger.spec.ts @@ -1,5 +1,5 @@ import { performance } from "node:perf_hooks"; -import { BuiltinLogger, BuiltinLoggerConfig } from "../src/builtin-logger"; +import { BuiltinLogger, BuiltinLoggerConfig } from "../src/builtin-logger.ts"; describe("BuiltinLogger", () => { beforeEach(() => { diff --git a/express-zod-api/tests/common-helpers.spec.ts b/express-zod-api/tests/common-helpers.spec.ts index 6dc939c0a..15061b97c 100644 --- a/express-zod-api/tests/common-helpers.spec.ts +++ b/express-zod-api/tests/common-helpers.spec.ts @@ -12,11 +12,11 @@ import { emptySchema, EmptySchema, EmptyObject, -} from "../src/common-helpers"; +} from "../src/common-helpers.ts"; import { z } from "zod"; -import { makeRequestMock } from "../src/testing"; -import { methods } from "../src/method"; -import { CommonConfig, InputSources } from "../src/config-type"; +import { makeRequestMock } from "../src/testing.ts"; +import { methods } from "../src/method.ts"; +import { CommonConfig, InputSources } from "../src/config-type.ts"; describe("Common Helpers", () => { describe("emptySchema", () => { diff --git a/express-zod-api/tests/config-type.spec.ts b/express-zod-api/tests/config-type.spec.ts index ed45f6d90..6dd62d467 100644 --- a/express-zod-api/tests/config-type.spec.ts +++ b/express-zod-api/tests/config-type.spec.ts @@ -1,5 +1,5 @@ import { Express, IRouter } from "express"; -import { createConfig } from "../src"; +import { createConfig } from "../src/index.ts"; describe("ConfigType", () => { describe("createConfig()", () => { diff --git a/express-zod-api/tests/content-type.spec.ts b/express-zod-api/tests/content-type.spec.ts index 3e7415c1e..f379e862e 100644 --- a/express-zod-api/tests/content-type.spec.ts +++ b/express-zod-api/tests/content-type.spec.ts @@ -1,4 +1,4 @@ -import { contentTypes } from "../src/content-type"; +import { contentTypes } from "../src/content-type.ts"; describe("contentTypes", () => { test("should has predefined properties", () => { diff --git a/express-zod-api/tests/date-in-schema.spec.ts b/express-zod-api/tests/date-in-schema.spec.ts index 57d0d8dac..7bb64e2f9 100644 --- a/express-zod-api/tests/date-in-schema.spec.ts +++ b/express-zod-api/tests/date-in-schema.spec.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { ezDateInBrand } from "../src/date-in-schema"; -import { ez } from "../src"; +import { ezDateInBrand } from "../src/date-in-schema.ts"; +import { ez } from "../src/index.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; describe("ez.dateIn()", () => { diff --git a/express-zod-api/tests/date-out-schema.spec.ts b/express-zod-api/tests/date-out-schema.spec.ts index fab72dc78..85f722344 100644 --- a/express-zod-api/tests/date-out-schema.spec.ts +++ b/express-zod-api/tests/date-out-schema.spec.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { ezDateOutBrand } from "../src/date-out-schema"; -import { ez } from "../src"; +import { ezDateOutBrand } from "../src/date-out-schema.ts"; +import { ez } from "../src/index.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; describe("ez.dateOut()", () => { diff --git a/express-zod-api/tests/deep-checks.spec.ts b/express-zod-api/tests/deep-checks.spec.ts index 8308daf0b..19d3f9ed6 100644 --- a/express-zod-api/tests/deep-checks.spec.ts +++ b/express-zod-api/tests/deep-checks.spec.ts @@ -1,9 +1,9 @@ import { UploadedFile } from "express-fileupload"; import { z } from "zod"; -import { ez } from "../src"; -import { findNestedSchema, hasCycle } from "../src/deep-checks"; +import { ez } from "../src/index.ts"; +import { findNestedSchema, hasCycle } from "../src/deep-checks.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { ezUploadBrand } from "../src/upload-schema"; +import { ezUploadBrand } from "../src/upload-schema.ts"; describe("Checks", () => { describe("findNestedSchema()", () => { diff --git a/express-zod-api/tests/depends-on-method.spec.ts b/express-zod-api/tests/depends-on-method.spec.ts index 0b1f862a7..6eb6c8d69 100644 --- a/express-zod-api/tests/depends-on-method.spec.ts +++ b/express-zod-api/tests/depends-on-method.spec.ts @@ -3,8 +3,8 @@ import { DependsOnMethod, EndpointsFactory, defaultResultHandler, -} from "../src"; -import { AbstractEndpoint } from "../src/endpoint"; +} from "../src/index.ts"; +import { AbstractEndpoint } from "../src/endpoint.ts"; describe("DependsOnMethod", () => { test("should accept empty object", () => { diff --git a/express-zod-api/tests/documentation-helpers.spec.ts b/express-zod-api/tests/documentation-helpers.spec.ts index 2a11dc848..4e25945ac 100644 --- a/express-zod-api/tests/documentation-helpers.spec.ts +++ b/express-zod-api/tests/documentation-helpers.spec.ts @@ -1,7 +1,7 @@ import { SchemaObject } from "openapi3-ts/oas31"; import * as R from "ramda"; import { z } from "zod"; -import { ez } from "../src"; +import { ez } from "../src/index.ts"; import { OpenAPIContext, depictRequestParams, @@ -25,7 +25,7 @@ import { depictDateOut, depictBody, depictRequest, -} from "../src/documentation-helpers"; +} from "../src/documentation-helpers.ts"; describe("Documentation helpers", () => { const makeRefMock = vi.fn(); diff --git a/express-zod-api/tests/documentation.spec.ts b/express-zod-api/tests/documentation.spec.ts index 06b4e47f2..eb2ea79f7 100644 --- a/express-zod-api/tests/documentation.spec.ts +++ b/express-zod-api/tests/documentation.spec.ts @@ -11,10 +11,10 @@ import { ResultHandler, Depicter, Method, -} from "../src"; -import { contentTypes } from "../src/content-type"; +} from "../src/index.ts"; +import { contentTypes } from "../src/content-type.ts"; import { z } from "zod"; -import { givePort } from "../../tools/ports"; +import { givePort } from "../../tools/ports.ts"; import * as R from "ramda"; describe("Documentation", () => { diff --git a/express-zod-api/tests/endpoint.spec.ts b/express-zod-api/tests/endpoint.spec.ts index 886248f42..bab33d4a8 100644 --- a/express-zod-api/tests/endpoint.spec.ts +++ b/express-zod-api/tests/endpoint.spec.ts @@ -7,8 +7,8 @@ import { ez, testEndpoint, ResultHandler, -} from "../src"; -import { Endpoint } from "../src/endpoint"; +} from "../src/index.ts"; +import { Endpoint } from "../src/endpoint.ts"; describe("Endpoint", () => { describe(".methods", () => { diff --git a/express-zod-api/tests/endpoints-factory.spec.ts b/express-zod-api/tests/endpoints-factory.spec.ts index b3f2a9c58..b2432447d 100644 --- a/express-zod-api/tests/endpoints-factory.spec.ts +++ b/express-zod-api/tests/endpoints-factory.spec.ts @@ -7,9 +7,9 @@ import { defaultEndpointsFactory, ResultHandler, testMiddleware, -} from "../src"; -import { EmptyObject } from "../src/common-helpers"; -import { Endpoint } from "../src/endpoint"; +} from "../src/index.ts"; +import { EmptyObject } from "../src/common-helpers.ts"; +import { Endpoint } from "../src/endpoint.ts"; import { z } from "zod"; describe("EndpointsFactory", () => { diff --git a/express-zod-api/tests/errors.spec.ts b/express-zod-api/tests/errors.spec.ts index 1f7f911a9..1bb94b250 100644 --- a/express-zod-api/tests/errors.spec.ts +++ b/express-zod-api/tests/errors.spec.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { DocumentationError, RoutingError } from "../src"; +import { DocumentationError, RoutingError } from "../src/index.ts"; import { IOSchemaError, InputValidationError, @@ -7,7 +7,7 @@ import { OutputValidationError, ResultHandlerError, DeepCheckError, -} from "../src/errors"; +} from "../src/errors.ts"; describe("Errors", () => { const zodError = new z.ZodError([ diff --git a/express-zod-api/tests/form-schema.spec.ts b/express-zod-api/tests/form-schema.spec.ts index fe4ac34fb..4a7897b28 100644 --- a/express-zod-api/tests/form-schema.spec.ts +++ b/express-zod-api/tests/form-schema.spec.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { ez } from "../src"; -import { ezFormBrand } from "../src/form-schema"; +import { ez } from "../src/index.ts"; +import { ezFormBrand } from "../src/form-schema.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; describe("ez.form()", () => { diff --git a/express-zod-api/tests/graceful-helpers.spec.ts b/express-zod-api/tests/graceful-helpers.spec.ts index c75cbba95..f7db985ec 100644 --- a/express-zod-api/tests/graceful-helpers.spec.ts +++ b/express-zod-api/tests/graceful-helpers.spec.ts @@ -4,9 +4,9 @@ import { closeAsync, weAreClosed, isEncrypted, -} from "../src/graceful-helpers"; +} from "../src/graceful-helpers.ts"; import http from "node:http"; -import { makeRequestMock } from "../src/testing"; +import { makeRequestMock } from "../src/testing.ts"; import { Socket } from "node:net"; describe("Graceful helpers", () => { diff --git a/express-zod-api/tests/graceful-shutdown.spec.ts b/express-zod-api/tests/graceful-shutdown.spec.ts index e8824f2a9..d24b31a0d 100644 --- a/express-zod-api/tests/graceful-shutdown.spec.ts +++ b/express-zod-api/tests/graceful-shutdown.spec.ts @@ -3,9 +3,9 @@ import http from "node:http"; import https from "node:https"; import { Agent, fetch } from "undici"; import { setTimeout } from "node:timers/promises"; -import { monitor } from "../src/graceful-shutdown"; -import { givePort } from "../../tools/ports"; -import { signCert } from "./ssl-helpers"; +import { monitor } from "../src/graceful-shutdown.ts"; +import { givePort } from "../../tools/ports.ts"; +import { signCert } from "./ssl-helpers.ts"; describe("monitor()", () => { const makeHttpServer = (handler: http.RequestListener) => diff --git a/express-zod-api/tests/index.spec.ts b/express-zod-api/tests/index.spec.ts index 0ebd4cba0..c27db2249 100644 --- a/express-zod-api/tests/index.spec.ts +++ b/express-zod-api/tests/index.spec.ts @@ -1,7 +1,7 @@ import { IRouter } from "express"; import ts from "typescript"; import { z } from "zod"; -import * as entrypoint from "../src"; +import * as entrypoint from "../src/index.ts"; import { ApiResponse, AppConfig, @@ -21,7 +21,7 @@ import { Producer, Routing, ServerConfig, -} from "../src"; +} from "../src/index.ts"; describe("Index Entrypoint", () => { describe("exports", () => { diff --git a/express-zod-api/tests/integration.spec.ts b/express-zod-api/tests/integration.spec.ts index eb44ed47c..dcc267e8e 100644 --- a/express-zod-api/tests/integration.spec.ts +++ b/express-zod-api/tests/integration.spec.ts @@ -6,7 +6,7 @@ import { Producer, defaultEndpointsFactory, ResultHandler, -} from "../src"; +} from "../src/index.ts"; describe("Integration", () => { const recursive1: z.ZodType = z.lazy(() => diff --git a/express-zod-api/tests/io-schema.spec.ts b/express-zod-api/tests/io-schema.spec.ts index dde7e5600..ed68a5919 100644 --- a/express-zod-api/tests/io-schema.spec.ts +++ b/express-zod-api/tests/io-schema.spec.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { IOSchema, ez } from "../src"; -import { makeFinalInputSchema, ensureExtension } from "../src/io-schema"; +import { IOSchema, ez } from "../src/index.ts"; +import { makeFinalInputSchema, ensureExtension } from "../src/io-schema.ts"; describe("I/O Schema and related helpers", () => { describe("IOSchema", () => { diff --git a/express-zod-api/tests/json-schema-helpers.spec.ts b/express-zod-api/tests/json-schema-helpers.spec.ts index 2821dc9d2..10aa00ba6 100644 --- a/express-zod-api/tests/json-schema-helpers.spec.ts +++ b/express-zod-api/tests/json-schema-helpers.spec.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { flattenIO } from "../src/json-schema-helpers"; +import { flattenIO } from "../src/json-schema-helpers.ts"; describe("JSON Schema helpers", () => { describe("flattenIO()", () => { diff --git a/express-zod-api/tests/last-resort.spec.ts b/express-zod-api/tests/last-resort.spec.ts index 5057b27f1..5ce53f3d6 100644 --- a/express-zod-api/tests/last-resort.spec.ts +++ b/express-zod-api/tests/last-resort.spec.ts @@ -1,7 +1,7 @@ import createHttpError, { HttpError } from "http-errors"; -import { ResultHandlerError } from "../src/errors"; -import { lastResortHandler } from "../src/last-resort"; -import { makeLoggerMock, makeResponseMock } from "../src/testing"; +import { ResultHandlerError } from "../src/errors.ts"; +import { lastResortHandler } from "../src/last-resort.ts"; +import { makeLoggerMock, makeResponseMock } from "../src/testing.ts"; describe("Last Resort Handler", () => { test("should be a function", () => { diff --git a/express-zod-api/tests/logger-helpers.spec.ts b/express-zod-api/tests/logger-helpers.spec.ts index 4529f2cb5..889af56a9 100644 --- a/express-zod-api/tests/logger-helpers.spec.ts +++ b/express-zod-api/tests/logger-helpers.spec.ts @@ -1,5 +1,5 @@ -import { BuiltinLogger } from "../src"; -import { BuiltinLoggerConfig } from "../src/builtin-logger"; +import { BuiltinLogger } from "../src/index.ts"; +import { BuiltinLoggerConfig } from "../src/builtin-logger.ts"; import { AbstractLogger, isLoggerInstance, @@ -7,7 +7,7 @@ import { isHidden, makeNumberFormat, formatDuration, -} from "../src/logger-helpers"; +} from "../src/logger-helpers.ts"; describe("Logger helpers", () => { describe("isSeverity()", () => { diff --git a/express-zod-api/tests/logical-container.spec.ts b/express-zod-api/tests/logical-container.spec.ts index c39b1e602..01e50d2ca 100644 --- a/express-zod-api/tests/logical-container.spec.ts +++ b/express-zod-api/tests/logical-container.spec.ts @@ -1,4 +1,4 @@ -import { processContainers } from "../src/logical-container"; +import { processContainers } from "../src/logical-container.ts"; describe("LogicalContainer", () => { describe("processContainers()", () => { diff --git a/express-zod-api/tests/method.spec.ts b/express-zod-api/tests/method.spec.ts index 7bab93da7..e10042356 100644 --- a/express-zod-api/tests/method.spec.ts +++ b/express-zod-api/tests/method.spec.ts @@ -7,7 +7,7 @@ import { ClientMethod, SomeMethod, CORSMethod, -} from "../src/method"; +} from "../src/method.ts"; describe("Method", () => { describe("SomeMethod type", () => { diff --git a/express-zod-api/tests/middleware.spec.ts b/express-zod-api/tests/middleware.spec.ts index e5343847d..0cd7c3f2a 100644 --- a/express-zod-api/tests/middleware.spec.ts +++ b/express-zod-api/tests/middleware.spec.ts @@ -1,11 +1,11 @@ import { z } from "zod"; -import { InputValidationError, Middleware } from "../src"; -import { AbstractMiddleware, ExpressMiddleware } from "../src/middleware"; +import { InputValidationError, Middleware } from "../src/index.ts"; +import { AbstractMiddleware, ExpressMiddleware } from "../src/middleware.ts"; import { makeLoggerMock, makeRequestMock, makeResponseMock, -} from "../src/testing"; +} from "../src/testing.ts"; describe("Middleware", () => { describe("constructor()", () => { diff --git a/express-zod-api/tests/peer-helpers.spec.ts b/express-zod-api/tests/peer-helpers.spec.ts index 11d6f87f0..ac5b5af5e 100644 --- a/express-zod-api/tests/peer-helpers.spec.ts +++ b/express-zod-api/tests/peer-helpers.spec.ts @@ -1,5 +1,5 @@ -import { MissingPeerError } from "../src"; -import { loadPeer } from "../src/peer-helpers"; +import { MissingPeerError } from "../src/index.ts"; +import { loadPeer } from "../src/peer-helpers.ts"; describe("Peer loading helpers", () => { describe("loadPeer()", () => { diff --git a/express-zod-api/tests/raw-schema.spec.ts b/express-zod-api/tests/raw-schema.spec.ts index f0104ffad..547fced30 100644 --- a/express-zod-api/tests/raw-schema.spec.ts +++ b/express-zod-api/tests/raw-schema.spec.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import { ez } from "../src"; +import { ez } from "../src/index.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { ezRawBrand } from "../src/raw-schema"; +import { ezRawBrand } from "../src/raw-schema.ts"; describe("ez.raw()", () => { describe("creation", () => { diff --git a/express-zod-api/tests/result-handler.spec.ts b/express-zod-api/tests/result-handler.spec.ts index 2a094e680..8585ff412 100644 --- a/express-zod-api/tests/result-handler.spec.ts +++ b/express-zod-api/tests/result-handler.spec.ts @@ -6,14 +6,14 @@ import { arrayResultHandler, defaultResultHandler, ResultHandler, -} from "../src"; -import { ResultHandlerError } from "../src/errors"; -import { AbstractResultHandler, Result } from "../src/result-handler"; +} from "../src/index.ts"; +import { ResultHandlerError } from "../src/errors.ts"; +import { AbstractResultHandler, Result } from "../src/result-handler.ts"; import { makeLoggerMock, makeRequestMock, makeResponseMock, -} from "../src/testing"; +} from "../src/testing.ts"; describe("ResultHandler", () => { describe("constructor()", () => { diff --git a/express-zod-api/tests/result-helpers.spec.ts b/express-zod-api/tests/result-helpers.spec.ts index 50526c067..3837d8733 100644 --- a/express-zod-api/tests/result-helpers.spec.ts +++ b/express-zod-api/tests/result-helpers.spec.ts @@ -1,14 +1,14 @@ import createHttpError from "http-errors"; import { z } from "zod"; -import { InputValidationError, OutputValidationError } from "../src"; +import { InputValidationError, OutputValidationError } from "../src/index.ts"; import { ensureHttpError, getPublicErrorMessage, logServerError, normalize, pullResponseExamples, -} from "../src/result-helpers"; -import { makeLoggerMock, makeRequestMock } from "../src/testing"; +} from "../src/result-helpers.ts"; +import { makeLoggerMock, makeRequestMock } from "../src/testing.ts"; describe("Result helpers", () => { describe("normalize()", () => { diff --git a/express-zod-api/tests/routable.spec.ts b/express-zod-api/tests/routable.spec.ts index ac14ac457..6573fff4d 100644 --- a/express-zod-api/tests/routable.spec.ts +++ b/express-zod-api/tests/routable.spec.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { defaultEndpointsFactory, DependsOnMethod } from "../src"; +import { defaultEndpointsFactory, DependsOnMethod } from "../src/index.ts"; const endpoint = defaultEndpointsFactory.build({ output: z.object({}), diff --git a/express-zod-api/tests/routing.spec.ts b/express-zod-api/tests/routing.spec.ts index a37574bad..21ed597a1 100644 --- a/express-zod-api/tests/routing.spec.ts +++ b/express-zod-api/tests/routing.spec.ts @@ -3,7 +3,7 @@ import { expressMock, staticHandler, staticMock, -} from "./express-mock"; +} from "./express-mock.ts"; import { z } from "zod"; import { DependsOnMethod, @@ -12,13 +12,13 @@ import { ServeStatic, defaultResultHandler, ez, -} from "../src"; +} from "../src/index.ts"; import { makeLoggerMock, makeRequestMock, makeResponseMock, -} from "../src/testing"; -import { createWrongMethodHandler, initRouting } from "../src/routing"; +} from "../src/testing.ts"; +import { createWrongMethodHandler, initRouting } from "../src/routing.ts"; import type { IRouter, RequestHandler } from "express"; import createHttpError from "http-errors"; diff --git a/express-zod-api/tests/serve-static.spec.ts b/express-zod-api/tests/serve-static.spec.ts index bd75e24f0..1b6bb18a4 100644 --- a/express-zod-api/tests/serve-static.spec.ts +++ b/express-zod-api/tests/serve-static.spec.ts @@ -1,5 +1,5 @@ -import { staticMock, staticHandler } from "./express-mock"; -import { ServeStatic } from "../src"; +import { staticMock, staticHandler } from "./express-mock.ts"; +import { ServeStatic } from "../src/index.ts"; describe("ServeStatic", () => { describe("constructor()", () => { diff --git a/express-zod-api/tests/server-helpers.spec.ts b/express-zod-api/tests/server-helpers.spec.ts index e6b8c95f9..ffd78fe48 100644 --- a/express-zod-api/tests/server-helpers.spec.ts +++ b/express-zod-api/tests/server-helpers.spec.ts @@ -1,5 +1,5 @@ import { fail } from "node:assert/strict"; -import { fileUploadMock } from "./express-mock"; +import { fileUploadMock } from "./express-mock.ts"; import { createLoggingMiddleware, createNotFoundHandler, @@ -12,14 +12,18 @@ import { installDeprecationListener, installTerminationListener, localsID, -} from "../src/server-helpers"; -import { CommonConfig, defaultResultHandler, ResultHandler } from "../src"; +} from "../src/server-helpers.ts"; +import { + CommonConfig, + defaultResultHandler, + ResultHandler, +} from "../src/index.ts"; import { Request } from "express"; import { makeLoggerMock, makeRequestMock, makeResponseMock, -} from "../src/testing"; +} from "../src/testing.ts"; import createHttpError from "http-errors"; describe("Server helpers", () => { diff --git a/express-zod-api/tests/server.spec.ts b/express-zod-api/tests/server.spec.ts index 0a2631dc3..398e0786b 100644 --- a/express-zod-api/tests/server.spec.ts +++ b/express-zod-api/tests/server.spec.ts @@ -1,5 +1,5 @@ -import { moveRaw } from "../src/server-helpers"; -import { givePort } from "../../tools/ports"; +import { moveRaw } from "../src/server-helpers.ts"; +import { givePort } from "../../tools/ports.ts"; import { appMock, compressionMock, @@ -7,12 +7,12 @@ import { expressUrlencodedMock, expressMock, expressRawMock, -} from "./express-mock"; +} from "./express-mock.ts"; import { createHttpsServerSpy, httpListenSpy, httpsListenSpy, -} from "./http-mock"; +} from "./http-mock.ts"; import { z } from "zod"; import { AppConfig, @@ -23,7 +23,7 @@ import { createServer, defaultResultHandler, ez, -} from "../src"; +} from "../src/index.ts"; import express from "express"; describe("Server", () => { diff --git a/express-zod-api/tests/sse.spec.ts b/express-zod-api/tests/sse.spec.ts index b3d805212..5260defb1 100644 --- a/express-zod-api/tests/sse.spec.ts +++ b/express-zod-api/tests/sse.spec.ts @@ -7,7 +7,7 @@ import { testMiddleware, EventStreamFactory, EndpointsFactory, -} from "../src"; +} from "../src/index.ts"; import { Emitter, ensureStream, @@ -15,13 +15,13 @@ import { makeEventSchema, makeMiddleware, makeResultHandler, -} from "../src/sse"; +} from "../src/sse.ts"; import { makeLoggerMock, makeRequestMock, makeResponseMock, -} from "../src/testing"; -import { AbstractEndpoint } from "../src/endpoint"; +} from "../src/testing.ts"; +import { AbstractEndpoint } from "../src/endpoint.ts"; describe("SSE", () => { describe("makeEventSchema()", () => { diff --git a/express-zod-api/tests/startup-logo.spec.ts b/express-zod-api/tests/startup-logo.spec.ts index 7c795ffc5..140c4b1a5 100644 --- a/express-zod-api/tests/startup-logo.spec.ts +++ b/express-zod-api/tests/startup-logo.spec.ts @@ -1,5 +1,5 @@ import { WriteStream } from "node:tty"; -import { printStartupLogo } from "../src/startup-logo"; +import { printStartupLogo } from "../src/startup-logo.ts"; describe("Startup logo", () => { describe("printStartupLogo()", () => { diff --git a/express-zod-api/tests/system.spec.ts b/express-zod-api/tests/system.spec.ts index b53dd86e2..7b76d19ed 100644 --- a/express-zod-api/tests/system.spec.ts +++ b/express-zod-api/tests/system.spec.ts @@ -13,8 +13,8 @@ import { BuiltinLogger, Middleware, ez, -} from "../src"; -import { givePort } from "../../tools/ports"; +} from "../src/index.ts"; +import { givePort } from "../../tools/ports.ts"; import { setTimeout } from "node:timers/promises"; describe("App in production mode", async () => { diff --git a/express-zod-api/tests/testing.spec.ts b/express-zod-api/tests/testing.spec.ts index 41e96b6ba..65b9e4841 100644 --- a/express-zod-api/tests/testing.spec.ts +++ b/express-zod-api/tests/testing.spec.ts @@ -6,7 +6,7 @@ import { ResultHandler, testEndpoint, testMiddleware, -} from "../src"; +} from "../src/index.ts"; import type { Mock } from "vitest"; describe("Testing", () => { diff --git a/express-zod-api/tests/upload-schema.spec.ts b/express-zod-api/tests/upload-schema.spec.ts index d6c4f671a..2223cd22b 100644 --- a/express-zod-api/tests/upload-schema.spec.ts +++ b/express-zod-api/tests/upload-schema.spec.ts @@ -1,7 +1,7 @@ import { z } from "zod"; -import { ez } from "../src"; +import { ez } from "../src/index.ts"; import { getBrand } from "@express-zod-api/zod-plugin"; -import { ezUploadBrand } from "../src/upload-schema"; +import { ezUploadBrand } from "../src/upload-schema.ts"; describe("ez.upload()", () => { describe("creation", () => { diff --git a/express-zod-api/tests/zts.spec.ts b/express-zod-api/tests/zts.spec.ts index 218aeab24..63fa4bbc8 100644 --- a/express-zod-api/tests/zts.spec.ts +++ b/express-zod-api/tests/zts.spec.ts @@ -1,9 +1,9 @@ import ts from "typescript"; import { z } from "zod"; -import { ez } from "../src"; -import { f, printNode } from "../src/typescript-api"; -import { zodToTs } from "../src/zts"; -import { ZTSContext } from "../src/zts-helpers"; +import { ez } from "../src/index.ts"; +import { f, printNode } from "../src/typescript-api.ts"; +import { zodToTs } from "../src/zts.ts"; +import { ZTSContext } from "../src/zts-helpers.ts"; describe("zod-to-ts", () => { const printNodeTest = (node: ts.Node) => diff --git a/express-zod-api/tsconfig.json b/express-zod-api/tsconfig.json index 0060968ca..ed9aa1ff7 100644 --- a/express-zod-api/tsconfig.json +++ b/express-zod-api/tsconfig.json @@ -1,9 +1,6 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler", - "resolveJsonModule": true, "stripInternal": true }, "include": [ diff --git a/express-zod-api/tsdown.config.ts b/express-zod-api/tsdown.config.ts index 948b510d6..25465a6cc 100644 --- a/express-zod-api/tsdown.config.ts +++ b/express-zod-api/tsdown.config.ts @@ -1,14 +1,13 @@ import { defineConfig } from "tsdown"; -import { readFile } from "node:fs/promises"; - -const { version } = JSON.parse(await readFile("./package.json", "utf8")); +import manifest from "./package.json" with { type: "json" }; export default defineConfig({ entry: "src/index.ts", minify: true, attw: { profile: "esmOnly", level: "error" }, define: { - "process.env.TSDOWN_BUILD": `"v${version}"`, // @since v25.0.0 is pure ESM + "process.env.TSDOWN_SELF": `"${manifest.name}"`, // used by localsID + "process.env.TSDOWN_BUILD": `"v${manifest.version}"`, // @since v25.0.0 is pure ESM "process.env.TSDOWN_STATIC": `"static"`, // used by isProduction() }, }); diff --git a/express-zod-api/vitest.setup.ts b/express-zod-api/vitest.setup.ts index c0bb84b39..68c6ecc4b 100644 --- a/express-zod-api/vitest.setup.ts +++ b/express-zod-api/vitest.setup.ts @@ -1,7 +1,7 @@ import { getBrand } from "@express-zod-api/zod-plugin"; import type { NewPlugin } from "@vitest/pretty-format"; import { z } from "zod"; -import { ResultHandlerError } from "./src/errors"; +import { ResultHandlerError } from "./src/errors.ts"; /** Takes cause and certain props of custom errors into account */ const errorSerializer: NewPlugin = { diff --git a/migration/index.spec.ts b/migration/index.spec.ts index f4b099d27..f5b8a4ed9 100644 --- a/migration/index.spec.ts +++ b/migration/index.spec.ts @@ -1,7 +1,7 @@ import { RuleTester } from "@typescript-eslint/rule-tester"; -import migration from "./index"; +import migration from "./index.ts"; import parser from "@typescript-eslint/parser"; -import { version } from "./package.json"; +import manifest from "./package.json" with { type: "json" }; RuleTester.afterAll = afterAll; RuleTester.describe = describe; @@ -11,13 +11,16 @@ const tester = new RuleTester({ languageOptions: { parser }, }); +const ruleName = `v${manifest.version.split(".")[0]}`; +const theRule = migration.rules[ruleName as keyof typeof migration.rules]; + describe("Migration", () => { test("should consist of one rule being the major version of the package", () => { - expect(migration.rules).toHaveProperty(`v${version.split(".")[0]}`); + expect(migration.rules).toHaveProperty(ruleName); expect(migration).toMatchSnapshot(); }); - tester.run("v25", migration.rules.v25, { + tester.run(ruleName, theRule, { valid: [ `import {} from "zod";`, `ez.dateIn({ examples: ["1963-04-21"] });`, diff --git a/migration/tsconfig.json b/migration/tsconfig.json index 751548b23..3c43903cf 100644 --- a/migration/tsconfig.json +++ b/migration/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler", - "resolveJsonModule": true - } + "extends": "../tsconfig.json" } diff --git a/tools/license.ts b/tools/license.ts index 857db55fd..e264b388c 100644 --- a/tools/license.ts +++ b/tools/license.ts @@ -1,5 +1,5 @@ import { writeFile } from "node:fs/promises"; -import manifest from "../express-zod-api/package.json"; +import manifest from "../express-zod-api/package.json" with { type: "json" }; const text = ` MIT License diff --git a/tools/make-tests.ts b/tools/make-tests.ts index 3a65a1d3a..99cbd8eb3 100644 --- a/tools/make-tests.ts +++ b/tools/make-tests.ts @@ -1,6 +1,6 @@ import assert from "node:assert/strict"; import { readFile, writeFile } from "node:fs/promises"; -import { givePort } from "./ports"; +import { givePort } from "./ports.ts"; const extractQuickStartFromReadme = async () => { const readme = await readFile("README.md", "utf-8"); @@ -16,7 +16,7 @@ const extractQuickStartFromReadme = async () => { const quickStart = await extractQuickStartFromReadme(); const program = ` -import { givePort } from "../tools/ports"; +import { givePort } from "../tools/ports.ts"; ${quickStart} `; diff --git a/tools/tsconfig.json b/tools/tsconfig.json deleted file mode 100644 index 751548b23..000000000 --- a/tools/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler", - "resolveJsonModule": true - } -} diff --git a/tsconfig.json b/tsconfig.json index f4311105c..72b22292a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,13 @@ { "extends": "@tsconfig/node20/tsconfig.json", "compilerOptions": { + "module": "node20", + "target": "es2023", + "allowImportingTsExtensions": true, "noImplicitAny": true, "noImplicitOverride": true, "noUncheckedSideEffectImports": true, + "resolveJsonModule": true, "types": ["vitest/globals"] } } diff --git a/zod-plugin/src/augmentation.ts b/zod-plugin/src/augmentation.ts index 2bd82ee97..9b3b79de1 100644 --- a/zod-plugin/src/augmentation.ts +++ b/zod-plugin/src/augmentation.ts @@ -1,5 +1,5 @@ import type { z } from "zod"; -import type { Intact, Remap } from "./remap"; +import type { Intact, Remap } from "./remap.ts"; declare module "zod/v4/core" { interface GlobalMeta { diff --git a/zod-plugin/src/brand.ts b/zod-plugin/src/brand.ts index ba72d325f..3ba85fdc4 100644 --- a/zod-plugin/src/brand.ts +++ b/zod-plugin/src/brand.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { pack, unpack } from "./packer"; +import { pack, unpack } from "./packer.ts"; /** The property within schema._zod.bag where we store the brand */ export const brandProperty = "brand" as const; diff --git a/zod-plugin/src/index.ts b/zod-plugin/src/index.ts index 057940f97..26e46215c 100644 --- a/zod-plugin/src/index.ts +++ b/zod-plugin/src/index.ts @@ -1,3 +1,3 @@ -import "./runtime"; // side effects here -export { pack, unpack } from "./packer"; -export { getBrand } from "./brand"; +import "./runtime.ts"; // side effects here +export { pack, unpack } from "./packer.ts"; +export { getBrand } from "./brand.ts"; diff --git a/zod-plugin/src/runtime.ts b/zod-plugin/src/runtime.ts index ff0a8be3a..11dd57c64 100644 --- a/zod-plugin/src/runtime.ts +++ b/zod-plugin/src/runtime.ts @@ -1,7 +1,6 @@ import { globalRegistry, z } from "zod"; -import { name } from "../package.json"; -import { setBrand } from "./brand"; -import { remap } from "./remap"; +import { setBrand } from "./brand.ts"; +import { remap } from "./remap.ts"; const exampleSetter = function (this: z.ZodType, value: z.output) { const examples = globalRegistry.get(this)?.examples?.slice() || []; @@ -17,7 +16,8 @@ const labelSetter = function (this: z.ZodDefault, defaultLabel: string) { return this.meta({ default: defaultLabel }); }; -const pluginFlag = Symbol.for(name); +// eslint-disable-next-line no-restricted-syntax -- substituted by TSDOWN +const pluginFlag = Symbol.for(process.env.TSDOWN_SELF!); if (!(pluginFlag in globalThis)) { (globalThis as Record)[pluginFlag] = true; diff --git a/zod-plugin/tests/brand.spec.ts b/zod-plugin/tests/brand.spec.ts index 362a97bf5..123fd2d59 100644 --- a/zod-plugin/tests/brand.spec.ts +++ b/zod-plugin/tests/brand.spec.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { brandProperty, getBrand, setBrand } from "../src/brand"; -import * as packer from "../src/packer"; +import { brandProperty, getBrand, setBrand } from "../src/brand.ts"; +import * as packer from "../src/packer.ts"; describe("Brand", () => { describe("brandProperty", () => { diff --git a/zod-plugin/tests/index.spec.ts b/zod-plugin/tests/index.spec.ts index 90bb50e9a..bb7ef7e4b 100644 --- a/zod-plugin/tests/index.spec.ts +++ b/zod-plugin/tests/index.spec.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import * as entrypoint from "../src"; +import * as entrypoint from "../src/index.ts"; describe("Entrypoint", () => { test("Augmentation", () => { diff --git a/zod-plugin/tests/packer.spec.ts b/zod-plugin/tests/packer.spec.ts index 0fce7ebca..518762345 100644 --- a/zod-plugin/tests/packer.spec.ts +++ b/zod-plugin/tests/packer.spec.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { pack, unpack } from "../src"; +import { pack, unpack } from "../src/index.ts"; describe("Packer", () => { describe("pack()", () => { diff --git a/zod-plugin/tests/runtime.spec.ts b/zod-plugin/tests/runtime.spec.ts index 2d09c31bd..2ce2f0acd 100644 --- a/zod-plugin/tests/runtime.spec.ts +++ b/zod-plugin/tests/runtime.spec.ts @@ -1,6 +1,6 @@ import camelize from "camelize-ts"; import { z } from "zod"; -import { getBrand } from "../src"; +import { getBrand } from "../src/index.ts"; describe("Zod Runtime Plugin", () => { describe(".example()", () => { diff --git a/zod-plugin/tsconfig.json b/zod-plugin/tsconfig.json index e6ea3b76f..37140dfcc 100644 --- a/zod-plugin/tsconfig.json +++ b/zod-plugin/tsconfig.json @@ -1,9 +1,4 @@ { "extends": "../tsconfig.json", - "compilerOptions": { - "module": "ES2022", - "moduleResolution": "Bundler", - "resolveJsonModule": true - }, "exclude": ["dist"] } diff --git a/zod-plugin/tsdown.config.ts b/zod-plugin/tsdown.config.ts index aed008380..6591cabc2 100644 --- a/zod-plugin/tsdown.config.ts +++ b/zod-plugin/tsdown.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "tsdown"; +import manifest from "./package.json" with { type: "json" }; export default defineConfig([ { @@ -8,6 +9,9 @@ export default defineConfig([ banner: { dts: "import './augmentation.js';", }, + define: { + "process.env.TSDOWN_SELF": `"${manifest.name}"`, // used by pluginFlag + }, }, { entry: "src/augmentation.ts", diff --git a/zod-plugin/vitest.setup.ts b/zod-plugin/vitest.setup.ts index 7276f4cab..cef815f1f 100644 --- a/zod-plugin/vitest.setup.ts +++ b/zod-plugin/vitest.setup.ts @@ -1 +1 @@ -import "./src/runtime"; +import "./src/runtime.ts";