@visulima/crud 2.0.46 → 3.0.0-alpha.10

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.
Files changed (137) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/LICENSE.md +22 -1
  3. package/README.md +29 -18
  4. package/dist/adapter/prisma/index.d.cts +39 -0
  5. package/dist/adapter/prisma/index.d.mts +39 -0
  6. package/dist/adapter/prisma/index.d.ts +39 -0
  7. package/dist/adapter/prisma/types.d.cts +31 -0
  8. package/dist/adapter/prisma/types.d.mts +31 -0
  9. package/dist/adapter/prisma/types.d.ts +31 -0
  10. package/dist/adapter/prisma/utils/models-to-route-names.d.cts +5 -0
  11. package/dist/adapter/prisma/utils/models-to-route-names.d.mts +5 -0
  12. package/dist/adapter/prisma/utils/models-to-route-names.d.ts +5 -0
  13. package/dist/adapter/prisma/utils/parse-cursor.d.cts +3 -0
  14. package/dist/adapter/prisma/utils/parse-cursor.d.mts +3 -0
  15. package/dist/adapter/prisma/utils/parse-cursor.d.ts +3 -0
  16. package/dist/adapter/prisma/utils/parse-order-by.d.cts +4 -0
  17. package/dist/adapter/prisma/utils/parse-order-by.d.mts +4 -0
  18. package/dist/adapter/prisma/utils/parse-order-by.d.ts +4 -0
  19. package/dist/adapter/prisma/utils/parse-recursive.d.cts +4 -0
  20. package/dist/adapter/prisma/utils/parse-recursive.d.mts +4 -0
  21. package/dist/adapter/prisma/utils/parse-recursive.d.ts +4 -0
  22. package/dist/adapter/prisma/utils/parse-where.d.cts +4 -0
  23. package/dist/adapter/prisma/utils/parse-where.d.mts +4 -0
  24. package/dist/adapter/prisma/utils/parse-where.d.ts +4 -0
  25. package/dist/base-crud-handler.d.cts +9 -0
  26. package/dist/base-crud-handler.d.mts +9 -0
  27. package/dist/base-crud-handler.d.ts +9 -0
  28. package/dist/handler/create.d.cts +11 -0
  29. package/dist/handler/create.d.mts +11 -0
  30. package/dist/handler/create.d.ts +11 -0
  31. package/dist/handler/delete.d.cts +7 -0
  32. package/dist/handler/delete.d.mts +7 -0
  33. package/dist/handler/delete.d.ts +7 -0
  34. package/dist/handler/list.d.cts +9 -0
  35. package/dist/handler/list.d.mts +9 -0
  36. package/dist/handler/list.d.ts +9 -0
  37. package/dist/handler/read.d.cts +7 -0
  38. package/dist/handler/read.d.mts +7 -0
  39. package/dist/handler/read.d.ts +7 -0
  40. package/dist/handler/update.d.cts +11 -0
  41. package/dist/handler/update.d.mts +11 -0
  42. package/dist/handler/update.d.ts +11 -0
  43. package/dist/index.cjs +13 -0
  44. package/dist/index.d.cts +6 -0
  45. package/dist/index.d.mts +6 -127
  46. package/dist/index.d.ts +6 -127
  47. package/dist/index.mjs +3 -1085
  48. package/dist/next/api/edge/index.d.cts +3 -0
  49. package/dist/next/api/edge/index.d.mts +3 -0
  50. package/dist/next/api/edge/index.d.ts +3 -0
  51. package/dist/next/api/node/index.d.cts +4 -0
  52. package/dist/next/api/node/index.d.mts +4 -0
  53. package/dist/next/api/node/index.d.ts +4 -0
  54. package/dist/next/index.cjs +11 -0
  55. package/dist/next/index.d.cts +2 -0
  56. package/dist/next/index.d.mts +2 -8
  57. package/dist/next/index.d.ts +2 -8
  58. package/dist/next/index.mjs +2 -4832
  59. package/dist/packem_shared/PrismaAdapter-BTCwgMow.cjs +324 -0
  60. package/dist/packem_shared/PrismaAdapter-dVBZvBOv.mjs +318 -0
  61. package/dist/packem_shared/RouteType-Bk3uAK0x.cjs +14 -0
  62. package/dist/packem_shared/RouteType-CB2xrWdf.mjs +10 -0
  63. package/dist/packem_shared/base-crud-handler-B3eCO4up.cjs +572 -0
  64. package/dist/packem_shared/base-crud-handler-DgrOMhoH.mjs +587 -0
  65. package/dist/packem_shared/edgeHandler-B4JJXPUI.mjs +16 -0
  66. package/dist/packem_shared/edgeHandler-CDFgDdrG.cjs +18 -0
  67. package/dist/packem_shared/get-accessible-routes-C6NF9Iry.cjs +16 -0
  68. package/dist/packem_shared/get-accessible-routes-sV5SDdFn.mjs +14 -0
  69. package/dist/packem_shared/models-to-route-names-CdwsK0V1.mjs +9 -0
  70. package/dist/packem_shared/models-to-route-names-Dv94PzhE.cjs +11 -0
  71. package/dist/{index.js → packem_shared/modelsToOpenApi-BuGL_l3R.cjs} +66 -453
  72. package/dist/packem_shared/modelsToOpenApi-Bux3khmh.mjs +706 -0
  73. package/dist/packem_shared/nodeHandler-BUWSKNyo.cjs +16 -0
  74. package/dist/packem_shared/nodeHandler-DSq7vHzv.mjs +14 -0
  75. package/dist/query-parser.d.cts +3 -0
  76. package/dist/query-parser.d.mts +3 -0
  77. package/dist/query-parser.d.ts +3 -0
  78. package/dist/swagger/adapter/prisma/index.d.cts +22 -0
  79. package/dist/swagger/adapter/prisma/index.d.mts +22 -0
  80. package/dist/swagger/adapter/prisma/index.d.ts +22 -0
  81. package/dist/swagger/json-schema-parser.d.cts +18 -0
  82. package/dist/swagger/json-schema-parser.d.mts +18 -0
  83. package/dist/swagger/json-schema-parser.d.ts +18 -0
  84. package/dist/swagger/parameters.d.cts +5 -0
  85. package/dist/swagger/parameters.d.mts +5 -0
  86. package/dist/swagger/parameters.d.ts +5 -0
  87. package/dist/swagger/types.d.cts +39 -0
  88. package/dist/swagger/types.d.mts +39 -0
  89. package/dist/swagger/types.d.ts +39 -0
  90. package/dist/swagger/utils/format-example-ref.d.cts +2 -0
  91. package/dist/swagger/utils/format-example-ref.d.mts +2 -0
  92. package/dist/swagger/utils/format-example-ref.d.ts +2 -0
  93. package/dist/swagger/utils/format-schema-ref.d.cts +2 -0
  94. package/dist/swagger/utils/format-schema-ref.d.mts +2 -0
  95. package/dist/swagger/utils/format-schema-ref.d.ts +2 -0
  96. package/dist/swagger/utils/get-models-accessible-routes.d.cts +4 -0
  97. package/dist/swagger/utils/get-models-accessible-routes.d.mts +4 -0
  98. package/dist/swagger/utils/get-models-accessible-routes.d.ts +4 -0
  99. package/dist/swagger/utils/get-swagger-paths.d.cts +12 -0
  100. package/dist/swagger/utils/get-swagger-paths.d.mts +12 -0
  101. package/dist/swagger/utils/get-swagger-paths.d.ts +12 -0
  102. package/dist/swagger/utils/get-swagger-tags.d.cts +4 -0
  103. package/dist/swagger/utils/get-swagger-tags.d.mts +4 -0
  104. package/dist/swagger/utils/get-swagger-tags.d.ts +4 -0
  105. package/dist/types.d.cts +106 -0
  106. package/dist/types.d.mts +106 -0
  107. package/dist/types.d.ts +106 -0
  108. package/dist/utils/format-resource-id.d.cts +2 -0
  109. package/dist/utils/format-resource-id.d.mts +2 -0
  110. package/dist/utils/format-resource-id.d.ts +2 -0
  111. package/dist/utils/get-accessible-routes.d.cts +3 -0
  112. package/dist/utils/get-accessible-routes.d.mts +3 -0
  113. package/dist/utils/get-accessible-routes.d.ts +3 -0
  114. package/dist/utils/get-resource-name-from-url.d.cts +5 -0
  115. package/dist/utils/get-resource-name-from-url.d.mts +5 -0
  116. package/dist/utils/get-resource-name-from-url.d.ts +5 -0
  117. package/dist/utils/get-route-type.d.cts +7 -0
  118. package/dist/utils/get-route-type.d.mts +7 -0
  119. package/dist/utils/get-route-type.d.ts +7 -0
  120. package/dist/utils/is-primitive.d.cts +2 -0
  121. package/dist/utils/is-primitive.d.mts +2 -0
  122. package/dist/utils/is-primitive.d.ts +2 -0
  123. package/dist/utils/validate-adapter-methods.d.cts +3 -0
  124. package/dist/utils/validate-adapter-methods.d.mts +3 -0
  125. package/dist/utils/validate-adapter-methods.d.ts +3 -0
  126. package/package.json +38 -19
  127. package/dist/chunk-5I2B5KQG.js +0 -77
  128. package/dist/chunk-5I2B5KQG.js.map +0 -1
  129. package/dist/chunk-LBXJKEOF.mjs +0 -73
  130. package/dist/chunk-LBXJKEOF.mjs.map +0 -1
  131. package/dist/index.js.map +0 -1
  132. package/dist/index.mjs.map +0 -1
  133. package/dist/next/index.js +0 -4839
  134. package/dist/next/index.js.map +0 -1
  135. package/dist/next/index.mjs.map +0 -1
  136. package/dist/types-C5c2M01-.d.mts +0 -138
  137. package/dist/types-C5c2M01-.d.ts +0 -138
@@ -0,0 +1,14 @@
1
+ import { b as baseHandler } from './base-crud-handler-DgrOMhoH.mjs';
2
+
3
+ const handler = async (adapter, options) => await baseHandler(
4
+ async (response, responseConfig) => {
5
+ response.status(responseConfig.status).send(responseConfig.data);
6
+ },
7
+ async (response) => {
8
+ response.end();
9
+ },
10
+ adapter,
11
+ options
12
+ );
13
+
14
+ export { handler as default };
@@ -0,0 +1,3 @@
1
+ import type { ParsedQueryParameters } from "./types.d.cts";
2
+ declare const parseQuery: (url?: string) => ParsedQueryParameters;
3
+ export = parseQuery;
@@ -0,0 +1,3 @@
1
+ import type { ParsedQueryParameters } from "./types.d.mts";
2
+ declare const parseQuery: (url?: string) => ParsedQueryParameters;
3
+ export default parseQuery;
@@ -0,0 +1,3 @@
1
+ import type { ParsedQueryParameters } from "./types.d.ts";
2
+ declare const parseQuery: (url?: string) => ParsedQueryParameters;
3
+ export = parseQuery;
@@ -0,0 +1,22 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { FakePrismaClient, ModelsOptions } from "../../../types.d.cts";
3
+ import type { SwaggerModelsConfig } from "../../types.d.cts";
4
+ declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
5
+ examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
6
+ paths: OpenAPIV3.PathsObject;
7
+ schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
8
+ tags: OpenAPIV3.TagObject[];
9
+ }>;
10
+ export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
11
+ crud?: {
12
+ models: ModelsOptions<M>;
13
+ };
14
+ defaultExposeStrategy?: "all" | "none";
15
+ models?: M[];
16
+ prismaClient: FakePrismaClient & PrismaClient;
17
+ swagger?: Partial<{
18
+ allowedMediaTypes: Record<string, boolean>;
19
+ models: SwaggerModelsConfig<M>;
20
+ }>;
21
+ }
22
+ export = modelsToOpenApi;
@@ -0,0 +1,22 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { FakePrismaClient, ModelsOptions } from "../../../types.d.mts";
3
+ import type { SwaggerModelsConfig } from "../../types.d.mts";
4
+ declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
5
+ examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
6
+ paths: OpenAPIV3.PathsObject;
7
+ schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
8
+ tags: OpenAPIV3.TagObject[];
9
+ }>;
10
+ export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
11
+ crud?: {
12
+ models: ModelsOptions<M>;
13
+ };
14
+ defaultExposeStrategy?: "all" | "none";
15
+ models?: M[];
16
+ prismaClient: FakePrismaClient & PrismaClient;
17
+ swagger?: Partial<{
18
+ allowedMediaTypes: Record<string, boolean>;
19
+ models: SwaggerModelsConfig<M>;
20
+ }>;
21
+ }
22
+ export default modelsToOpenApi;
@@ -0,0 +1,22 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { FakePrismaClient, ModelsOptions } from "../../../types.d.ts";
3
+ import type { SwaggerModelsConfig } from "../../types.d.ts";
4
+ declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
5
+ examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
6
+ paths: OpenAPIV3.PathsObject;
7
+ schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
8
+ tags: OpenAPIV3.TagObject[];
9
+ }>;
10
+ export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
11
+ crud?: {
12
+ models: ModelsOptions<M>;
13
+ };
14
+ defaultExposeStrategy?: "all" | "none";
15
+ models?: M[];
16
+ prismaClient: FakePrismaClient & PrismaClient;
17
+ swagger?: Partial<{
18
+ allowedMediaTypes: Record<string, boolean>;
19
+ models: SwaggerModelsConfig<M>;
20
+ }>;
21
+ }
22
+ export = modelsToOpenApi;
@@ -0,0 +1,18 @@
1
+ import type { JSONSchema7 } from "json-schema";
2
+ import type { OpenAPIV3 } from "openapi-types";
3
+ declare class PrismaJsonSchemaParser {
4
+ private readonly dmmf;
5
+ private readonly schemaInputTypes;
6
+ constructor(dmmf: any);
7
+ formatInputTypeData(inputType: any): any;
8
+ getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
9
+ getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
10
+ getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
11
+ parseInputTypes(models: string[]): Record<string, JSONSchema7>;
12
+ parseModels(): Record<string, JSONSchema7>;
13
+ parseObjectInputType(fieldType: any): {
14
+ $ref?: string;
15
+ type?: string;
16
+ };
17
+ }
18
+ export = PrismaJsonSchemaParser;
@@ -0,0 +1,18 @@
1
+ import type { JSONSchema7 } from "json-schema";
2
+ import type { OpenAPIV3 } from "openapi-types";
3
+ declare class PrismaJsonSchemaParser {
4
+ private readonly dmmf;
5
+ private readonly schemaInputTypes;
6
+ constructor(dmmf: any);
7
+ formatInputTypeData(inputType: any): any;
8
+ getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
9
+ getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
10
+ getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
11
+ parseInputTypes(models: string[]): Record<string, JSONSchema7>;
12
+ parseModels(): Record<string, JSONSchema7>;
13
+ parseObjectInputType(fieldType: any): {
14
+ $ref?: string;
15
+ type?: string;
16
+ };
17
+ }
18
+ export default PrismaJsonSchemaParser;
@@ -0,0 +1,18 @@
1
+ import type { JSONSchema7 } from "json-schema";
2
+ import type { OpenAPIV3 } from "openapi-types";
3
+ declare class PrismaJsonSchemaParser {
4
+ private readonly dmmf;
5
+ private readonly schemaInputTypes;
6
+ constructor(dmmf: any);
7
+ formatInputTypeData(inputType: any): any;
8
+ getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
9
+ getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
10
+ getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
11
+ parseInputTypes(models: string[]): Record<string, JSONSchema7>;
12
+ parseModels(): Record<string, JSONSchema7>;
13
+ parseObjectInputType(fieldType: any): {
14
+ $ref?: string;
15
+ type?: string;
16
+ };
17
+ }
18
+ export = PrismaJsonSchemaParser;
@@ -0,0 +1,5 @@
1
+ import { RouteType } from "../types.d.cts";
2
+ import type { SwaggerParameter } from "./types.d.cts";
3
+ export declare const commonQueryParameters: SwaggerParameter[];
4
+ export declare const listQueryParameters: SwaggerParameter[];
5
+ export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
@@ -0,0 +1,5 @@
1
+ import { RouteType } from "../types.d.mts";
2
+ import type { SwaggerParameter } from "./types.d.mts";
3
+ export declare const commonQueryParameters: SwaggerParameter[];
4
+ export declare const listQueryParameters: SwaggerParameter[];
5
+ export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
@@ -0,0 +1,5 @@
1
+ import { RouteType } from "../types.d.ts";
2
+ import type { SwaggerParameter } from "./types.d.ts";
3
+ export declare const commonQueryParameters: SwaggerParameter[];
4
+ export declare const listQueryParameters: SwaggerParameter[];
5
+ export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
@@ -0,0 +1,39 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { RouteType } from "../types.d.cts";
3
+ export interface SwaggerType {
4
+ description?: string;
5
+ isArray?: boolean;
6
+ name: string;
7
+ required?: boolean;
8
+ }
9
+ export interface SwaggerOperation {
10
+ body?: SwaggerType;
11
+ response: SwaggerType;
12
+ responses?: Record<number, any>;
13
+ summary?: string;
14
+ }
15
+ export interface SwaggerParameter {
16
+ description?: string;
17
+ name: string;
18
+ schema: any & {
19
+ type: string;
20
+ };
21
+ }
22
+ export interface ModelsConfig {
23
+ additionalQueryParams?: SwaggerParameter[];
24
+ routeTypes?: {
25
+ [RouteType.CREATE]?: SwaggerOperation;
26
+ [RouteType.DELETE]?: SwaggerOperation;
27
+ [RouteType.READ_ALL]?: SwaggerOperation;
28
+ [RouteType.READ_ONE]?: SwaggerOperation;
29
+ [RouteType.UPDATE]?: SwaggerOperation;
30
+ };
31
+ tag: OpenAPIV3.TagObject;
32
+ type?: SwaggerType;
33
+ }
34
+ export type SwaggerModelsConfig<M extends string> = {
35
+ [key in M]?: ModelsConfig;
36
+ };
37
+ export type Routes<M extends string> = {
38
+ [key in M]?: RouteType[];
39
+ };
@@ -0,0 +1,39 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { RouteType } from "../types.d.mts";
3
+ export interface SwaggerType {
4
+ description?: string;
5
+ isArray?: boolean;
6
+ name: string;
7
+ required?: boolean;
8
+ }
9
+ export interface SwaggerOperation {
10
+ body?: SwaggerType;
11
+ response: SwaggerType;
12
+ responses?: Record<number, any>;
13
+ summary?: string;
14
+ }
15
+ export interface SwaggerParameter {
16
+ description?: string;
17
+ name: string;
18
+ schema: any & {
19
+ type: string;
20
+ };
21
+ }
22
+ export interface ModelsConfig {
23
+ additionalQueryParams?: SwaggerParameter[];
24
+ routeTypes?: {
25
+ [RouteType.CREATE]?: SwaggerOperation;
26
+ [RouteType.DELETE]?: SwaggerOperation;
27
+ [RouteType.READ_ALL]?: SwaggerOperation;
28
+ [RouteType.READ_ONE]?: SwaggerOperation;
29
+ [RouteType.UPDATE]?: SwaggerOperation;
30
+ };
31
+ tag: OpenAPIV3.TagObject;
32
+ type?: SwaggerType;
33
+ }
34
+ export type SwaggerModelsConfig<M extends string> = {
35
+ [key in M]?: ModelsConfig;
36
+ };
37
+ export type Routes<M extends string> = {
38
+ [key in M]?: RouteType[];
39
+ };
@@ -0,0 +1,39 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { RouteType } from "../types.d.ts";
3
+ export interface SwaggerType {
4
+ description?: string;
5
+ isArray?: boolean;
6
+ name: string;
7
+ required?: boolean;
8
+ }
9
+ export interface SwaggerOperation {
10
+ body?: SwaggerType;
11
+ response: SwaggerType;
12
+ responses?: Record<number, any>;
13
+ summary?: string;
14
+ }
15
+ export interface SwaggerParameter {
16
+ description?: string;
17
+ name: string;
18
+ schema: any & {
19
+ type: string;
20
+ };
21
+ }
22
+ export interface ModelsConfig {
23
+ additionalQueryParams?: SwaggerParameter[];
24
+ routeTypes?: {
25
+ [RouteType.CREATE]?: SwaggerOperation;
26
+ [RouteType.DELETE]?: SwaggerOperation;
27
+ [RouteType.READ_ALL]?: SwaggerOperation;
28
+ [RouteType.READ_ONE]?: SwaggerOperation;
29
+ [RouteType.UPDATE]?: SwaggerOperation;
30
+ };
31
+ tag: OpenAPIV3.TagObject;
32
+ type?: SwaggerType;
33
+ }
34
+ export type SwaggerModelsConfig<M extends string> = {
35
+ [key in M]?: ModelsConfig;
36
+ };
37
+ export type Routes<M extends string> = {
38
+ [key in M]?: RouteType[];
39
+ };
@@ -0,0 +1,2 @@
1
+ declare const formatExampleReference: (schemaName: string) => string;
2
+ export = formatExampleReference;
@@ -0,0 +1,2 @@
1
+ declare const formatExampleReference: (schemaName: string) => string;
2
+ export default formatExampleReference;
@@ -0,0 +1,2 @@
1
+ declare const formatExampleReference: (schemaName: string) => string;
2
+ export = formatExampleReference;
@@ -0,0 +1,2 @@
1
+ declare const formatSchemaReference: (schemaName: string) => string;
2
+ export = formatSchemaReference;
@@ -0,0 +1,2 @@
1
+ declare const formatSchemaReference: (schemaName: string) => string;
2
+ export default formatSchemaReference;
@@ -0,0 +1,2 @@
1
+ declare const formatSchemaReference: (schemaName: string) => string;
2
+ export = formatSchemaReference;
@@ -0,0 +1,4 @@
1
+ import type { ModelsOptions } from "../../types.d.cts";
2
+ import type { Routes } from "../types.d.cts";
3
+ declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
4
+ export = getModelsAccessibleRoutes;
@@ -0,0 +1,4 @@
1
+ import type { ModelsOptions } from "../../types.d.mts";
2
+ import type { Routes } from "../types.d.mts";
3
+ declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
4
+ export default getModelsAccessibleRoutes;
@@ -0,0 +1,4 @@
1
+ import type { ModelsOptions } from "../../types.d.ts";
2
+ import type { Routes } from "../types.d.ts";
3
+ declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
4
+ export = getModelsAccessibleRoutes;
@@ -0,0 +1,12 @@
1
+ import type { ModelsOptions } from "../../types.d.cts";
2
+ import type { Routes, SwaggerModelsConfig } from "../types.d.cts";
3
+ declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
4
+ export interface GetSwaggerPathsParameters<M extends string> {
5
+ models?: ModelsOptions<M>;
6
+ modelsConfig?: SwaggerModelsConfig<M>;
7
+ routes: Routes<M>;
8
+ routesMap?: {
9
+ [key in M]?: string;
10
+ };
11
+ }
12
+ export = getSwaggerPaths;
@@ -0,0 +1,12 @@
1
+ import type { ModelsOptions } from "../../types.d.mts";
2
+ import type { Routes, SwaggerModelsConfig } from "../types.d.mts";
3
+ declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
4
+ export interface GetSwaggerPathsParameters<M extends string> {
5
+ models?: ModelsOptions<M>;
6
+ modelsConfig?: SwaggerModelsConfig<M>;
7
+ routes: Routes<M>;
8
+ routesMap?: {
9
+ [key in M]?: string;
10
+ };
11
+ }
12
+ export default getSwaggerPaths;
@@ -0,0 +1,12 @@
1
+ import type { ModelsOptions } from "../../types.d.ts";
2
+ import type { Routes, SwaggerModelsConfig } from "../types.d.ts";
3
+ declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
4
+ export interface GetSwaggerPathsParameters<M extends string> {
5
+ models?: ModelsOptions<M>;
6
+ modelsConfig?: SwaggerModelsConfig<M>;
7
+ routes: Routes<M>;
8
+ routesMap?: {
9
+ [key in M]?: string;
10
+ };
11
+ }
12
+ export = getSwaggerPaths;
@@ -0,0 +1,4 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { SwaggerModelsConfig } from "../types.d.cts";
3
+ declare const getSwaggerTags: <M extends string>(modelNames: M[], modelsConfig?: SwaggerModelsConfig<M>) => OpenAPIV3.TagObject[];
4
+ export = getSwaggerTags;
@@ -0,0 +1,4 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { SwaggerModelsConfig } from "../types.d.mts";
3
+ declare const getSwaggerTags: <M extends string>(modelNames: M[], modelsConfig?: SwaggerModelsConfig<M>) => OpenAPIV3.TagObject[];
4
+ export default getSwaggerTags;
@@ -0,0 +1,4 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { SwaggerModelsConfig } from "../types.d.ts";
3
+ declare const getSwaggerTags: <M extends string>(modelNames: M[], modelsConfig?: SwaggerModelsConfig<M>) => OpenAPIV3.TagObject[];
4
+ export = getSwaggerTags;
@@ -0,0 +1,106 @@
1
+ import type { Handler as CreateHandler } from "./handler/create.d.cts";
2
+ import type { Handler as DeleteHandler } from "./handler/delete.d.cts";
3
+ import type { Handler as ListHandler } from "./handler/list.d.cts";
4
+ import type { Handler as GetHandler } from "./handler/read.d.cts";
5
+ import type { Handler as UpdateHandler } from "./handler/update.d.cts";
6
+ export declare enum RouteType {
7
+ CREATE = "CREATE",
8
+ DELETE = "DELETE",
9
+ READ_ALL = "READ_ALL",
10
+ READ_ONE = "READ_ONE",
11
+ UPDATE = "UPDATE"
12
+ }
13
+ export interface ModelOption {
14
+ exclude?: RouteType[];
15
+ formatResourceId?: (resourceId: string) => number | string;
16
+ name?: string;
17
+ only?: RouteType[];
18
+ }
19
+ export type ModelsOptions<M extends string = string> = {
20
+ [key in M]?: ModelOption;
21
+ };
22
+ export interface HandlerOptions<M extends string = string> {
23
+ exposeStrategy?: "all" | "none";
24
+ formatResourceId?: (resourceId: string) => number | string;
25
+ handlers?: {
26
+ create?: CreateHandler;
27
+ delete?: DeleteHandler;
28
+ get?: GetHandler;
29
+ list?: ListHandler;
30
+ update?: UpdateHandler;
31
+ };
32
+ models?: ModelsOptions<M>;
33
+ pagination?: PaginationConfig;
34
+ }
35
+ export interface PaginationConfig {
36
+ perPage: number;
37
+ }
38
+ export interface HandlerParameters<T, Q> {
39
+ adapter: Adapter<T, Q>;
40
+ query: Q;
41
+ resourceName: string;
42
+ }
43
+ export interface UniqueResourceHandlerParameters<T, Q> {
44
+ adapter: Adapter<T, Q>;
45
+ query: Q;
46
+ resourceId: number | string;
47
+ resourceName: string;
48
+ }
49
+ export interface Adapter<T, Q, M extends string = string> {
50
+ connect?: () => Promise<void>;
51
+ create: (resourceName: M, data: any, query: Q) => Promise<T>;
52
+ delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;
53
+ disconnect?: () => Promise<void>;
54
+ getAll: (resourceName: M, query: Q) => Promise<T[]>;
55
+ getModels: () => M[];
56
+ getOne: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;
57
+ getPaginationData: (resourceName: M, query: Q) => Promise<PaginationData>;
58
+ handleError?: (error: Error) => void;
59
+ init?: () => Promise<void>;
60
+ mapModelsToRouteNames?: () => Promise<{
61
+ [key in M]?: string;
62
+ }>;
63
+ models?: M[];
64
+ parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;
65
+ update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;
66
+ }
67
+ export interface PaginationData {
68
+ page: number;
69
+ pageCount: number;
70
+ total: number;
71
+ }
72
+ export type RecursiveField = Record<string, Record<string, boolean> | boolean>;
73
+ export type WhereOperator = "$cont" | "$ends" | "$eq" | "$gt" | "$gte" | "$in" | "$isnull" | "$lt" | "$lte" | "$neq" | "$notin" | "$starts";
74
+ export type SearchCondition = Date | boolean | number | string | null;
75
+ export type WhereCondition = {
76
+ [key in WhereOperator]?: SearchCondition;
77
+ };
78
+ export type Condition = {
79
+ [key: string]: Condition | SearchCondition | WhereCondition;
80
+ };
81
+ export type WhereField = Condition & {
82
+ $and?: Condition | Condition[];
83
+ $not?: Condition | Condition[];
84
+ $or?: Condition | Condition[];
85
+ };
86
+ export type OrderByOperator = "$asc" | "$desc";
87
+ export type OrderByField = Record<string, OrderByOperator>;
88
+ export interface ParsedQueryParameters {
89
+ distinct?: string;
90
+ include?: RecursiveField;
91
+ limit?: number | undefined;
92
+ orderBy?: OrderByField;
93
+ originalQuery?: Record<string, any>;
94
+ page?: number | undefined;
95
+ select?: RecursiveField;
96
+ skip?: number | undefined;
97
+ where?: WhereField;
98
+ }
99
+ export type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;
100
+ export interface FakePrismaClient {
101
+ $connect: () => void;
102
+ $disconnect: () => Promise<void>;
103
+ [key: string]: any;
104
+ _dmmf?: any;
105
+ _getDmmf?: () => any;
106
+ }
@@ -0,0 +1,106 @@
1
+ import type { Handler as CreateHandler } from "./handler/create.d.mts";
2
+ import type { Handler as DeleteHandler } from "./handler/delete.d.mts";
3
+ import type { Handler as ListHandler } from "./handler/list.d.mts";
4
+ import type { Handler as GetHandler } from "./handler/read.d.mts";
5
+ import type { Handler as UpdateHandler } from "./handler/update.d.mts";
6
+ export declare enum RouteType {
7
+ CREATE = "CREATE",
8
+ DELETE = "DELETE",
9
+ READ_ALL = "READ_ALL",
10
+ READ_ONE = "READ_ONE",
11
+ UPDATE = "UPDATE"
12
+ }
13
+ export interface ModelOption {
14
+ exclude?: RouteType[];
15
+ formatResourceId?: (resourceId: string) => number | string;
16
+ name?: string;
17
+ only?: RouteType[];
18
+ }
19
+ export type ModelsOptions<M extends string = string> = {
20
+ [key in M]?: ModelOption;
21
+ };
22
+ export interface HandlerOptions<M extends string = string> {
23
+ exposeStrategy?: "all" | "none";
24
+ formatResourceId?: (resourceId: string) => number | string;
25
+ handlers?: {
26
+ create?: CreateHandler;
27
+ delete?: DeleteHandler;
28
+ get?: GetHandler;
29
+ list?: ListHandler;
30
+ update?: UpdateHandler;
31
+ };
32
+ models?: ModelsOptions<M>;
33
+ pagination?: PaginationConfig;
34
+ }
35
+ export interface PaginationConfig {
36
+ perPage: number;
37
+ }
38
+ export interface HandlerParameters<T, Q> {
39
+ adapter: Adapter<T, Q>;
40
+ query: Q;
41
+ resourceName: string;
42
+ }
43
+ export interface UniqueResourceHandlerParameters<T, Q> {
44
+ adapter: Adapter<T, Q>;
45
+ query: Q;
46
+ resourceId: number | string;
47
+ resourceName: string;
48
+ }
49
+ export interface Adapter<T, Q, M extends string = string> {
50
+ connect?: () => Promise<void>;
51
+ create: (resourceName: M, data: any, query: Q) => Promise<T>;
52
+ delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;
53
+ disconnect?: () => Promise<void>;
54
+ getAll: (resourceName: M, query: Q) => Promise<T[]>;
55
+ getModels: () => M[];
56
+ getOne: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;
57
+ getPaginationData: (resourceName: M, query: Q) => Promise<PaginationData>;
58
+ handleError?: (error: Error) => void;
59
+ init?: () => Promise<void>;
60
+ mapModelsToRouteNames?: () => Promise<{
61
+ [key in M]?: string;
62
+ }>;
63
+ models?: M[];
64
+ parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;
65
+ update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;
66
+ }
67
+ export interface PaginationData {
68
+ page: number;
69
+ pageCount: number;
70
+ total: number;
71
+ }
72
+ export type RecursiveField = Record<string, Record<string, boolean> | boolean>;
73
+ export type WhereOperator = "$cont" | "$ends" | "$eq" | "$gt" | "$gte" | "$in" | "$isnull" | "$lt" | "$lte" | "$neq" | "$notin" | "$starts";
74
+ export type SearchCondition = Date | boolean | number | string | null;
75
+ export type WhereCondition = {
76
+ [key in WhereOperator]?: SearchCondition;
77
+ };
78
+ export type Condition = {
79
+ [key: string]: Condition | SearchCondition | WhereCondition;
80
+ };
81
+ export type WhereField = Condition & {
82
+ $and?: Condition | Condition[];
83
+ $not?: Condition | Condition[];
84
+ $or?: Condition | Condition[];
85
+ };
86
+ export type OrderByOperator = "$asc" | "$desc";
87
+ export type OrderByField = Record<string, OrderByOperator>;
88
+ export interface ParsedQueryParameters {
89
+ distinct?: string;
90
+ include?: RecursiveField;
91
+ limit?: number | undefined;
92
+ orderBy?: OrderByField;
93
+ originalQuery?: Record<string, any>;
94
+ page?: number | undefined;
95
+ select?: RecursiveField;
96
+ skip?: number | undefined;
97
+ where?: WhereField;
98
+ }
99
+ export type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;
100
+ export interface FakePrismaClient {
101
+ $connect: () => void;
102
+ $disconnect: () => Promise<void>;
103
+ [key: string]: any;
104
+ _dmmf?: any;
105
+ _getDmmf?: () => any;
106
+ }