@visulima/crud 2.0.42 → 2.0.44

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/CHANGELOG.md CHANGED
@@ -1,3 +1,36 @@
1
+ ## @visulima/crud [2.0.44](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.43...@visulima/crud@2.0.44) (2025-11-07)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update TypeScript configurations and improve linting across multiple packages ([6f25ec7](https://github.com/visulima/visulima/commit/6f25ec7841da7246f8f9166efc5292a7089d37ee))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * update npm and pnpm configurations for monorepo optimization ([#564](https://github.com/visulima/visulima/issues/564)) ([5512b42](https://github.com/visulima/visulima/commit/5512b42f672c216b6a3c9e39035199a4ebd9a4b8))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * **@visulima/pagination:** upgraded to 4.0.3
15
+ * **@visulima/prisma-dmmf-transformer:** upgraded to 2.0.35
16
+
17
+ ## @visulima/crud [2.0.43](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.42...@visulima/crud@2.0.43) (2025-11-05)
18
+
19
+ ### Bug Fixes
20
+
21
+ * update dependencies across multiple packages ([36a47f2](https://github.com/visulima/visulima/commit/36a47f26d65d25a7b4d8371186710e7d0ab61a2b))
22
+
23
+ ### Miscellaneous Chores
24
+
25
+ * update dependencies across multiple packages ([c526462](https://github.com/visulima/visulima/commit/c52646260c2ae8bbf85692e642f305f47a158d4e))
26
+ * update package dependencies and configurations ([7bfe7e7](https://github.com/visulima/visulima/commit/7bfe7e71869580900aab50efb064b4293994ed9a))
27
+
28
+
29
+ ### Dependencies
30
+
31
+ * **@visulima/pagination:** upgraded to 4.0.2
32
+ * **@visulima/prisma-dmmf-transformer:** upgraded to 2.0.34
33
+
1
34
  ## @visulima/crud [2.0.42](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.41...@visulima/crud@2.0.42) (2025-10-21)
2
35
 
3
36
  ### Bug Fixes
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __esm = (fn, res) => function __init() {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ };
12
+ var __commonJS = (cb, mod) => function __require() {
13
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
14
+ };
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+
37
+ // ../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js
38
+ var init_cjs_shims = __esm({
39
+ "../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js"() {
40
+ }
41
+ });
42
+
43
+ // src/types.ts
44
+ init_cjs_shims();
45
+ var RouteType = /* @__PURE__ */ ((RouteType2) => {
46
+ RouteType2["CREATE"] = "CREATE";
47
+ RouteType2["DELETE"] = "DELETE";
48
+ RouteType2["READ_ALL"] = "READ_ALL";
49
+ RouteType2["READ_ONE"] = "READ_ONE";
50
+ RouteType2["UPDATE"] = "UPDATE";
51
+ return RouteType2;
52
+ })(RouteType || {});
53
+
54
+ // src/utils/get-accessible-routes.ts
55
+ init_cjs_shims();
56
+ var getAccessibleRoutes = (only, exclude, defaultExposeStrategy = "all") => {
57
+ let accessibleRoutes = defaultExposeStrategy === "none" ? [] : ["READ_ALL" /* READ_ALL */, "READ_ONE" /* READ_ONE */, "UPDATE" /* UPDATE */, "DELETE" /* DELETE */, "CREATE" /* CREATE */];
58
+ if (Array.isArray(only)) {
59
+ accessibleRoutes = only;
60
+ }
61
+ if (exclude?.length) {
62
+ accessibleRoutes = accessibleRoutes.filter((element) => !exclude.includes(element));
63
+ }
64
+ return accessibleRoutes;
65
+ };
66
+ var get_accessible_routes_default = getAccessibleRoutes;
67
+
68
+ exports.RouteType = RouteType;
69
+ exports.__commonJS = __commonJS;
70
+ exports.__esm = __esm;
71
+ exports.__export = __export;
72
+ exports.__toCommonJS = __toCommonJS;
73
+ exports.__toESM = __toESM;
74
+ exports.get_accessible_routes_default = get_accessible_routes_default;
75
+ exports.init_cjs_shims = init_cjs_shims;
76
+ //# sourceMappingURL=chunk-5I2B5KQG.js.map
77
+ //# sourceMappingURL=chunk-5I2B5KQG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/esm_shims.js","../src/types.ts","../src/utils/get-accessible-routes.ts"],"names":["getFilename","getDirname","__dirname","init_esm_shims","__esmMin","fileURLToPath","path","RouteType","getAccessibleRoutes","only","exclude","defaultExposeStrategy","accessibleRoutes","element","get_accessible_routes_default"],"mappings":"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","file":"chunk-IHNLKSVH.mjs","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import type { Handler as CreateHandler } from \"./handler/create\";\nimport type { Handler as DeleteHandler } from \"./handler/delete\";\nimport type { Handler as ListHandler } from \"./handler/list\";\nimport type { Handler as GetHandler } from \"./handler/read\";\nimport type { Handler as UpdateHandler } from \"./handler/update\";\n\nexport enum RouteType {\n CREATE = \"CREATE\",\n DELETE = \"DELETE\",\n READ_ALL = \"READ_ALL\",\n READ_ONE = \"READ_ONE\",\n UPDATE = \"UPDATE\",\n}\n\nexport interface ModelOption {\n exclude?: RouteType[];\n formatResourceId?: (resourceId: string) => number | string;\n name?: string;\n only?: RouteType[];\n}\n\nexport type ModelsOptions<M extends string = string> = {\n [key in M]?: ModelOption;\n};\n\nexport interface HandlerOptions<M extends string = string> {\n exposeStrategy?: \"all\" | \"none\";\n formatResourceId?: (resourceId: string) => number | string;\n handlers?: {\n create?: CreateHandler;\n delete?: DeleteHandler;\n get?: GetHandler;\n list?: ListHandler;\n update?: UpdateHandler;\n };\n models?: ModelsOptions<M>;\n pagination?: PaginationConfig;\n}\n\nexport interface PaginationConfig {\n perPage: number;\n}\n\nexport interface HandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceName: string;\n}\n\nexport interface UniqueResourceHandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceId: number | string;\n resourceName: string;\n}\n\nexport interface Adapter<T, Q, M extends string = string> {\n connect?: () => Promise<void>;\n create: (resourceName: M, data: any, query: Q) => Promise<T>;\n delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n disconnect?: () => Promise<void>;\n getAll: (resourceName: M, query: Q) => Promise<T[]>;\n getModels: () => M[];\n getOne: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n getPaginationData: (resourceName: M, query: Q) => Promise<PaginationData>;\n handleError?: (error: Error) => void;\n init?: () => Promise<void>;\n mapModelsToRouteNames?: () => Promise<{ [key in M]?: string }>;\n models?: M[];\n parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;\n update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;\n}\n\nexport interface PaginationData {\n page: number;\n pageCount: number;\n total: number;\n}\n\nexport type RecursiveField = Record<string, Record<string, boolean> | boolean>;\n\nexport type WhereOperator = \"$cont\" | \"$ends\" | \"$eq\" | \"$gt\" | \"$gte\" | \"$in\" | \"$isnull\" | \"$lt\" | \"$lte\" | \"$neq\" | \"$notin\" | \"$starts\";\n\nexport type SearchCondition = Date | boolean | number | string | null;\n\nexport type WhereCondition = {\n [key in WhereOperator]?: SearchCondition;\n};\n\nexport type Condition = { [key: string]: Condition | SearchCondition | WhereCondition };\n\nexport type WhereField = Condition & {\n $and?: Condition | Condition[];\n $not?: Condition | Condition[];\n $or?: Condition | Condition[];\n};\n\nexport type OrderByOperator = \"$asc\" | \"$desc\";\n\nexport type OrderByField = Record<string, OrderByOperator>;\n\nexport interface ParsedQueryParameters {\n distinct?: string;\n include?: RecursiveField;\n limit?: number | undefined;\n orderBy?: OrderByField;\n originalQuery?: Record<string, any>;\n page?: number | undefined;\n select?: RecursiveField;\n skip?: number | undefined;\n where?: WhereField;\n}\n\nexport type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;\n\nexport interface FakePrismaClient {\n $connect: () => void;\n $disconnect: () => Promise<void>;\n [key: string]: any;\n _dmmf?: any;\n\n _getDmmf?: () => any;\n}\n","import { RouteType } from \"../types\";\n\nconst getAccessibleRoutes = (only?: RouteType[], exclude?: RouteType[], defaultExposeStrategy: \"all\" | \"none\" = \"all\"): RouteType[] => {\n let accessibleRoutes: RouteType[]\n = defaultExposeStrategy === \"none\" ? [] : [RouteType.READ_ALL, RouteType.READ_ONE, RouteType.UPDATE, RouteType.DELETE, RouteType.CREATE];\n\n if (Array.isArray(only)) {\n accessibleRoutes = only;\n }\n\n if (exclude?.length) {\n accessibleRoutes = accessibleRoutes.filter((element) => !exclude.includes(element));\n }\n\n return accessibleRoutes;\n};\n\nexport default getAccessibleRoutes;\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js","../src/types.ts","../src/utils/get-accessible-routes.ts"],"names":["RouteType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,4JAAA,GAAA;AAAA,EAAA;AAAA,CAAA;;;ACAA,cAAA,EAAA;AAMO,IAAK,SAAA,qBAAAA,UAAAA,KAAL;AACH,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AALD,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;;;ACNZ,cAAA,EAAA;AAEA,IAAM,mBAAA,GAAsB,CAAC,IAAA,EAAoB,OAAA,EAAuB,wBAAwC,KAAA,KAAuB;AACnI,EAAA,IAAI,gBAAA,GACE,qBAAA,KAA0B,MAAA,GAAS,KAAK,CAAA,UAAA,iBAAA,UAAA,iBAAA,QAAA,eAAA,QAAA,eAAA,QAAA,cAA6F;AAE3I,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACrB,IAAA,gBAAA,GAAmB,IAAA;AAAA,EACvB;AAEA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACjB,IAAA,gBAAA,GAAmB,gBAAA,CAAiB,OAAO,CAAC,OAAA,KAAY,CAAC,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACtF;AAEA,EAAA,OAAO,gBAAA;AACX,CAAA;AAEA,IAAO,6BAAA,GAAQ","file":"chunk-5I2B5KQG.js","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import type { Handler as CreateHandler } from \"./handler/create\";\nimport type { Handler as DeleteHandler } from \"./handler/delete\";\nimport type { Handler as ListHandler } from \"./handler/list\";\nimport type { Handler as GetHandler } from \"./handler/read\";\nimport type { Handler as UpdateHandler } from \"./handler/update\";\n\nexport enum RouteType {\n CREATE = \"CREATE\",\n DELETE = \"DELETE\",\n READ_ALL = \"READ_ALL\",\n READ_ONE = \"READ_ONE\",\n UPDATE = \"UPDATE\",\n}\n\nexport interface ModelOption {\n exclude?: RouteType[];\n formatResourceId?: (resourceId: string) => number | string;\n name?: string;\n only?: RouteType[];\n}\n\nexport type ModelsOptions<M extends string = string> = {\n [key in M]?: ModelOption;\n};\n\nexport interface HandlerOptions<M extends string = string> {\n exposeStrategy?: \"all\" | \"none\";\n formatResourceId?: (resourceId: string) => number | string;\n handlers?: {\n create?: CreateHandler;\n delete?: DeleteHandler;\n get?: GetHandler;\n list?: ListHandler;\n update?: UpdateHandler;\n };\n models?: ModelsOptions<M>;\n pagination?: PaginationConfig;\n}\n\nexport interface PaginationConfig {\n perPage: number;\n}\n\nexport interface HandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceName: string;\n}\n\nexport interface UniqueResourceHandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceId: number | string;\n resourceName: string;\n}\n\nexport interface Adapter<T, Q, M extends string = string> {\n connect?: () => Promise<void>;\n create: (resourceName: M, data: any, query: Q) => Promise<T>;\n delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n disconnect?: () => Promise<void>;\n getAll: (resourceName: M, query: Q) => Promise<T[]>;\n getModels: () => M[];\n getOne: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n getPaginationData: (resourceName: M, query: Q) => Promise<PaginationData>;\n handleError?: (error: Error) => void;\n init?: () => Promise<void>;\n mapModelsToRouteNames?: () => Promise<{ [key in M]?: string }>;\n models?: M[];\n parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;\n update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;\n}\n\nexport interface PaginationData {\n page: number;\n pageCount: number;\n total: number;\n}\n\nexport type RecursiveField = Record<string, Record<string, boolean> | boolean>;\n\nexport type WhereOperator = \"$cont\" | \"$ends\" | \"$eq\" | \"$gt\" | \"$gte\" | \"$in\" | \"$isnull\" | \"$lt\" | \"$lte\" | \"$neq\" | \"$notin\" | \"$starts\";\n\nexport type SearchCondition = Date | boolean | number | string | null;\n\nexport type WhereCondition = {\n [key in WhereOperator]?: SearchCondition;\n};\n\nexport type Condition = { [key: string]: Condition | SearchCondition | WhereCondition };\n\nexport type WhereField = Condition & {\n $and?: Condition | Condition[];\n $not?: Condition | Condition[];\n $or?: Condition | Condition[];\n};\n\nexport type OrderByOperator = \"$asc\" | \"$desc\";\n\nexport type OrderByField = Record<string, OrderByOperator>;\n\nexport interface ParsedQueryParameters {\n distinct?: string;\n include?: RecursiveField;\n limit?: number | undefined;\n orderBy?: OrderByField;\n originalQuery?: Record<string, any>;\n page?: number | undefined;\n select?: RecursiveField;\n skip?: number | undefined;\n where?: WhereField;\n}\n\nexport type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;\n\nexport interface FakePrismaClient {\n $connect: () => void;\n $disconnect: () => Promise<void>;\n [key: string]: any;\n _dmmf?: any;\n\n _getDmmf?: () => any;\n}\n","import { RouteType } from \"../types\";\n\nconst getAccessibleRoutes = (only?: RouteType[], exclude?: RouteType[], defaultExposeStrategy: \"all\" | \"none\" = \"all\"): RouteType[] => {\n let accessibleRoutes: RouteType[]\n = defaultExposeStrategy === \"none\" ? [] : [RouteType.READ_ALL, RouteType.READ_ONE, RouteType.UPDATE, RouteType.DELETE, RouteType.CREATE];\n\n if (Array.isArray(only)) {\n accessibleRoutes = only;\n }\n\n if (exclude?.length) {\n accessibleRoutes = accessibleRoutes.filter((element) => !exclude.includes(element));\n }\n\n return accessibleRoutes;\n};\n\nexport default getAccessibleRoutes;\n"]}
@@ -0,0 +1,73 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __esm = (fn, res) => function __init() {
11
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
12
+ };
13
+ var __commonJS = (cb, mod) => function __require() {
14
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
15
+ };
16
+ var __export = (target, all) => {
17
+ for (var name in all)
18
+ __defProp(target, name, { get: all[name], enumerable: true });
19
+ };
20
+ var __copyProps = (to, from, except, desc) => {
21
+ if (from && typeof from === "object" || typeof from === "function") {
22
+ for (let key of __getOwnPropNames(from))
23
+ if (!__hasOwnProp.call(to, key) && key !== except)
24
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
25
+ }
26
+ return to;
27
+ };
28
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
29
+ // If the importer is in node compatibility mode or this is not an ESM
30
+ // file that has been converted to a CommonJS file using a Babel-
31
+ // compatible transform (i.e. "__esModule" has not been set), then set
32
+ // "default" to the CommonJS "module.exports" for node compatibility.
33
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
34
+ mod
35
+ ));
36
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
+ var getFilename, getDirname, __dirname;
38
+ var init_esm_shims = __esm({
39
+ "../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/esm_shims.js"() {
40
+ getFilename = () => fileURLToPath(import.meta.url);
41
+ getDirname = () => path.dirname(getFilename());
42
+ __dirname = /* @__PURE__ */ getDirname();
43
+ }
44
+ });
45
+
46
+ // src/types.ts
47
+ init_esm_shims();
48
+ var RouteType = /* @__PURE__ */ ((RouteType2) => {
49
+ RouteType2["CREATE"] = "CREATE";
50
+ RouteType2["DELETE"] = "DELETE";
51
+ RouteType2["READ_ALL"] = "READ_ALL";
52
+ RouteType2["READ_ONE"] = "READ_ONE";
53
+ RouteType2["UPDATE"] = "UPDATE";
54
+ return RouteType2;
55
+ })(RouteType || {});
56
+
57
+ // src/utils/get-accessible-routes.ts
58
+ init_esm_shims();
59
+ var getAccessibleRoutes = (only, exclude, defaultExposeStrategy = "all") => {
60
+ let accessibleRoutes = defaultExposeStrategy === "none" ? [] : ["READ_ALL" /* READ_ALL */, "READ_ONE" /* READ_ONE */, "UPDATE" /* UPDATE */, "DELETE" /* DELETE */, "CREATE" /* CREATE */];
61
+ if (Array.isArray(only)) {
62
+ accessibleRoutes = only;
63
+ }
64
+ if (exclude?.length) {
65
+ accessibleRoutes = accessibleRoutes.filter((element) => !exclude.includes(element));
66
+ }
67
+ return accessibleRoutes;
68
+ };
69
+ var get_accessible_routes_default = getAccessibleRoutes;
70
+
71
+ export { RouteType, __commonJS, __dirname, __esm, __export, __toCommonJS, __toESM, get_accessible_routes_default, init_esm_shims };
72
+ //# sourceMappingURL=chunk-LBXJKEOF.mjs.map
73
+ //# sourceMappingURL=chunk-LBXJKEOF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_jiti@2.6.1_postcss@8.5.6_tsx@4.20.6_typescript@5.9.3_yaml@2.8.1/node_modules/tsup/assets/esm_shims.js","../src/types.ts","../src/utils/get-accessible-routes.ts"],"names":["RouteType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAIM,aACA,UAAA,CAAA,CAEO;AAPb,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,4JAAA,GAAA;AAIA,IAAM,WAAA,GAAc,MAAM,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AACvD,IAAM,UAAA,GAAa,MAAM,IAAA,CAAK,OAAA,CAAQ,aAAa,CAAA;AAE5C,IAAM,4BAA4B,UAAA,EAAW;AAAA,EAAA;AAAA,CAAA;;;ACPpD,cAAA,EAAA;AAMO,IAAK,SAAA,qBAAAA,UAAAA,KAAL;AACH,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,WAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,WAAA,QAAA,CAAA,GAAS,QAAA;AALD,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;;;ACNZ,cAAA,EAAA;AAEA,IAAM,mBAAA,GAAsB,CAAC,IAAA,EAAoB,OAAA,EAAuB,wBAAwC,KAAA,KAAuB;AACnI,EAAA,IAAI,gBAAA,GACE,qBAAA,KAA0B,MAAA,GAAS,KAAK,CAAA,UAAA,iBAAA,UAAA,iBAAA,QAAA,eAAA,QAAA,eAAA,QAAA,cAA6F;AAE3I,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACrB,IAAA,gBAAA,GAAmB,IAAA;AAAA,EACvB;AAEA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACjB,IAAA,gBAAA,GAAmB,gBAAA,CAAiB,OAAO,CAAC,OAAA,KAAY,CAAC,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EACtF;AAEA,EAAA,OAAO,gBAAA;AACX,CAAA;AAEA,IAAO,6BAAA,GAAQ","file":"chunk-LBXJKEOF.mjs","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import type { Handler as CreateHandler } from \"./handler/create\";\nimport type { Handler as DeleteHandler } from \"./handler/delete\";\nimport type { Handler as ListHandler } from \"./handler/list\";\nimport type { Handler as GetHandler } from \"./handler/read\";\nimport type { Handler as UpdateHandler } from \"./handler/update\";\n\nexport enum RouteType {\n CREATE = \"CREATE\",\n DELETE = \"DELETE\",\n READ_ALL = \"READ_ALL\",\n READ_ONE = \"READ_ONE\",\n UPDATE = \"UPDATE\",\n}\n\nexport interface ModelOption {\n exclude?: RouteType[];\n formatResourceId?: (resourceId: string) => number | string;\n name?: string;\n only?: RouteType[];\n}\n\nexport type ModelsOptions<M extends string = string> = {\n [key in M]?: ModelOption;\n};\n\nexport interface HandlerOptions<M extends string = string> {\n exposeStrategy?: \"all\" | \"none\";\n formatResourceId?: (resourceId: string) => number | string;\n handlers?: {\n create?: CreateHandler;\n delete?: DeleteHandler;\n get?: GetHandler;\n list?: ListHandler;\n update?: UpdateHandler;\n };\n models?: ModelsOptions<M>;\n pagination?: PaginationConfig;\n}\n\nexport interface PaginationConfig {\n perPage: number;\n}\n\nexport interface HandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceName: string;\n}\n\nexport interface UniqueResourceHandlerParameters<T, Q> {\n adapter: Adapter<T, Q>;\n query: Q;\n resourceId: number | string;\n resourceName: string;\n}\n\nexport interface Adapter<T, Q, M extends string = string> {\n connect?: () => Promise<void>;\n create: (resourceName: M, data: any, query: Q) => Promise<T>;\n delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n disconnect?: () => Promise<void>;\n getAll: (resourceName: M, query: Q) => Promise<T[]>;\n getModels: () => M[];\n getOne: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;\n getPaginationData: (resourceName: M, query: Q) => Promise<PaginationData>;\n handleError?: (error: Error) => void;\n init?: () => Promise<void>;\n mapModelsToRouteNames?: () => Promise<{ [key in M]?: string }>;\n models?: M[];\n parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;\n update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;\n}\n\nexport interface PaginationData {\n page: number;\n pageCount: number;\n total: number;\n}\n\nexport type RecursiveField = Record<string, Record<string, boolean> | boolean>;\n\nexport type WhereOperator = \"$cont\" | \"$ends\" | \"$eq\" | \"$gt\" | \"$gte\" | \"$in\" | \"$isnull\" | \"$lt\" | \"$lte\" | \"$neq\" | \"$notin\" | \"$starts\";\n\nexport type SearchCondition = Date | boolean | number | string | null;\n\nexport type WhereCondition = {\n [key in WhereOperator]?: SearchCondition;\n};\n\nexport type Condition = { [key: string]: Condition | SearchCondition | WhereCondition };\n\nexport type WhereField = Condition & {\n $and?: Condition | Condition[];\n $not?: Condition | Condition[];\n $or?: Condition | Condition[];\n};\n\nexport type OrderByOperator = \"$asc\" | \"$desc\";\n\nexport type OrderByField = Record<string, OrderByOperator>;\n\nexport interface ParsedQueryParameters {\n distinct?: string;\n include?: RecursiveField;\n limit?: number | undefined;\n orderBy?: OrderByField;\n originalQuery?: Record<string, any>;\n page?: number | undefined;\n select?: RecursiveField;\n skip?: number | undefined;\n where?: WhereField;\n}\n\nexport type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;\n\nexport interface FakePrismaClient {\n $connect: () => void;\n $disconnect: () => Promise<void>;\n [key: string]: any;\n _dmmf?: any;\n\n _getDmmf?: () => any;\n}\n","import { RouteType } from \"../types\";\n\nconst getAccessibleRoutes = (only?: RouteType[], exclude?: RouteType[], defaultExposeStrategy: \"all\" | \"none\" = \"all\"): RouteType[] => {\n let accessibleRoutes: RouteType[]\n = defaultExposeStrategy === \"none\" ? [] : [RouteType.READ_ALL, RouteType.READ_ONE, RouteType.UPDATE, RouteType.DELETE, RouteType.CREATE];\n\n if (Array.isArray(only)) {\n accessibleRoutes = only;\n }\n\n if (exclude?.length) {\n accessibleRoutes = accessibleRoutes.filter((element) => !exclude.includes(element));\n }\n\n return accessibleRoutes;\n};\n\nexport default getAccessibleRoutes;\n"]}