@visulima/crud 2.0.34 → 2.0.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/crud",
3
- "version": "2.0.34",
3
+ "version": "2.0.35",
4
4
  "description": "visulima crud",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -65,58 +65,13 @@
65
65
  "LICENSE.md"
66
66
  ],
67
67
  "dependencies": {
68
- "@visulima/pagination": "3.0.25",
69
- "@visulima/prisma-dmmf-transformer": "2.0.25",
68
+ "@visulima/pagination": "3.0.26",
69
+ "@visulima/prisma-dmmf-transformer": "2.0.26",
70
70
  "http-errors": "^2.0.0",
71
71
  "path-to-regexp": "^8.2.0"
72
72
  },
73
- "devDependencies": {
74
- "@anolilab/eslint-config": "^15.0.3",
75
- "@anolilab/prettier-config": "^5.0.14",
76
- "@anolilab/semantic-release-pnpm": "^1.1.6",
77
- "@anolilab/semantic-release-preset": "^9.0.3",
78
- "@arthurgeron/eslint-plugin-react-usememo": "^2.4.4",
79
- "@babel/core": "^7.26.0",
80
- "@opentelemetry/api": "^1.9.0",
81
- "@prisma/client": "6.2.1",
82
- "@rushstack/eslint-plugin-security": "^0.8.3",
83
- "@testing-library/react": "^16.1.0",
84
- "@types/http-errors": "^2.0.4",
85
- "@types/json-schema": "7.0.15",
86
- "@types/node": "18.19.15",
87
- "@vitest/coverage-v8": "^2.1.8",
88
- "@vitest/ui": "^2.1.8",
89
- "conventional-changelog-conventionalcommits": "8.0.0",
90
- "cross-env": "^7.0.3",
91
- "dot-prop": "9.0.0",
92
- "eslint": "8.57.0",
93
- "eslint-plugin-deprecation": "^3.0.0",
94
- "eslint-plugin-etc": "^2.0.3",
95
- "eslint-plugin-import": "npm:eslint-plugin-i@^2.29.1",
96
- "eslint-plugin-jsx-a11y": "^6.10.2",
97
- "eslint-plugin-mdx": "^3.1.5",
98
- "eslint-plugin-react": "^7.37.3",
99
- "eslint-plugin-react-hooks": "^5.1.0",
100
- "eslint-plugin-ssr-friendly": "^1.3.0",
101
- "eslint-plugin-testing-library": "^7.1.1",
102
- "eslint-plugin-validate-jsx-nesting": "^0.1.1",
103
- "eslint-plugin-vitest": "^0.5.4",
104
- "eslint-plugin-vitest-globals": "^1.5.0",
105
- "next": "^15.1.4",
106
- "next-test-api-route-handler": "^4.0.14",
107
- "node-mocks-http": "^1.16.2",
108
- "openapi-types": "^12.1.3",
109
- "prettier": "^3.4.2",
110
- "react": "^19.0.0",
111
- "react-dom": "^19.0.0",
112
- "rimraf": "6.0.1",
113
- "semantic-release": "24.2.1",
114
- "tsup": "^8.3.5",
115
- "typescript": "5.7.3",
116
- "vitest": "^2.1.8"
117
- },
118
73
  "engines": {
119
- "node": ">=18.* <=23.*"
74
+ "node": ">=18.0.0 <=23.x"
120
75
  },
121
76
  "os": [
122
77
  "darwin",
@@ -126,41 +81,5 @@
126
81
  "publishConfig": {
127
82
  "access": "public",
128
83
  "provenance": true
129
- },
130
- "anolilab": {
131
- "eslint-config": {
132
- "plugin": {
133
- "tsdoc": false
134
- },
135
- "warn_on_unsupported_typescript_version": false,
136
- "info_on_disabling_jsx_react_rule": false,
137
- "info_on_disabling_prettier_conflict_rule": false,
138
- "info_on_disabling_jsonc_sort_keys_rule": false,
139
- "info_on_disabling_etc_no_deprecated": false
140
- }
141
- },
142
- "optionalDependenciest": {
143
- "next": ">=12.0 || >=13.0 || >=14.0 || >=15.0",
144
- "@prisma/client": "^3.0.0 || ^4.0.0"
145
- },
146
- "sources": [
147
- "src/index.ts",
148
- "src/next/index.ts"
149
- ],
150
- "scripts": {
151
- "build": "cross-env NODE_ENV=development tsup",
152
- "build:prod": "cross-env NODE_ENV=production tsup",
153
- "clean": "rimraf node_modules dist .eslintcache",
154
- "dev": "pnpm run build --watch",
155
- "lint:eslint": "eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs",
156
- "lint:eslint:fix": "eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs --fix",
157
- "lint:package-json": "publint --strict",
158
- "lint:prettier": "prettier --config=.prettierrc.cjs --check .",
159
- "lint:prettier:fix": "prettier --config=.prettierrc.cjs --write .",
160
- "lint:types": "tsc --noEmit",
161
- "test": "vitest run",
162
- "test:coverage": "vitest run --coverage",
163
- "test:ui": "vitest --ui --coverage.enabled=true",
164
- "test:watch": "vitest"
165
84
  }
166
85
  }
@@ -1,2 +0,0 @@
1
- import {fileURLToPath}from'url';import E from'path';var p=Object.create;var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var y=(e,r)=>()=>(e&&(r=e(e=0)),r);var A=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),M=(e,r)=>{for(var t in r)s(e,t,{get:r[t],enumerable:!0});},d=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!g.call(e,o)&&o!==t&&s(e,o,{get:()=>r[o],enumerable:!(n=m(r,o))||n.enumerable});return e};var h=(e,r,t)=>(t=e!=null?p(c(e)):{},d(r||!e||!e.__esModule?s(t,"default",{value:e,enumerable:!0}):t,e)),D=e=>d(s({},"__esModule",{value:!0}),e);var P,R,l,a=y(()=>{P=()=>fileURLToPath(import.meta.url),R=()=>E.dirname(P()),l=R();});a();var C=(i=>(i.CREATE="CREATE",i.DELETE="DELETE",i.READ_ALL="READ_ALL",i.READ_ONE="READ_ONE",i.UPDATE="UPDATE",i))(C||{});a();var T=(e,r,t="all")=>{let n=t==="none"?[]:["READ_ALL","READ_ONE","UPDATE","DELETE","CREATE"];return Array.isArray(e)&&(n=e),r?.length&&(n=n.filter(o=>!r.includes(o))),n},N=T;export{y as a,A as b,M as c,h as d,D as e,l as f,a as g,C as h,N as i};//# sourceMappingURL=chunk-PWWQBATK.mjs.map
2
- //# sourceMappingURL=chunk-PWWQBATK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.3.5_@swc+core@1.6.7_@swc+helpers@0.5.15__jiti@2.4.2_postcss@8.4.49_tsx@4.19.2_typescript@5.7.3_yaml@2.7.0/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-PWWQBATK.mjs","sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\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,2 +0,0 @@
1
- 'use strict';var l=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var g=(e,r)=>()=>(e&&(r=e(e=0)),r);var E=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),P=(e,r)=>{for(var t in r)s(e,t,{get:r[t],enumerable:!0});},d=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!c.call(e,o)&&o!==t&&s(e,o,{get:()=>r[o],enumerable:!(n=p(r,o))||n.enumerable});return e};var x=(e,r,t)=>(t=e!=null?l(m(e)):{},d(r||!e||!e.__esModule?s(t,"default",{value:e,enumerable:!0}):t,e)),C=e=>d(s({},"__esModule",{value:!0}),e);var a=g(()=>{});a();var f=(i=>(i.CREATE="CREATE",i.DELETE="DELETE",i.READ_ALL="READ_ALL",i.READ_ONE="READ_ONE",i.UPDATE="UPDATE",i))(f||{});a();var R=(e,r,t="all")=>{let n=t==="none"?[]:["READ_ALL","READ_ONE","UPDATE","DELETE","CREATE"];return Array.isArray(e)&&(n=e),r?.length&&(n=n.filter(o=>!r.includes(o))),n},h=R;exports.a=g;exports.b=E;exports.c=P;exports.d=x;exports.e=C;exports.f=a;exports.g=f;exports.h=h;//# sourceMappingURL=chunk-YVU3D6WJ.js.map
2
- //# sourceMappingURL=chunk-YVU3D6WJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.3.5_@swc+core@1.6.7_@swc+helpers@0.5.15__jiti@2.4.2_postcss@8.4.49_tsx@4.19.2_typescript@5.7.3_yaml@2.7.0/node_modules/tsup/assets/cjs_shims.js","../src/types.ts","../src/utils/get-accessible-routes.ts"],"names":["init_cjs_shims","__esmMin","RouteType","getAccessibleRoutes","only","exclude","defaultExposeStrategy","accessibleRoutes","element","get_accessible_routes_default"],"mappings":"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","file":"chunk-YVU3D6WJ.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"]}