temba 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/config/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Router } from 'express';
2
- import type { ConfiguredSchemas } from '../schema/types';
3
- import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
4
- import { ResponseBodyInterceptor } from '../responseBodyInterceptor/types';
2
+ import type { ConfiguredSchemas } from '../schema/types.js';
3
+ import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
4
+ import { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
5
5
  export type Config = {
6
6
  validateResources: boolean;
7
7
  resources: string[];
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { UserConfig } from './config';
1
+ import type { UserConfig } from './config/index.js';
2
2
  export declare const create: (userConfig?: UserConfig) => {
3
3
  start: () => void;
4
4
  Express: import("express-serve-static-core").Express | undefined;
package/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import express, { json } from 'express';
2
2
  import morgan from 'morgan';
3
- import { createQueries } from './queries/queries';
4
- import { initConfig } from './config';
3
+ import { createQueries } from './queries/queries.js';
4
+ import { initConfig } from './config/index.js';
5
5
  import cors from 'cors';
6
- import { createDelayMiddleware } from './delay/delayMiddleware';
7
- import { compileSchemas } from './schema/compile';
8
- import { createResourceRouter } from './resourceRouter';
6
+ import { createDelayMiddleware } from './delay/delayMiddleware.js';
7
+ import { compileSchemas } from './schema/compile.js';
8
+ import { createResourceRouter } from './resourceRouter.js';
9
9
  const createServer = (userConfig) => {
10
10
  const config = initConfig(userConfig);
11
11
  const queries = createQueries(config.connectionString);
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "temba",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "Get a simple MongoDB REST API with zero coding in less than 30 seconds (seriously).",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
7
7
  "scripts": {
8
- "build": "rm -rf dist && tsc && cp package.json README.md ./dist/src",
8
+ "build": "rm -rf dist && tsc && tsc-alias && cp package.json README.md ./dist/src",
9
9
  "test": "vitest",
10
10
  "test:watch": "vitest --watch",
11
11
  "lint": "eslint --ignore-path .gitignore --ext .js,.ts .",
@@ -30,6 +30,7 @@
30
30
  "prettier": "^3.2.5",
31
31
  "supertest": "^6.3.4",
32
32
  "ts-node": "^10.9.2",
33
+ "tsc-alias": "^1.8.8",
33
34
  "typescript": "^5.4.2",
34
35
  "vitest": "^1.4.0"
35
36
  },
@@ -1,3 +1,3 @@
1
- import { Queries } from './types';
1
+ import { Queries } from './types.js';
2
2
  export declare const inMemoryQueries: Queries;
3
3
  //# sourceMappingURL=in-memory.d.ts.map
@@ -1,3 +1,3 @@
1
- import { Queries } from './types';
1
+ import { Queries } from './types.js';
2
2
  export declare const createMongoQueries: (connectionString: string) => Queries;
3
3
  //# sourceMappingURL=mongo.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const createQueries: (connectionString: string | null) => import("./types").Queries;
1
+ export declare const createQueries: (connectionString: string | null) => import("./types.js").Queries;
2
2
  //# sourceMappingURL=queries.d.ts.map
@@ -1,5 +1,5 @@
1
- import { inMemoryQueries } from './in-memory';
2
- import { createMongoQueries } from './mongo';
1
+ import { inMemoryQueries } from './in-memory.js';
2
+ import { createMongoQueries } from './mongo.js';
3
3
  export const createQueries = (connectionString) => {
4
4
  if (!connectionString) {
5
5
  return inMemoryQueries;
@@ -1,3 +1,3 @@
1
- import type { RequestBodyInterceptorCallback } from './types';
1
+ import type { RequestBodyInterceptorCallback } from './types.js';
2
2
  export declare const interceptRequestBody: (intercept: RequestBodyInterceptorCallback, resource: string, body: unknown) => unknown;
3
3
  //# sourceMappingURL=interceptRequestBody.d.ts.map
@@ -1,5 +1,5 @@
1
- import type { Queries } from '../queries/types';
2
- import type { DeleteRequest } from './types';
1
+ import type { Queries } from '../queries/types.js';
2
+ import type { DeleteRequest } from './types.js';
3
3
  export declare const createDeleteRoutes: (queries: Queries) => (req: DeleteRequest) => Promise<{
4
4
  status: number;
5
5
  body?: undefined;
@@ -1,6 +1,6 @@
1
- import type { Queries } from '../queries/types';
2
- import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types';
3
- import type { GetRequest } from './types';
1
+ import type { Queries } from '../queries/types.js';
2
+ import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
3
+ import type { GetRequest } from './types.js';
4
4
  export declare const createGetRoutes: (queries: Queries, cacheControl: string, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean) => (req: GetRequest) => Promise<{
5
5
  status: number;
6
6
  body: unknown;
@@ -1,5 +1,5 @@
1
- import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody';
2
- import { removeNullFields } from './utils';
1
+ import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
2
+ import { removeNullFields } from './utils.js';
3
3
  export const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnNullFields) => {
4
4
  const defaultResponse = { headers: { 'Cache-control': cacheControl } };
5
5
  const responseOk = (body) => ({ ...defaultResponse, status: 200, body });
@@ -1,8 +1,8 @@
1
- import type { RouterConfig } from '../config';
2
- import type { CompiledSchemas } from '../schema/types';
3
- import type { Queries } from '../queries/types';
1
+ import type { RouterConfig } from '../config/index.js';
2
+ import type { CompiledSchemas } from '../schema/types.js';
3
+ import type { Queries } from '../queries/types.js';
4
4
  export declare const getRequestHandler: (queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig) => {
5
- handleGet: (req: import("./types").GetRequest) => Promise<{
5
+ handleGet: (req: import("./types.js").GetRequest) => Promise<{
6
6
  status: number;
7
7
  body: unknown;
8
8
  headers: {
@@ -20,7 +20,7 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
20
20
  message: string;
21
21
  };
22
22
  }>;
23
- handlePost: (req: import("./types").PostRequest) => Promise<{
23
+ handlePost: (req: import("./types.js").PostRequest) => Promise<{
24
24
  status: number;
25
25
  body: {
26
26
  message: string;
@@ -33,15 +33,15 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
33
33
  status: number;
34
34
  body: unknown;
35
35
  }>;
36
- handlePut: (req: import("./types").PutRequest) => Promise<{
36
+ handlePut: (req: import("./types.js").PutRequest) => Promise<{
37
37
  status: number;
38
38
  body: unknown;
39
39
  }>;
40
- handlePatch: (req: import("./types").PutRequest) => Promise<{
40
+ handlePatch: (req: import("./types.js").PutRequest) => Promise<{
41
41
  status: number;
42
42
  body: unknown;
43
43
  }>;
44
- handleDelete: (req: import("./types").DeleteRequest) => Promise<{
44
+ handleDelete: (req: import("./types.js").DeleteRequest) => Promise<{
45
45
  status: number;
46
46
  body?: undefined;
47
47
  } | {
@@ -1,8 +1,8 @@
1
- import { createGetRoutes } from './get';
2
- import { createPostRoutes } from './post';
3
- import { createPutRoutes } from './put';
4
- import { createPatchRoutes } from './patch';
5
- import { createDeleteRoutes } from './delete';
1
+ import { createGetRoutes } from './get.js';
2
+ import { createPostRoutes } from './post.js';
3
+ import { createPutRoutes } from './put.js';
4
+ import { createPatchRoutes } from './patch.js';
5
+ import { createDeleteRoutes } from './delete.js';
6
6
  export const getRequestHandler = (queries, schemas, routerConfig) => {
7
7
  const { cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields } = routerConfig;
8
8
  const handleGet = createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnNullFields);
@@ -1,7 +1,7 @@
1
- import type { ValidateFunctionPerResource } from '../schema/types';
2
- import type { PatchRequest } from './types';
3
- import type { Queries } from '../queries/types';
4
- import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
1
+ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
+ import type { PatchRequest } from './types.js';
3
+ import type { Queries } from '../queries/types.js';
4
+ import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
5
5
  export declare const createPatchRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null) => (req: PatchRequest) => Promise<{
6
6
  status: number;
7
7
  body: unknown;
@@ -1,6 +1,6 @@
1
- import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
2
- import { validate } from '../schema/validate';
3
- import { removeNullFields } from './utils';
1
+ import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
2
+ import { validate } from '../schema/validate.js';
3
+ import { removeNullFields } from './utils.js';
4
4
  export const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
5
5
  const handlePatch = async (req) => {
6
6
  try {
@@ -1,7 +1,7 @@
1
- import type { ValidateFunctionPerResource } from '../schema/types';
2
- import type { PostRequest } from './types';
3
- import type { Queries } from '../queries/types';
4
- import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
1
+ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
+ import type { PostRequest } from './types.js';
3
+ import type { Queries } from '../queries/types.js';
4
+ import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
5
5
  export declare const createPostRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource) => (req: PostRequest) => Promise<{
6
6
  status: number;
7
7
  body: {
@@ -1,7 +1,7 @@
1
1
  import { format } from 'url';
2
- import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
3
- import { removeNullFields } from './utils';
4
- import { validate } from '../schema/validate';
2
+ import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
3
+ import { removeNullFields } from './utils.js';
4
+ import { validate } from '../schema/validate.js';
5
5
  export const createPostRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
6
6
  const handlePost = async (req) => {
7
7
  try {
@@ -1,7 +1,7 @@
1
- import type { ValidateFunctionPerResource } from '../schema/types';
2
- import type { PutRequest } from './types';
3
- import type { Queries } from '../queries/types';
4
- import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
1
+ import type { ValidateFunctionPerResource } from '../schema/types.js';
2
+ import type { PutRequest } from './types.js';
3
+ import type { Queries } from '../queries/types.js';
4
+ import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
5
5
  export declare const createPutRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null) => (req: PutRequest) => Promise<{
6
6
  status: number;
7
7
  body: unknown;
@@ -1,6 +1,6 @@
1
- import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
2
- import { validate } from '../schema/validate';
3
- import { removeNullFields } from './utils';
1
+ import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
2
+ import { validate } from '../schema/validate.js';
3
+ import { removeNullFields } from './utils.js';
4
4
  export const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
5
5
  const handlePut = async (req) => {
6
6
  try {
@@ -1,5 +1,5 @@
1
- import { Queries } from './queries/types';
2
- import { CompiledSchemas } from './schema/types';
3
- import { RouterConfig } from './config';
1
+ import { Queries } from './queries/types.js';
2
+ import { CompiledSchemas } from './schema/types.js';
3
+ import { RouterConfig } from './config/index.js';
4
4
  export declare const createResourceRouter: (queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig) => import("express-serve-static-core").Router;
5
5
  //# sourceMappingURL=resourceRouter.d.ts.map
package/resourceRouter.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
- import { getRequestHandler } from './requestHandlers';
3
- import { parseUrl } from './urls/urlParser';
2
+ import { getRequestHandler } from './requestHandlers/index.js';
3
+ import { parseUrl } from './urls/urlParser.js';
4
4
  export const createResourceRouter = (queries, schemas, routerConfig) => {
5
5
  const getUrlInfo = (baseUrl) => {
6
6
  const url = routerConfig.apiPrefix ? baseUrl.replace(routerConfig.apiPrefix, '') : baseUrl;
@@ -1,3 +1,3 @@
1
- import { InterceptedResponse, ResponseBodyInterceptor } from './types';
1
+ import { InterceptedResponse, ResponseBodyInterceptor } from './types.js';
2
2
  export declare const interceptResponseBody: (interceptor: ResponseBodyInterceptor, info: InterceptedResponse) => {};
3
3
  //# sourceMappingURL=interceptResponseBody.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Item } from '../queries/types';
1
+ import { Item } from '../queries/types.js';
2
2
  export type InterceptedResponse = {
3
3
  body: Item;
4
4
  resource: string;
@@ -1,3 +1,3 @@
1
- import { CompiledSchemas, ConfiguredSchemas } from './types';
1
+ import { CompiledSchemas, ConfiguredSchemas } from './types.js';
2
2
  export declare const compileSchemas: (configuredSchemas: ConfiguredSchemas | null) => CompiledSchemas;
3
3
  //# sourceMappingURL=compile.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { ValidateFunction } from 'ajv';
2
- import { ValidationResult } from './types';
2
+ import { ValidationResult } from './types.js';
3
3
  export declare const validate: (body: unknown, validate?: ValidateFunction<unknown>) => ValidationResult;
4
4
  //# sourceMappingURL=validate.d.ts.map