@visulima/crud 2.0.8 → 2.0.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ ## @visulima/crud [2.0.10](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.9...@visulima/crud@2.0.10) (2023-11-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * updated dep versions ([ed70375](https://github.com/visulima/visulima/commit/ed7037584477dbda4a8a6405a1104876e8a6c703))
7
+
8
+
9
+
10
+ ### Dependencies
11
+
12
+ * **@visulima/pagination:** upgraded to 3.0.10
13
+ * **@visulima/prisma-dmmf-transformer:** upgraded to 2.0.10
14
+
15
+ ## @visulima/crud [2.0.9](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.8...@visulima/crud@2.0.9) (2023-11-30)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **deps:** updated package deps ([b4f4ede](https://github.com/visulima/visulima/commit/b4f4eded7bbded62b341ade0017ab357336f3af2))
21
+
22
+
23
+
24
+ ### Dependencies
25
+
26
+ * **@visulima/pagination:** upgraded to 3.0.9
27
+ * **@visulima/prisma-dmmf-transformer:** upgraded to 2.0.9
28
+
1
29
  ## @visulima/crud [2.0.8](https://github.com/visulima/visulima/compare/@visulima/crud@2.0.7...@visulima/crud@2.0.8) (2023-11-07)
2
30
 
3
31
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/api-utils/index.ts","../../src/next/index.ts","../../src/next/api/edge/index.ts","../../src/base-crud-handler.ts","../../src/handler/create.ts","../../src/handler/delete.ts","../../src/handler/list.ts","../../src/handler/read.ts","../../src/handler/update.ts","../../src/query-parser.ts","../../src/utils/format-resource-id.ts","../../src/utils/get-resource-name-from-url.ts","../../src/utils/get-route-type.ts","../../src/utils/validate-adapter-methods.ts","../../src/next/api/node/index.ts"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","HeadersAdapter","Error","constructor","callable","Headers","headers","Proxy","lowercased","toLowerCase","original","Object","keys","find","o","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","INSTRUMENTATION_HOOKS_LOCATION_REGEXP","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_DEFAULT_DIRS_WITH_APP","ESLINT_PROMPT_VALUES","SERVER_RUNTIME","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","title","recommended","config","extends","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","GROUP","server","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","require_cookie","__commonJSMin","exports","module","init_cjs_shims","e","r","parse","serialize","i","t","a","n","s","p","f","u","v","c","tryDecode","getCookieParser","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","cookie","parseCookieFn","require","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","process","path","undefined","defineProperty","enumerable","message","statusMessage","getter","opts","configurable","optsReset","writable","import_api_utils","createHttpError","createHandler","adapter","query","request","resourceName","create_default","deleteHandler","resourceId","delete_default","paginate","listHandler","pagination","isPaginated","paginationOptions","resources","page","total","list_default","readHandler","resource","read_default","updateHandler","update_default","URL","parseRecursive","select","selectFields","field","parseWhere","where","whereObject","parsed","parseOrderBy","orderBy","orderByObject","parseQuery","searchParams","parsedQuery","query_parser_default","formatResourceId","format_resource_id_default","ensureCamelCase","string_","getResourceNameFromUrl","models","realPath","modelName","routeName","camelCaseModel","match","getRouteType","method","entityMatcher","simpleMatcher","pathMatch","get_route_type_default","adapterMethods","validateAdapterMethods","validate_adapter_methods_default","baseHandler","responseExecutor","finalExecutor","error_","error","routeNames","modelRoutes","responseOrContext","routeType","modelConfig","get_accessible_routes_default","resourceIdFormatted","parameters","responseConfig","base_crud_handler_default","handler","_","edge_default","response","node_default"],"mappings":"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","sourcesContent":[null,null,null,"(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();",null,"export { default as edgeHandler } from \"./api/edge\";\nexport { default as nodeHandler } from \"./api/node\";\n","import baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <T, R extends Request, Context, Q extends ParsedQueryParameters = any, M extends string = string>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>> =>\n await baseHandler<R, Context, T, Q, M>(\n async (_, responseConfig) =>\n new Response(JSON.stringify(responseConfig.data), {\n headers: {\n \"content-type\": \"application/json; charset=utf-8\",\n },\n status: responseConfig.status,\n }),\n async () => {},\n adapter,\n options,\n );\n\nexport default handler;\n","import type { IncomingMessage, ServerResponse } from \"node:http\";\n\nimport type { HttpError } from \"http-errors\";\nimport createHttpError from \"http-errors\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ApiError } from \"next/dist/server/api-utils\";\n\nimport createHandler from \"./handler/create\";\nimport deleteHandler from \"./handler/delete\";\nimport listHandler from \"./handler/list\";\nimport readHandler from \"./handler/read\";\nimport updateHandler from \"./handler/update\";\nimport parseQuery from \"./query-parser\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, HandlerParameters, ParsedQueryParameters } from \"./types.d\";\nimport { RouteType } from \"./types.d\";\nimport formatResourceId from \"./utils/format-resource-id\";\nimport getAccessibleRoutes from \"./utils/get-accessible-routes\";\nimport { getResourceNameFromUrl } from \"./utils/get-resource-name-from-url\";\nimport getRouteType from \"./utils/get-route-type\";\nimport validateAdapterMethods from \"./utils/validate-adapter-methods\";\n\ninterface ResponseConfig {\n data: any;\n status: number;\n}\n\nasync function baseHandler<R extends Request, Context, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: Context, responseConfig: ResponseConfig) => Promise<Response>,\n finalExecutor: (responseOrContext: Context) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>>;\n\nasync function baseHandler<R extends IncomingMessage, RResponse extends ServerResponse, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<void>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>>;\n\n// eslint-disable-next-line sonarjs/cognitive-complexity,func-style\nasync function baseHandler<\n R extends { headers: { host?: string }; method: string; url: string },\n RResponse,\n T,\n Q extends ParsedQueryParameters = any,\n M extends string = string,\n>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<RResponse>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>> {\n try {\n validateAdapterMethods(adapter);\n } catch (error_: any) {\n const error = error_ as HttpError;\n\n throw new ApiError(error.statusCode, error.message);\n }\n\n await adapter.init?.();\n\n const config = {\n formatResourceId,\n pagination: {\n perPage: 20,\n },\n ...options,\n };\n\n const routeNames = await adapter.mapModelsToRouteNames?.();\n const modelRoutes: { [key in M]?: string } = {};\n\n adapter.getModels().forEach((modelName) => {\n modelRoutes[modelName as M] = config.models?.[modelName as M]?.name ?? routeNames?.[modelName] ?? modelName;\n });\n\n return async (request, responseOrContext) => {\n const { modelName, resourceName } = getResourceNameFromUrl(request.url, modelRoutes as { [key in M]: string });\n\n if (!resourceName) {\n if (process.env.NODE_ENV === \"development\") {\n const mappedModels = await adapter.mapModelsToRouteNames?.();\n\n if (typeof mappedModels === \"object\") {\n throw createHttpError(404, `Resource not found, possible models: ${Object.values(mappedModels).join(\", \")}`);\n }\n }\n\n throw createHttpError(404, `Resource not found: ${request.url}`);\n }\n\n const { resourceId, routeType } = getRouteType(request.method, request.url, resourceName);\n\n if (routeType === null) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n const modelConfig = options?.models?.[modelName as M];\n\n const accessibleRoutes = getAccessibleRoutes(modelConfig?.only, modelConfig?.exclude, options?.exposeStrategy ?? \"all\");\n\n if (!accessibleRoutes.includes(routeType)) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n try {\n const resourceIdFormatted = modelConfig?.formatResourceId?.(resourceId as string) ?? config.formatResourceId(resourceId as string);\n\n await adapter.connect?.();\n\n const parsedQuery = parseQuery(`https://${request.headers.host?.replace(/\\/$/u, \"\")}/${request.url}`);\n const parameters: HandlerParameters<T, Q> = {\n adapter,\n query: adapter.parseQuery(modelName as M, parsedQuery),\n resourceName: modelName,\n };\n\n try {\n let responseConfig: ResponseConfig;\n\n switch (routeType) {\n case RouteType.READ_ONE: {\n responseConfig = await (config.handlers?.get ?? readHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.READ_ALL: {\n responseConfig = await (config.handlers?.list ?? listHandler)<T, Q>({\n ...parameters,\n pagination: config.pagination,\n query: {\n ...parameters.query,\n limit: parsedQuery.limit ? Number(parsedQuery.limit) : undefined,\n page: parsedQuery.page ? Number(parsedQuery.page) : undefined,\n },\n });\n break;\n }\n case RouteType.CREATE: {\n responseConfig = await (config.handlers?.create ?? createHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Record<string, any> },\n });\n break;\n }\n case RouteType.UPDATE: {\n responseConfig = await (config.handlers?.update ?? updateHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Partial<T> },\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.DELETE: {\n responseConfig = await (config.handlers?.delete ?? deleteHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n default: {\n responseConfig = {\n data: \"Method not found\",\n status: 404,\n };\n }\n }\n\n await responseExecutor(responseOrContext, responseConfig);\n } catch (error: any) {\n if (adapter.handleError && !(error instanceof ApiError)) {\n adapter.handleError(error);\n } else {\n throw error;\n }\n }\n } finally {\n await adapter.disconnect?.();\n\n await finalExecutor(responseOrContext);\n }\n };\n}\n\nexport default baseHandler;\n","import type { HandlerParameters } from \"../types.d\";\n\nconst createHandler: Handler = async ({ adapter, query, request, resourceName }) => {\n const resources = await adapter.create(resourceName, request.body, query);\n\n return {\n data: resources,\n status: 201,\n };\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: HandlerParameters<T, Q> & { request: Request & { body: Record<string, any> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default createHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst deleteHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const deletedResource = await adapter.delete(resourceName, resourceId, query);\n\n return {\n data: deletedResource,\n status: 200,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\nexport default deleteHandler;\n","import { paginate } from \"@visulima/pagination\";\n\nimport type { HandlerParameters, PaginationConfig, ParsedQueryParameters } from \"../types.d\";\n\ninterface PaginationOptions {\n page: number;\n perPage: number;\n}\n\nconst listHandler: Handler = async ({ adapter, pagination, query, resourceName }) => {\n let isPaginated = false;\n let paginationOptions: PaginationOptions | undefined;\n\n if (query.page !== undefined) {\n if (query.page <= 0) {\n throw new Error(\"page query must be a strictly positive number\");\n }\n\n paginationOptions = {\n page: query.page,\n perPage: query.limit ?? pagination.perPage,\n };\n }\n\n if (paginationOptions) {\n isPaginated = true;\n\n // eslint-disable-next-line no-param-reassign\n query.skip = (paginationOptions.page - 1) * paginationOptions.perPage;\n // eslint-disable-next-line no-param-reassign\n query.limit = paginationOptions.perPage;\n }\n\n const resources = await adapter.getAll(resourceName, query);\n\n if (isPaginated) {\n const { page, total } = await adapter.getPaginationData(resourceName, query);\n\n const paginator = paginate(page, (paginationOptions as PaginationOptions).perPage, total, resources);\n\n return {\n data: paginator.toJSON(),\n status: 200,\n };\n }\n\n return {\n data: resources,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q extends ParsedQueryParameters>(\n parameters: HandlerParameters<T, Q> & { pagination: PaginationConfig },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default listHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst readHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource !== \"object\") {\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n }\n\n return {\n data: resource,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default readHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst updateHandler: Handler = async ({ adapter, query, request, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const updatedResource = await adapter.update(resourceName, resourceId, request.body, query);\n\n return {\n data: updatedResource,\n status: 201,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: UniqueResourceHandlerParameters<T, Q> & { request: Request & { body: Partial<T> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default updateHandler;\n","import { URL } from \"node:url\";\n\n// eslint-disable-next-line no-restricted-imports\nimport set from \"lodash.set\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types.d\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n set(selectFields, field, true);\n });\n\n return selectFields;\n};\n\nconst parseWhere = (where: string): WhereField => {\n const whereObject = JSON.parse(where);\n const parsed: WhereField = {};\n\n Object.keys(whereObject).forEach((key) => {\n set(parsed, key, whereObject[key]);\n });\n\n return parsed;\n};\n\nconst parseOrderBy = (orderBy: string): OrderByField => {\n const parsed: OrderByField = {};\n const orderByObject = JSON.parse(orderBy);\n\n if (Object.keys(orderByObject).length > 0) {\n const key = Object.keys(orderByObject)[0] as string;\n\n if (orderByObject[key as keyof typeof orderByObject] === \"$asc\" || orderByObject[key as keyof typeof orderByObject] === \"$desc\") {\n parsed[key] = orderByObject[key as keyof typeof orderByObject];\n }\n }\n\n if (Object.keys(parsed).length !== 1) {\n throw new Error(\"orderBy needs to be an object with exactly 1 property with either $asc or $desc value\");\n }\n\n return parsed;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst parseQuery = (url?: string): ParsedQueryParameters => {\n if (url) {\n const { searchParams } = new URL(url);\n const parsedQuery: ParsedQueryParameters = {};\n\n if (searchParams.get(\"select\")) {\n parsedQuery.select = parseRecursive(searchParams.get(\"select\") as string);\n }\n\n if (searchParams.get(\"include\")) {\n parsedQuery.include = parseRecursive(searchParams.get(\"include\") as string);\n }\n\n if (searchParams.get(\"where\")) {\n parsedQuery.where = parseWhere(searchParams.get(\"where\") as string);\n }\n\n if (searchParams.get(\"orderBy\")) {\n parsedQuery.orderBy = parseOrderBy(searchParams.get(\"orderBy\") as string);\n }\n\n if (searchParams.has(\"limit\")) {\n parsedQuery.limit = Number.isFinite(+(searchParams.get(\"limit\") as string)) ? +(searchParams.get(\"limit\") as string) : undefined;\n }\n\n if (searchParams.has(\"skip\")) {\n parsedQuery.skip = Number.isFinite(+(searchParams.get(\"skip\") as string)) ? +(searchParams.get(\"skip\") as string) : undefined;\n }\n\n if (searchParams.get(\"distinct\")) {\n parsedQuery.distinct = searchParams.get(\"distinct\") as string;\n }\n\n if (searchParams.get(\"page\")) {\n parsedQuery.page = Number.isFinite(+(searchParams.get(\"page\") as string)) ? +(searchParams.get(\"page\") as string) : undefined;\n }\n\n return {\n originalQuery: Object.fromEntries(searchParams.entries()),\n ...parsedQuery,\n };\n }\n\n return {};\n};\n\nexport default parseQuery;\n","const formatResourceId = (resourceId: string): number | string => (Number.isSafeInteger(+resourceId) ? +resourceId : resourceId);\n\nexport default formatResourceId;\n","export const ensureCamelCase = (string_: string): string => `${string_.charAt(0).toLowerCase()}${string_.slice(1)}`;\n\nexport const getResourceNameFromUrl = <M extends string = string>(\n url: string,\n models: { [key in M]: string },\n): {\n modelName: string;\n resourceName: string;\n} => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n const modelName = (Object.keys(models) as M[]).find((name) => {\n const routeName = models[name];\n const camelCaseModel = ensureCamelCase(routeName);\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return new RegExp(`(${routeName}|${camelCaseModel}$)|(${routeName}|${camelCaseModel}/)`, \"g\").test(realPath);\n });\n\n if (modelName === undefined) {\n throw new Error(`Couldn't find model ${modelName} name for url ${url}`);\n }\n\n return {\n modelName,\n resourceName: models[modelName],\n };\n};\n","import { match } from \"path-to-regexp\";\n\nimport { RouteType } from \"../types.d\";\n\ninterface PathMatch {\n id: string;\n}\n\nconst getRouteType: (method: string, url: string, resourceName: string) => GetRouteType = (method, url, resourceName) => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n if (!realPath.includes(`/${resourceName}`)) {\n throw new Error(`invalid resource name '${resourceName}' for route '${realPath}'`);\n }\n\n const entityMatcher = match<PathMatch>([`/(.*)/${resourceName}`, `/(.*)/${resourceName}/:id`], { decode: decodeURIComponent });\n const simpleMatcher = match(`/(.*)/${resourceName}`, {\n decode: decodeURIComponent,\n });\n\n switch (method) {\n case \"GET\": {\n const pathMatch = entityMatcher(realPath);\n\n // If we got a /something after the resource name, we are reading 1 entity\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.READ_ONE,\n };\n }\n\n return {\n routeType: RouteType.READ_ALL,\n };\n }\n case \"POST\": {\n const pathMatch = simpleMatcher(realPath);\n\n if (pathMatch) {\n return {\n routeType: RouteType.CREATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"PUT\":\n case \"PATCH\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.UPDATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"DELETE\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.DELETE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n default: {\n return {\n routeType: null,\n };\n }\n }\n};\n\nexport interface GetRouteType {\n resourceId?: string;\n routeType: RouteType | null;\n}\n\nexport default getRouteType;\n","import createHttpError from \"http-errors\";\n\nimport type { Adapter } from \"../types.d\";\n\nconst adapterMethods = [\"create\", \"delete\", \"getAll\", \"getOne\", \"parseQuery\", \"update\", \"getPaginationData\", \"getModels\"];\n\nconst validateAdapterMethods = <T, Q>(adapter: Adapter<T, Q>): void => {\n adapterMethods.forEach((method) => {\n if (!adapter[method as keyof Adapter<T, Q>]) {\n throw createHttpError(500, `Adapter must implement the \"${method}\" method.`);\n }\n });\n};\n\nexport default validateAdapterMethods;\n","import type { NextApiRequest, NextApiResponse } from \"next\";\n\nimport baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <\n T,\n Q extends ParsedQueryParameters = any,\n R extends NextApiRequest = NextApiRequest,\n Response extends NextApiResponse = NextApiResponse,\n M extends string = string,\n>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Response>> =>\n await baseHandler<R, Response, T, Q, M>(\n async (response, responseConfig) => {\n response.status(responseConfig.status).send(responseConfig.data);\n },\n async (response) => {\n response.end();\n },\n adapter,\n options,\n );\n\nexport default handler;\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/api-utils/index.ts","../../src/next/index.ts","../../src/next/api/edge/index.ts","../../src/base-crud-handler.ts","../../src/handler/create.ts","../../src/handler/delete.ts","../../src/handler/list.ts","../../src/handler/read.ts","../../src/handler/update.ts","../../src/query-parser.ts","../../src/utils/format-resource-id.ts","../../src/utils/get-resource-name-from-url.ts","../../src/utils/get-route-type.ts","../../src/utils/validate-adapter-methods.ts","../../src/next/api/node/index.ts"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","HeadersAdapter","Error","constructor","callable","Headers","headers","Proxy","lowercased","toLowerCase","original","Object","keys","find","o","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","INSTRUMENTATION_HOOKS_LOCATION_REGEXP","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_DEFAULT_DIRS_WITH_APP","ESLINT_PROMPT_VALUES","SERVER_RUNTIME","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","title","recommended","config","extends","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","GROUP","server","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","require_cookie","__commonJSMin","exports","module","init_cjs_shims","e","r","parse","serialize","i","t","a","n","s","p","f","u","v","c","tryDecode","getCookieParser","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","cookie","parseCookieFn","require","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","process","path","undefined","defineProperty","enumerable","message","statusMessage","getter","opts","configurable","optsReset","writable","import_api_utils","createHttpError","createHandler","adapter","query","request","resourceName","create_default","deleteHandler","resourceId","delete_default","paginate","listHandler","pagination","isPaginated","paginationOptions","resources","page","total","list_default","readHandler","resource","read_default","updateHandler","update_default","URL","parseRecursive","select","selectFields","field","parseWhere","where","whereObject","parsed","parseOrderBy","orderBy","orderByObject","parseQuery","searchParams","parsedQuery","query_parser_default","formatResourceId","format_resource_id_default","ensureCamelCase","string_","getResourceNameFromUrl","models","realPath","modelName","routeName","camelCaseModel","match","getRouteType","method","entityMatcher","simpleMatcher","pathMatch","get_route_type_default","adapterMethods","validateAdapterMethods","validate_adapter_methods_default","baseHandler","responseExecutor","finalExecutor","error_","error","routeNames","modelRoutes","responseOrContext","routeType","modelConfig","get_accessible_routes_default","resourceIdFormatted","parameters","responseConfig","base_crud_handler_default","handler","_","edge_default","response","node_default"],"mappings":"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","sourcesContent":[null,null,null,"(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();",null,"export { default as edgeHandler } from \"./api/edge\";\nexport { default as nodeHandler } from \"./api/node\";\n","import baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <T, R extends Request, Context, Q extends ParsedQueryParameters = any, M extends string = string>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>> =>\n await baseHandler<R, Context, T, Q, M>(\n async (_, responseConfig) =>\n new Response(JSON.stringify(responseConfig.data), {\n headers: {\n \"content-type\": \"application/json; charset=utf-8\",\n },\n status: responseConfig.status,\n }),\n async () => {},\n adapter,\n options,\n );\n\nexport default handler;\n","import type { IncomingMessage, ServerResponse } from \"node:http\";\n\nimport type { HttpError } from \"http-errors\";\nimport createHttpError from \"http-errors\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ApiError } from \"next/dist/server/api-utils\";\n\nimport createHandler from \"./handler/create\";\nimport deleteHandler from \"./handler/delete\";\nimport listHandler from \"./handler/list\";\nimport readHandler from \"./handler/read\";\nimport updateHandler from \"./handler/update\";\nimport parseQuery from \"./query-parser\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, HandlerParameters, ParsedQueryParameters } from \"./types.d\";\nimport { RouteType } from \"./types.d\";\nimport formatResourceId from \"./utils/format-resource-id\";\nimport getAccessibleRoutes from \"./utils/get-accessible-routes\";\nimport { getResourceNameFromUrl } from \"./utils/get-resource-name-from-url\";\nimport getRouteType from \"./utils/get-route-type\";\nimport validateAdapterMethods from \"./utils/validate-adapter-methods\";\n\ninterface ResponseConfig {\n data: any;\n status: number;\n}\n\nasync function baseHandler<R extends Request, Context, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: Context, responseConfig: ResponseConfig) => Promise<Response>,\n finalExecutor: (responseOrContext: Context) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>>;\n\nasync function baseHandler<R extends IncomingMessage, RResponse extends ServerResponse, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<void>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>>;\n\n// eslint-disable-next-line sonarjs/cognitive-complexity,func-style\nasync function baseHandler<\n R extends { headers: { host?: string }; method: string; url: string },\n RResponse,\n T,\n Q extends ParsedQueryParameters = any,\n M extends string = string,\n>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<RResponse>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>> {\n try {\n validateAdapterMethods(adapter);\n } catch (error_: any) {\n const error = error_ as HttpError;\n\n throw new ApiError(error.statusCode, error.message);\n }\n\n await adapter.init?.();\n\n const config = {\n formatResourceId,\n pagination: {\n perPage: 20,\n },\n ...options,\n };\n\n const routeNames = await adapter.mapModelsToRouteNames?.();\n const modelRoutes: { [key in M]?: string } = {};\n\n adapter.getModels().forEach((modelName) => {\n modelRoutes[modelName as M] = config.models?.[modelName as M]?.name ?? routeNames?.[modelName] ?? modelName;\n });\n\n return async (request, responseOrContext) => {\n const { modelName, resourceName } = getResourceNameFromUrl(request.url, modelRoutes as { [key in M]: string });\n\n if (!resourceName) {\n if (process.env.NODE_ENV === \"development\") {\n const mappedModels = await adapter.mapModelsToRouteNames?.();\n\n if (typeof mappedModels === \"object\") {\n throw createHttpError(404, `Resource not found, possible models: ${Object.values(mappedModels).join(\", \")}`);\n }\n }\n\n throw createHttpError(404, `Resource not found: ${request.url}`);\n }\n\n const { resourceId, routeType } = getRouteType(request.method, request.url, resourceName);\n\n if (routeType === null) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n const modelConfig = options?.models?.[modelName as M];\n\n const accessibleRoutes = getAccessibleRoutes(modelConfig?.only, modelConfig?.exclude, options?.exposeStrategy ?? \"all\");\n\n if (!accessibleRoutes.includes(routeType)) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n try {\n const resourceIdFormatted = modelConfig?.formatResourceId?.(resourceId as string) ?? config.formatResourceId(resourceId as string);\n\n await adapter.connect?.();\n\n const parsedQuery = parseQuery(`https://${request.headers.host?.replace(/\\/$/u, \"\")}/${request.url}`);\n const parameters: HandlerParameters<T, Q> = {\n adapter,\n query: adapter.parseQuery(modelName as M, parsedQuery),\n resourceName: modelName,\n };\n\n try {\n let responseConfig: ResponseConfig;\n\n switch (routeType) {\n case RouteType.READ_ONE: {\n responseConfig = await (config.handlers?.get ?? readHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.READ_ALL: {\n responseConfig = await (config.handlers?.list ?? listHandler)<T, Q>({\n ...parameters,\n pagination: config.pagination,\n query: {\n ...parameters.query,\n limit: parsedQuery.limit ? Number(parsedQuery.limit) : undefined,\n page: parsedQuery.page ? Number(parsedQuery.page) : undefined,\n },\n });\n break;\n }\n case RouteType.CREATE: {\n responseConfig = await (config.handlers?.create ?? createHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Record<string, any> },\n });\n break;\n }\n case RouteType.UPDATE: {\n responseConfig = await (config.handlers?.update ?? updateHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Partial<T> },\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.DELETE: {\n responseConfig = await (config.handlers?.delete ?? deleteHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n default: {\n responseConfig = {\n data: \"Method not found\",\n status: 404,\n };\n }\n }\n\n await responseExecutor(responseOrContext, responseConfig);\n } catch (error: any) {\n if (adapter.handleError && !(error instanceof ApiError)) {\n adapter.handleError(error);\n } else {\n throw error;\n }\n }\n } finally {\n await adapter.disconnect?.();\n\n await finalExecutor(responseOrContext);\n }\n };\n}\n\nexport default baseHandler;\n","import type { HandlerParameters } from \"../types.d\";\n\nconst createHandler: Handler = async ({ adapter, query, request, resourceName }) => {\n const resources = await adapter.create(resourceName, request.body, query);\n\n return {\n data: resources,\n status: 201,\n };\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: HandlerParameters<T, Q> & { request: Request & { body: Record<string, any> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default createHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst deleteHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const deletedResource = await adapter.delete(resourceName, resourceId, query);\n\n return {\n data: deletedResource,\n status: 200,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\nexport default deleteHandler;\n","import { paginate } from \"@visulima/pagination\";\n\nimport type { HandlerParameters, PaginationConfig, ParsedQueryParameters } from \"../types.d\";\n\ninterface PaginationOptions {\n page: number;\n perPage: number;\n}\n\nconst listHandler: Handler = async ({ adapter, pagination, query, resourceName }) => {\n let isPaginated = false;\n let paginationOptions: PaginationOptions | undefined;\n\n if (query.page !== undefined) {\n if (query.page <= 0) {\n throw new Error(\"page query must be a strictly positive number\");\n }\n\n paginationOptions = {\n page: query.page,\n perPage: query.limit ?? pagination.perPage,\n };\n }\n\n if (paginationOptions) {\n isPaginated = true;\n\n // eslint-disable-next-line no-param-reassign\n query.skip = (paginationOptions.page - 1) * paginationOptions.perPage;\n // eslint-disable-next-line no-param-reassign\n query.limit = paginationOptions.perPage;\n }\n\n const resources = await adapter.getAll(resourceName, query);\n\n if (isPaginated) {\n const { page, total } = await adapter.getPaginationData(resourceName, query);\n\n const paginator = paginate(page, (paginationOptions as PaginationOptions).perPage, total, resources);\n\n return {\n data: paginator.toJSON(),\n status: 200,\n };\n }\n\n return {\n data: resources,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q extends ParsedQueryParameters>(\n parameters: HandlerParameters<T, Q> & { pagination: PaginationConfig },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default listHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst readHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource !== \"object\") {\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n }\n\n return {\n data: resource,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default readHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst updateHandler: Handler = async ({ adapter, query, request, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const updatedResource = await adapter.update(resourceName, resourceId, request.body, query);\n\n return {\n data: updatedResource,\n status: 201,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: UniqueResourceHandlerParameters<T, Q> & { request: Request & { body: Partial<T> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default updateHandler;\n","import { URL } from \"node:url\";\n\n// eslint-disable-next-line no-restricted-imports\nimport set from \"lodash.set\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types.d\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n set(selectFields, field, true);\n });\n\n return selectFields;\n};\n\nconst parseWhere = (where: string): WhereField => {\n const whereObject = JSON.parse(where);\n const parsed: WhereField = {};\n\n Object.keys(whereObject).forEach((key) => {\n set(parsed, key, whereObject[key]);\n });\n\n return parsed;\n};\n\nconst parseOrderBy = (orderBy: string): OrderByField => {\n const parsed: OrderByField = {};\n const orderByObject = JSON.parse(orderBy);\n\n if (Object.keys(orderByObject).length > 0) {\n const key = Object.keys(orderByObject)[0] as string;\n\n if (orderByObject[key as keyof typeof orderByObject] === \"$asc\" || orderByObject[key as keyof typeof orderByObject] === \"$desc\") {\n parsed[key] = orderByObject[key as keyof typeof orderByObject];\n }\n }\n\n if (Object.keys(parsed).length !== 1) {\n throw new Error(\"orderBy needs to be an object with exactly 1 property with either $asc or $desc value\");\n }\n\n return parsed;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst parseQuery = (url?: string): ParsedQueryParameters => {\n if (url) {\n const { searchParams } = new URL(url);\n const parsedQuery: ParsedQueryParameters = {};\n\n if (searchParams.get(\"select\")) {\n parsedQuery.select = parseRecursive(searchParams.get(\"select\") as string);\n }\n\n if (searchParams.get(\"include\")) {\n parsedQuery.include = parseRecursive(searchParams.get(\"include\") as string);\n }\n\n if (searchParams.get(\"where\")) {\n parsedQuery.where = parseWhere(searchParams.get(\"where\") as string);\n }\n\n if (searchParams.get(\"orderBy\")) {\n parsedQuery.orderBy = parseOrderBy(searchParams.get(\"orderBy\") as string);\n }\n\n if (searchParams.has(\"limit\")) {\n parsedQuery.limit = Number.isFinite(+(searchParams.get(\"limit\") as string)) ? +(searchParams.get(\"limit\") as string) : undefined;\n }\n\n if (searchParams.has(\"skip\")) {\n parsedQuery.skip = Number.isFinite(+(searchParams.get(\"skip\") as string)) ? +(searchParams.get(\"skip\") as string) : undefined;\n }\n\n if (searchParams.get(\"distinct\")) {\n parsedQuery.distinct = searchParams.get(\"distinct\") as string;\n }\n\n if (searchParams.get(\"page\")) {\n parsedQuery.page = Number.isFinite(+(searchParams.get(\"page\") as string)) ? +(searchParams.get(\"page\") as string) : undefined;\n }\n\n return {\n originalQuery: Object.fromEntries(searchParams.entries()),\n ...parsedQuery,\n };\n }\n\n return {};\n};\n\nexport default parseQuery;\n","const formatResourceId = (resourceId: string): number | string => (Number.isSafeInteger(+resourceId) ? +resourceId : resourceId);\n\nexport default formatResourceId;\n","export const ensureCamelCase = (string_: string): string => `${string_.charAt(0).toLowerCase()}${string_.slice(1)}`;\n\nexport const getResourceNameFromUrl = <M extends string = string>(\n url: string,\n models: { [key in M]: string },\n): {\n modelName: string;\n resourceName: string;\n} => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n const modelName = (Object.keys(models) as M[]).find((name) => {\n const routeName = models[name];\n const camelCaseModel = ensureCamelCase(routeName);\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return new RegExp(`(${routeName}|${camelCaseModel}$)|(${routeName}|${camelCaseModel}/)`, \"g\").test(realPath);\n });\n\n if (modelName === undefined) {\n throw new Error(`Couldn't find model ${modelName} name for url ${url}`);\n }\n\n return {\n modelName,\n resourceName: models[modelName],\n };\n};\n","import { match } from \"path-to-regexp\";\n\nimport { RouteType } from \"../types.d\";\n\ninterface PathMatch {\n id: string;\n}\n\nconst getRouteType: (method: string, url: string, resourceName: string) => GetRouteType = (method, url, resourceName) => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n if (!realPath.includes(`/${resourceName}`)) {\n throw new Error(`invalid resource name '${resourceName}' for route '${realPath}'`);\n }\n\n const entityMatcher = match<PathMatch>([`/(.*)/${resourceName}`, `/(.*)/${resourceName}/:id`], { decode: decodeURIComponent });\n const simpleMatcher = match(`/(.*)/${resourceName}`, {\n decode: decodeURIComponent,\n });\n\n switch (method) {\n case \"GET\": {\n const pathMatch = entityMatcher(realPath);\n\n // If we got a /something after the resource name, we are reading 1 entity\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.READ_ONE,\n };\n }\n\n return {\n routeType: RouteType.READ_ALL,\n };\n }\n case \"POST\": {\n const pathMatch = simpleMatcher(realPath);\n\n if (pathMatch) {\n return {\n routeType: RouteType.CREATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"PUT\":\n case \"PATCH\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.UPDATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"DELETE\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.DELETE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n default: {\n return {\n routeType: null,\n };\n }\n }\n};\n\nexport interface GetRouteType {\n resourceId?: string;\n routeType: RouteType | null;\n}\n\nexport default getRouteType;\n","import createHttpError from \"http-errors\";\n\nimport type { Adapter } from \"../types.d\";\n\nconst adapterMethods = [\"create\", \"delete\", \"getAll\", \"getOne\", \"parseQuery\", \"update\", \"getPaginationData\", \"getModels\"];\n\nconst validateAdapterMethods = <T, Q>(adapter: Adapter<T, Q>): void => {\n adapterMethods.forEach((method) => {\n if (!adapter[method as keyof Adapter<T, Q>]) {\n throw createHttpError(500, `Adapter must implement the \"${method}\" method.`);\n }\n });\n};\n\nexport default validateAdapterMethods;\n","import type { NextApiRequest, NextApiResponse } from \"next\";\n\nimport baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <\n T,\n Q extends ParsedQueryParameters = any,\n R extends NextApiRequest = NextApiRequest,\n Response extends NextApiResponse = NextApiResponse,\n M extends string = string,\n>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Response>> =>\n await baseHandler<R, Response, T, Q, M>(\n async (response, responseConfig) => {\n response.status(responseConfig.status).send(responseConfig.data);\n },\n async (response) => {\n response.end();\n },\n adapter,\n options,\n );\n\nexport default handler;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.2_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/api-utils/index.ts","../../src/next/index.ts","../../src/next/api/edge/index.ts","../../src/base-crud-handler.ts","../../src/handler/create.ts","../../src/handler/delete.ts","../../src/handler/list.ts","../../src/handler/read.ts","../../src/handler/update.ts","../../src/query-parser.ts","../../src/utils/format-resource-id.ts","../../src/utils/get-resource-name-from-url.ts","../../src/utils/get-route-type.ts","../../src/utils/validate-adapter-methods.ts","../../src/next/api/node/index.ts"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","HeadersAdapter","Error","constructor","callable","Headers","headers","Proxy","lowercased","toLowerCase","original","Object","keys","find","o","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","INSTRUMENTATION_HOOKS_LOCATION_REGEXP","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_DEFAULT_DIRS_WITH_APP","ESLINT_PROMPT_VALUES","SERVER_RUNTIME","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","title","recommended","config","extends","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","GROUP","server","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","require_cookie","__commonJSMin","exports","module","init_esm_shims","__dirname","e","r","parse","serialize","i","t","a","n","s","p","f","u","v","c","tryDecode","getCookieParser","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","cookie","parseCookieFn","require","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","process","path","undefined","defineProperty","enumerable","message","statusMessage","getter","opts","configurable","optsReset","writable","import_api_utils","createHttpError","createHandler","adapter","query","request","resourceName","create_default","deleteHandler","resourceId","delete_default","paginate","listHandler","pagination","isPaginated","paginationOptions","resources","page","total","list_default","readHandler","resource","read_default","updateHandler","update_default","URL","parseRecursive","select","selectFields","field","parseWhere","where","whereObject","parsed","parseOrderBy","orderBy","orderByObject","parseQuery","searchParams","parsedQuery","query_parser_default","formatResourceId","format_resource_id_default","ensureCamelCase","string_","getResourceNameFromUrl","models","realPath","modelName","routeName","camelCaseModel","match","getRouteType","method","entityMatcher","simpleMatcher","pathMatch","get_route_type_default","adapterMethods","validateAdapterMethods","validate_adapter_methods_default","baseHandler","responseExecutor","finalExecutor","error_","error","routeNames","modelRoutes","responseOrContext","routeType","modelConfig","get_accessible_routes_default","resourceIdFormatted","parameters","responseConfig","base_crud_handler_default","handler","_","edge_default","response","node_default"],"mappings":"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","sourcesContent":[null,null,null,"(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();",null,"export { default as edgeHandler } from \"./api/edge\";\nexport { default as nodeHandler } from \"./api/node\";\n","import baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <T, R extends Request, Context, Q extends ParsedQueryParameters = any, M extends string = string>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>> =>\n await baseHandler<R, Context, T, Q, M>(\n async (_, responseConfig) =>\n new Response(JSON.stringify(responseConfig.data), {\n headers: {\n \"content-type\": \"application/json; charset=utf-8\",\n },\n status: responseConfig.status,\n }),\n async () => {},\n adapter,\n options,\n );\n\nexport default handler;\n","import type { IncomingMessage, ServerResponse } from \"node:http\";\n\nimport type { HttpError } from \"http-errors\";\nimport createHttpError from \"http-errors\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ApiError } from \"next/dist/server/api-utils\";\n\nimport createHandler from \"./handler/create\";\nimport deleteHandler from \"./handler/delete\";\nimport listHandler from \"./handler/list\";\nimport readHandler from \"./handler/read\";\nimport updateHandler from \"./handler/update\";\nimport parseQuery from \"./query-parser\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, HandlerParameters, ParsedQueryParameters } from \"./types.d\";\nimport { RouteType } from \"./types.d\";\nimport formatResourceId from \"./utils/format-resource-id\";\nimport getAccessibleRoutes from \"./utils/get-accessible-routes\";\nimport { getResourceNameFromUrl } from \"./utils/get-resource-name-from-url\";\nimport getRouteType from \"./utils/get-route-type\";\nimport validateAdapterMethods from \"./utils/validate-adapter-methods\";\n\ninterface ResponseConfig {\n data: any;\n status: number;\n}\n\nasync function baseHandler<R extends Request, Context, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: Context, responseConfig: ResponseConfig) => Promise<Response>,\n finalExecutor: (responseOrContext: Context) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>>;\n\nasync function baseHandler<R extends IncomingMessage, RResponse extends ServerResponse, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<void>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>>;\n\n// eslint-disable-next-line sonarjs/cognitive-complexity,func-style\nasync function baseHandler<\n R extends { headers: { host?: string }; method: string; url: string },\n RResponse,\n T,\n Q extends ParsedQueryParameters = any,\n M extends string = string,\n>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<RResponse>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>> {\n try {\n validateAdapterMethods(adapter);\n } catch (error_: any) {\n const error = error_ as HttpError;\n\n throw new ApiError(error.statusCode, error.message);\n }\n\n await adapter.init?.();\n\n const config = {\n formatResourceId,\n pagination: {\n perPage: 20,\n },\n ...options,\n };\n\n const routeNames = await adapter.mapModelsToRouteNames?.();\n const modelRoutes: { [key in M]?: string } = {};\n\n adapter.getModels().forEach((modelName) => {\n modelRoutes[modelName as M] = config.models?.[modelName as M]?.name ?? routeNames?.[modelName] ?? modelName;\n });\n\n return async (request, responseOrContext) => {\n const { modelName, resourceName } = getResourceNameFromUrl(request.url, modelRoutes as { [key in M]: string });\n\n if (!resourceName) {\n if (process.env.NODE_ENV === \"development\") {\n const mappedModels = await adapter.mapModelsToRouteNames?.();\n\n if (typeof mappedModels === \"object\") {\n throw createHttpError(404, `Resource not found, possible models: ${Object.values(mappedModels).join(\", \")}`);\n }\n }\n\n throw createHttpError(404, `Resource not found: ${request.url}`);\n }\n\n const { resourceId, routeType } = getRouteType(request.method, request.url, resourceName);\n\n if (routeType === null) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n const modelConfig = options?.models?.[modelName as M];\n\n const accessibleRoutes = getAccessibleRoutes(modelConfig?.only, modelConfig?.exclude, options?.exposeStrategy ?? \"all\");\n\n if (!accessibleRoutes.includes(routeType)) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n try {\n const resourceIdFormatted = modelConfig?.formatResourceId?.(resourceId as string) ?? config.formatResourceId(resourceId as string);\n\n await adapter.connect?.();\n\n const parsedQuery = parseQuery(`https://${request.headers.host?.replace(/\\/$/u, \"\")}/${request.url}`);\n const parameters: HandlerParameters<T, Q> = {\n adapter,\n query: adapter.parseQuery(modelName as M, parsedQuery),\n resourceName: modelName,\n };\n\n try {\n let responseConfig: ResponseConfig;\n\n switch (routeType) {\n case RouteType.READ_ONE: {\n responseConfig = await (config.handlers?.get ?? readHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.READ_ALL: {\n responseConfig = await (config.handlers?.list ?? listHandler)<T, Q>({\n ...parameters,\n pagination: config.pagination,\n query: {\n ...parameters.query,\n limit: parsedQuery.limit ? Number(parsedQuery.limit) : undefined,\n page: parsedQuery.page ? Number(parsedQuery.page) : undefined,\n },\n });\n break;\n }\n case RouteType.CREATE: {\n responseConfig = await (config.handlers?.create ?? createHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Record<string, any> },\n });\n break;\n }\n case RouteType.UPDATE: {\n responseConfig = await (config.handlers?.update ?? updateHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Partial<T> },\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.DELETE: {\n responseConfig = await (config.handlers?.delete ?? deleteHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n default: {\n responseConfig = {\n data: \"Method not found\",\n status: 404,\n };\n }\n }\n\n await responseExecutor(responseOrContext, responseConfig);\n } catch (error: any) {\n if (adapter.handleError && !(error instanceof ApiError)) {\n adapter.handleError(error);\n } else {\n throw error;\n }\n }\n } finally {\n await adapter.disconnect?.();\n\n await finalExecutor(responseOrContext);\n }\n };\n}\n\nexport default baseHandler;\n","import type { HandlerParameters } from \"../types.d\";\n\nconst createHandler: Handler = async ({ adapter, query, request, resourceName }) => {\n const resources = await adapter.create(resourceName, request.body, query);\n\n return {\n data: resources,\n status: 201,\n };\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: HandlerParameters<T, Q> & { request: Request & { body: Record<string, any> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default createHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst deleteHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const deletedResource = await adapter.delete(resourceName, resourceId, query);\n\n return {\n data: deletedResource,\n status: 200,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\nexport default deleteHandler;\n","import { paginate } from \"@visulima/pagination\";\n\nimport type { HandlerParameters, PaginationConfig, ParsedQueryParameters } from \"../types.d\";\n\ninterface PaginationOptions {\n page: number;\n perPage: number;\n}\n\nconst listHandler: Handler = async ({ adapter, pagination, query, resourceName }) => {\n let isPaginated = false;\n let paginationOptions: PaginationOptions | undefined;\n\n if (query.page !== undefined) {\n if (query.page <= 0) {\n throw new Error(\"page query must be a strictly positive number\");\n }\n\n paginationOptions = {\n page: query.page,\n perPage: query.limit ?? pagination.perPage,\n };\n }\n\n if (paginationOptions) {\n isPaginated = true;\n\n // eslint-disable-next-line no-param-reassign\n query.skip = (paginationOptions.page - 1) * paginationOptions.perPage;\n // eslint-disable-next-line no-param-reassign\n query.limit = paginationOptions.perPage;\n }\n\n const resources = await adapter.getAll(resourceName, query);\n\n if (isPaginated) {\n const { page, total } = await adapter.getPaginationData(resourceName, query);\n\n const paginator = paginate(page, (paginationOptions as PaginationOptions).perPage, total, resources);\n\n return {\n data: paginator.toJSON(),\n status: 200,\n };\n }\n\n return {\n data: resources,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q extends ParsedQueryParameters>(\n parameters: HandlerParameters<T, Q> & { pagination: PaginationConfig },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default listHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst readHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource !== \"object\") {\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n }\n\n return {\n data: resource,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default readHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst updateHandler: Handler = async ({ adapter, query, request, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const updatedResource = await adapter.update(resourceName, resourceId, request.body, query);\n\n return {\n data: updatedResource,\n status: 201,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: UniqueResourceHandlerParameters<T, Q> & { request: Request & { body: Partial<T> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default updateHandler;\n","import { URL } from \"node:url\";\n\n// eslint-disable-next-line no-restricted-imports\nimport set from \"lodash.set\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types.d\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n set(selectFields, field, true);\n });\n\n return selectFields;\n};\n\nconst parseWhere = (where: string): WhereField => {\n const whereObject = JSON.parse(where);\n const parsed: WhereField = {};\n\n Object.keys(whereObject).forEach((key) => {\n set(parsed, key, whereObject[key]);\n });\n\n return parsed;\n};\n\nconst parseOrderBy = (orderBy: string): OrderByField => {\n const parsed: OrderByField = {};\n const orderByObject = JSON.parse(orderBy);\n\n if (Object.keys(orderByObject).length > 0) {\n const key = Object.keys(orderByObject)[0] as string;\n\n if (orderByObject[key as keyof typeof orderByObject] === \"$asc\" || orderByObject[key as keyof typeof orderByObject] === \"$desc\") {\n parsed[key] = orderByObject[key as keyof typeof orderByObject];\n }\n }\n\n if (Object.keys(parsed).length !== 1) {\n throw new Error(\"orderBy needs to be an object with exactly 1 property with either $asc or $desc value\");\n }\n\n return parsed;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst parseQuery = (url?: string): ParsedQueryParameters => {\n if (url) {\n const { searchParams } = new URL(url);\n const parsedQuery: ParsedQueryParameters = {};\n\n if (searchParams.get(\"select\")) {\n parsedQuery.select = parseRecursive(searchParams.get(\"select\") as string);\n }\n\n if (searchParams.get(\"include\")) {\n parsedQuery.include = parseRecursive(searchParams.get(\"include\") as string);\n }\n\n if (searchParams.get(\"where\")) {\n parsedQuery.where = parseWhere(searchParams.get(\"where\") as string);\n }\n\n if (searchParams.get(\"orderBy\")) {\n parsedQuery.orderBy = parseOrderBy(searchParams.get(\"orderBy\") as string);\n }\n\n if (searchParams.has(\"limit\")) {\n parsedQuery.limit = Number.isFinite(+(searchParams.get(\"limit\") as string)) ? +(searchParams.get(\"limit\") as string) : undefined;\n }\n\n if (searchParams.has(\"skip\")) {\n parsedQuery.skip = Number.isFinite(+(searchParams.get(\"skip\") as string)) ? +(searchParams.get(\"skip\") as string) : undefined;\n }\n\n if (searchParams.get(\"distinct\")) {\n parsedQuery.distinct = searchParams.get(\"distinct\") as string;\n }\n\n if (searchParams.get(\"page\")) {\n parsedQuery.page = Number.isFinite(+(searchParams.get(\"page\") as string)) ? +(searchParams.get(\"page\") as string) : undefined;\n }\n\n return {\n originalQuery: Object.fromEntries(searchParams.entries()),\n ...parsedQuery,\n };\n }\n\n return {};\n};\n\nexport default parseQuery;\n","const formatResourceId = (resourceId: string): number | string => (Number.isSafeInteger(+resourceId) ? +resourceId : resourceId);\n\nexport default formatResourceId;\n","export const ensureCamelCase = (string_: string): string => `${string_.charAt(0).toLowerCase()}${string_.slice(1)}`;\n\nexport const getResourceNameFromUrl = <M extends string = string>(\n url: string,\n models: { [key in M]: string },\n): {\n modelName: string;\n resourceName: string;\n} => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n const modelName = (Object.keys(models) as M[]).find((name) => {\n const routeName = models[name];\n const camelCaseModel = ensureCamelCase(routeName);\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return new RegExp(`(${routeName}|${camelCaseModel}$)|(${routeName}|${camelCaseModel}/)`, \"g\").test(realPath);\n });\n\n if (modelName === undefined) {\n throw new Error(`Couldn't find model ${modelName} name for url ${url}`);\n }\n\n return {\n modelName,\n resourceName: models[modelName],\n };\n};\n","import { match } from \"path-to-regexp\";\n\nimport { RouteType } from \"../types.d\";\n\ninterface PathMatch {\n id: string;\n}\n\nconst getRouteType: (method: string, url: string, resourceName: string) => GetRouteType = (method, url, resourceName) => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n if (!realPath.includes(`/${resourceName}`)) {\n throw new Error(`invalid resource name '${resourceName}' for route '${realPath}'`);\n }\n\n const entityMatcher = match<PathMatch>([`/(.*)/${resourceName}`, `/(.*)/${resourceName}/:id`], { decode: decodeURIComponent });\n const simpleMatcher = match(`/(.*)/${resourceName}`, {\n decode: decodeURIComponent,\n });\n\n switch (method) {\n case \"GET\": {\n const pathMatch = entityMatcher(realPath);\n\n // If we got a /something after the resource name, we are reading 1 entity\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.READ_ONE,\n };\n }\n\n return {\n routeType: RouteType.READ_ALL,\n };\n }\n case \"POST\": {\n const pathMatch = simpleMatcher(realPath);\n\n if (pathMatch) {\n return {\n routeType: RouteType.CREATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"PUT\":\n case \"PATCH\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.UPDATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"DELETE\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.DELETE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n default: {\n return {\n routeType: null,\n };\n }\n }\n};\n\nexport interface GetRouteType {\n resourceId?: string;\n routeType: RouteType | null;\n}\n\nexport default getRouteType;\n","import createHttpError from \"http-errors\";\n\nimport type { Adapter } from \"../types.d\";\n\nconst adapterMethods = [\"create\", \"delete\", \"getAll\", \"getOne\", \"parseQuery\", \"update\", \"getPaginationData\", \"getModels\"];\n\nconst validateAdapterMethods = <T, Q>(adapter: Adapter<T, Q>): void => {\n adapterMethods.forEach((method) => {\n if (!adapter[method as keyof Adapter<T, Q>]) {\n throw createHttpError(500, `Adapter must implement the \"${method}\" method.`);\n }\n });\n};\n\nexport default validateAdapterMethods;\n","import type { NextApiRequest, NextApiResponse } from \"next\";\n\nimport baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <\n T,\n Q extends ParsedQueryParameters = any,\n R extends NextApiRequest = NextApiRequest,\n Response extends NextApiResponse = NextApiResponse,\n M extends string = string,\n>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Response>> =>\n await baseHandler<R, Response, T, Q, M>(\n async (response, responseConfig) => {\n response.status(responseConfig.status).send(responseConfig.data);\n },\n async (response) => {\n response.end();\n },\n adapter,\n options,\n );\n\nexport default handler;\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@13.4.15_@babel+core@7.23.5_react-dom@18.2.0_react@18.2.0/node_modules/next/src/server/api-utils/index.ts","../../src/next/index.ts","../../src/next/api/edge/index.ts","../../src/base-crud-handler.ts","../../src/handler/create.ts","../../src/handler/delete.ts","../../src/handler/list.ts","../../src/handler/read.ts","../../src/handler/update.ts","../../src/query-parser.ts","../../src/utils/format-resource-id.ts","../../src/utils/get-resource-name-from-url.ts","../../src/utils/get-route-type.ts","../../src/utils/validate-adapter-methods.ts","../../src/next/api/node/index.ts"],"names":["ReflectAdapter","get","target","prop","receiver","value","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","HeadersAdapter","Error","constructor","callable","Headers","headers","Proxy","lowercased","toLowerCase","original","Object","keys","find","o","seal","merge","Array","isArray","join","from","append","name","existing","push","delete","forEach","callbackfn","thisArg","entries","call","key","values","Symbol","iterator","NEXT_QUERY_PARAM_PREFIX","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","INSTRUMENTATION_HOOKS_LOCATION_REGEXP","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","ESLINT_DEFAULT_DIRS_WITH_APP","ESLINT_PROMPT_VALUES","SERVER_RUNTIME","WEBPACK_LAYERS","WEBPACK_RESOURCE_QUERIES","title","recommended","config","extends","edge","experimentalEdge","nodejs","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","edgeAsset","appPagesBrowser","appMetadataRoute","GROUP","server","edgeSSREntry","metadata","metadataRoute","metadataImageMeta","require_cookie","__commonJSMin","exports","module","init_esm_shims","__dirname","e","r","parse","serialize","i","t","a","n","s","p","f","u","v","c","tryDecode","getCookieParser","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","cookie","parseCookieFn","require","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","previous","getHeader","setHeader","expires","Date","httpOnly","sameSite","secure","process","path","undefined","defineProperty","enumerable","message","statusMessage","getter","opts","configurable","optsReset","writable","import_api_utils","createHttpError","createHandler","adapter","query","request","resourceName","create_default","deleteHandler","resourceId","delete_default","paginate","listHandler","pagination","isPaginated","paginationOptions","resources","page","total","list_default","readHandler","resource","read_default","updateHandler","update_default","URL","parseRecursive","select","selectFields","field","parseWhere","where","whereObject","parsed","parseOrderBy","orderBy","orderByObject","parseQuery","searchParams","parsedQuery","query_parser_default","formatResourceId","format_resource_id_default","ensureCamelCase","string_","getResourceNameFromUrl","models","realPath","modelName","routeName","camelCaseModel","match","getRouteType","method","entityMatcher","simpleMatcher","pathMatch","get_route_type_default","adapterMethods","validateAdapterMethods","validate_adapter_methods_default","baseHandler","responseExecutor","finalExecutor","error_","error","routeNames","modelRoutes","responseOrContext","routeType","modelConfig","get_accessible_routes_default","resourceIdFormatted","parameters","responseConfig","base_crud_handler_default","handler","_","edge_default","response","node_default"],"mappings":"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","sourcesContent":[null,null,null,"(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();",null,"export { default as edgeHandler } from \"./api/edge\";\nexport { default as nodeHandler } from \"./api/node\";\n","import baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <T, R extends Request, Context, Q extends ParsedQueryParameters = any, M extends string = string>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>> =>\n await baseHandler<R, Context, T, Q, M>(\n async (_, responseConfig) =>\n new Response(JSON.stringify(responseConfig.data), {\n headers: {\n \"content-type\": \"application/json; charset=utf-8\",\n },\n status: responseConfig.status,\n }),\n async () => {},\n adapter,\n options,\n );\n\nexport default handler;\n","import type { IncomingMessage, ServerResponse } from \"node:http\";\n\nimport type { HttpError } from \"http-errors\";\nimport createHttpError from \"http-errors\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ApiError } from \"next/dist/server/api-utils\";\n\nimport createHandler from \"./handler/create\";\nimport deleteHandler from \"./handler/delete\";\nimport listHandler from \"./handler/list\";\nimport readHandler from \"./handler/read\";\nimport updateHandler from \"./handler/update\";\nimport parseQuery from \"./query-parser\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, HandlerParameters, ParsedQueryParameters } from \"./types.d\";\nimport { RouteType } from \"./types.d\";\nimport formatResourceId from \"./utils/format-resource-id\";\nimport getAccessibleRoutes from \"./utils/get-accessible-routes\";\nimport { getResourceNameFromUrl } from \"./utils/get-resource-name-from-url\";\nimport getRouteType from \"./utils/get-route-type\";\nimport validateAdapterMethods from \"./utils/validate-adapter-methods\";\n\ninterface ResponseConfig {\n data: any;\n status: number;\n}\n\nasync function baseHandler<R extends Request, Context, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: Context, responseConfig: ResponseConfig) => Promise<Response>,\n finalExecutor: (responseOrContext: Context) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Context>>;\n\nasync function baseHandler<R extends IncomingMessage, RResponse extends ServerResponse, T, Q extends ParsedQueryParameters = any, M extends string = string>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<void>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>>;\n\n// eslint-disable-next-line sonarjs/cognitive-complexity,func-style\nasync function baseHandler<\n R extends { headers: { host?: string }; method: string; url: string },\n RResponse,\n T,\n Q extends ParsedQueryParameters = any,\n M extends string = string,\n>(\n responseExecutor: (responseOrContext: RResponse, responseConfig: ResponseConfig) => Promise<RResponse>,\n finalExecutor: (responseOrContext: RResponse) => Promise<void>,\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, RResponse>> {\n try {\n validateAdapterMethods(adapter);\n } catch (error_: any) {\n const error = error_ as HttpError;\n\n throw new ApiError(error.statusCode, error.message);\n }\n\n await adapter.init?.();\n\n const config = {\n formatResourceId,\n pagination: {\n perPage: 20,\n },\n ...options,\n };\n\n const routeNames = await adapter.mapModelsToRouteNames?.();\n const modelRoutes: { [key in M]?: string } = {};\n\n adapter.getModels().forEach((modelName) => {\n modelRoutes[modelName as M] = config.models?.[modelName as M]?.name ?? routeNames?.[modelName] ?? modelName;\n });\n\n return async (request, responseOrContext) => {\n const { modelName, resourceName } = getResourceNameFromUrl(request.url, modelRoutes as { [key in M]: string });\n\n if (!resourceName) {\n if (process.env.NODE_ENV === \"development\") {\n const mappedModels = await adapter.mapModelsToRouteNames?.();\n\n if (typeof mappedModels === \"object\") {\n throw createHttpError(404, `Resource not found, possible models: ${Object.values(mappedModels).join(\", \")}`);\n }\n }\n\n throw createHttpError(404, `Resource not found: ${request.url}`);\n }\n\n const { resourceId, routeType } = getRouteType(request.method, request.url, resourceName);\n\n if (routeType === null) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n const modelConfig = options?.models?.[modelName as M];\n\n const accessibleRoutes = getAccessibleRoutes(modelConfig?.only, modelConfig?.exclude, options?.exposeStrategy ?? \"all\");\n\n if (!accessibleRoutes.includes(routeType)) {\n throw createHttpError(404, `Route not found: ${request.url}`);\n }\n\n try {\n const resourceIdFormatted = modelConfig?.formatResourceId?.(resourceId as string) ?? config.formatResourceId(resourceId as string);\n\n await adapter.connect?.();\n\n const parsedQuery = parseQuery(`https://${request.headers.host?.replace(/\\/$/u, \"\")}/${request.url}`);\n const parameters: HandlerParameters<T, Q> = {\n adapter,\n query: adapter.parseQuery(modelName as M, parsedQuery),\n resourceName: modelName,\n };\n\n try {\n let responseConfig: ResponseConfig;\n\n switch (routeType) {\n case RouteType.READ_ONE: {\n responseConfig = await (config.handlers?.get ?? readHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.READ_ALL: {\n responseConfig = await (config.handlers?.list ?? listHandler)<T, Q>({\n ...parameters,\n pagination: config.pagination,\n query: {\n ...parameters.query,\n limit: parsedQuery.limit ? Number(parsedQuery.limit) : undefined,\n page: parsedQuery.page ? Number(parsedQuery.page) : undefined,\n },\n });\n break;\n }\n case RouteType.CREATE: {\n responseConfig = await (config.handlers?.create ?? createHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Record<string, any> },\n });\n break;\n }\n case RouteType.UPDATE: {\n responseConfig = await (config.handlers?.update ?? updateHandler)<T, Q, R>({\n ...parameters,\n request: request as R & { body: Partial<T> },\n resourceId: resourceIdFormatted,\n });\n break;\n }\n case RouteType.DELETE: {\n responseConfig = await (config.handlers?.delete ?? deleteHandler)<T, Q>({\n ...parameters,\n resourceId: resourceIdFormatted,\n });\n break;\n }\n default: {\n responseConfig = {\n data: \"Method not found\",\n status: 404,\n };\n }\n }\n\n await responseExecutor(responseOrContext, responseConfig);\n } catch (error: any) {\n if (adapter.handleError && !(error instanceof ApiError)) {\n adapter.handleError(error);\n } else {\n throw error;\n }\n }\n } finally {\n await adapter.disconnect?.();\n\n await finalExecutor(responseOrContext);\n }\n };\n}\n\nexport default baseHandler;\n","import type { HandlerParameters } from \"../types.d\";\n\nconst createHandler: Handler = async ({ adapter, query, request, resourceName }) => {\n const resources = await adapter.create(resourceName, request.body, query);\n\n return {\n data: resources,\n status: 201,\n };\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: HandlerParameters<T, Q> & { request: Request & { body: Record<string, any> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default createHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst deleteHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const deletedResource = await adapter.delete(resourceName, resourceId, query);\n\n return {\n data: deletedResource,\n status: 200,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\nexport default deleteHandler;\n","import { paginate } from \"@visulima/pagination\";\n\nimport type { HandlerParameters, PaginationConfig, ParsedQueryParameters } from \"../types.d\";\n\ninterface PaginationOptions {\n page: number;\n perPage: number;\n}\n\nconst listHandler: Handler = async ({ adapter, pagination, query, resourceName }) => {\n let isPaginated = false;\n let paginationOptions: PaginationOptions | undefined;\n\n if (query.page !== undefined) {\n if (query.page <= 0) {\n throw new Error(\"page query must be a strictly positive number\");\n }\n\n paginationOptions = {\n page: query.page,\n perPage: query.limit ?? pagination.perPage,\n };\n }\n\n if (paginationOptions) {\n isPaginated = true;\n\n // eslint-disable-next-line no-param-reassign\n query.skip = (paginationOptions.page - 1) * paginationOptions.perPage;\n // eslint-disable-next-line no-param-reassign\n query.limit = paginationOptions.perPage;\n }\n\n const resources = await adapter.getAll(resourceName, query);\n\n if (isPaginated) {\n const { page, total } = await adapter.getPaginationData(resourceName, query);\n\n const paginator = paginate(page, (paginationOptions as PaginationOptions).perPage, total, resources);\n\n return {\n data: paginator.toJSON(),\n status: 200,\n };\n }\n\n return {\n data: resources,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q extends ParsedQueryParameters>(\n parameters: HandlerParameters<T, Q> & { pagination: PaginationConfig },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default listHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst readHandler: Handler = async ({ adapter, query, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource !== \"object\") {\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n }\n\n return {\n data: resource,\n status: 200,\n };\n};\n\nexport type Handler = <T, Q>(\n parameters: UniqueResourceHandlerParameters<T, Q>,\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default readHandler;\n","import createHttpError from \"http-errors\";\n\nimport type { UniqueResourceHandlerParameters } from \"../types.d\";\n\nconst updateHandler: Handler = async ({ adapter, query, request, resourceId, resourceName }) => {\n const resource = await adapter.getOne(resourceName, resourceId, query);\n\n if (typeof resource === \"object\") {\n const updatedResource = await adapter.update(resourceName, resourceId, request.body, query);\n\n return {\n data: updatedResource,\n status: 201,\n };\n }\n\n throw createHttpError(404, `${resourceName} ${resourceId} not found`);\n};\n\nexport type Handler = <T, Q, Request>(\n parameters: UniqueResourceHandlerParameters<T, Q> & { request: Request & { body: Partial<T> } },\n) => Promise<{\n data: any;\n status: number;\n}>;\n\nexport default updateHandler;\n","import { URL } from \"node:url\";\n\n// eslint-disable-next-line no-restricted-imports\nimport set from \"lodash.set\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types.d\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n set(selectFields, field, true);\n });\n\n return selectFields;\n};\n\nconst parseWhere = (where: string): WhereField => {\n const whereObject = JSON.parse(where);\n const parsed: WhereField = {};\n\n Object.keys(whereObject).forEach((key) => {\n set(parsed, key, whereObject[key]);\n });\n\n return parsed;\n};\n\nconst parseOrderBy = (orderBy: string): OrderByField => {\n const parsed: OrderByField = {};\n const orderByObject = JSON.parse(orderBy);\n\n if (Object.keys(orderByObject).length > 0) {\n const key = Object.keys(orderByObject)[0] as string;\n\n if (orderByObject[key as keyof typeof orderByObject] === \"$asc\" || orderByObject[key as keyof typeof orderByObject] === \"$desc\") {\n parsed[key] = orderByObject[key as keyof typeof orderByObject];\n }\n }\n\n if (Object.keys(parsed).length !== 1) {\n throw new Error(\"orderBy needs to be an object with exactly 1 property with either $asc or $desc value\");\n }\n\n return parsed;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst parseQuery = (url?: string): ParsedQueryParameters => {\n if (url) {\n const { searchParams } = new URL(url);\n const parsedQuery: ParsedQueryParameters = {};\n\n if (searchParams.get(\"select\")) {\n parsedQuery.select = parseRecursive(searchParams.get(\"select\") as string);\n }\n\n if (searchParams.get(\"include\")) {\n parsedQuery.include = parseRecursive(searchParams.get(\"include\") as string);\n }\n\n if (searchParams.get(\"where\")) {\n parsedQuery.where = parseWhere(searchParams.get(\"where\") as string);\n }\n\n if (searchParams.get(\"orderBy\")) {\n parsedQuery.orderBy = parseOrderBy(searchParams.get(\"orderBy\") as string);\n }\n\n if (searchParams.has(\"limit\")) {\n parsedQuery.limit = Number.isFinite(+(searchParams.get(\"limit\") as string)) ? +(searchParams.get(\"limit\") as string) : undefined;\n }\n\n if (searchParams.has(\"skip\")) {\n parsedQuery.skip = Number.isFinite(+(searchParams.get(\"skip\") as string)) ? +(searchParams.get(\"skip\") as string) : undefined;\n }\n\n if (searchParams.get(\"distinct\")) {\n parsedQuery.distinct = searchParams.get(\"distinct\") as string;\n }\n\n if (searchParams.get(\"page\")) {\n parsedQuery.page = Number.isFinite(+(searchParams.get(\"page\") as string)) ? +(searchParams.get(\"page\") as string) : undefined;\n }\n\n return {\n originalQuery: Object.fromEntries(searchParams.entries()),\n ...parsedQuery,\n };\n }\n\n return {};\n};\n\nexport default parseQuery;\n","const formatResourceId = (resourceId: string): number | string => (Number.isSafeInteger(+resourceId) ? +resourceId : resourceId);\n\nexport default formatResourceId;\n","export const ensureCamelCase = (string_: string): string => `${string_.charAt(0).toLowerCase()}${string_.slice(1)}`;\n\nexport const getResourceNameFromUrl = <M extends string = string>(\n url: string,\n models: { [key in M]: string },\n): {\n modelName: string;\n resourceName: string;\n} => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n const modelName = (Object.keys(models) as M[]).find((name) => {\n const routeName = models[name];\n const camelCaseModel = ensureCamelCase(routeName);\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return new RegExp(`(${routeName}|${camelCaseModel}$)|(${routeName}|${camelCaseModel}/)`, \"g\").test(realPath);\n });\n\n if (modelName === undefined) {\n throw new Error(`Couldn't find model ${modelName} name for url ${url}`);\n }\n\n return {\n modelName,\n resourceName: models[modelName],\n };\n};\n","import { match } from \"path-to-regexp\";\n\nimport { RouteType } from \"../types.d\";\n\ninterface PathMatch {\n id: string;\n}\n\nconst getRouteType: (method: string, url: string, resourceName: string) => GetRouteType = (method, url, resourceName) => {\n // Exclude the query params from the path\n const realPath = url.split(\"?\")[0];\n\n if (realPath === undefined) {\n throw new TypeError(\"Path is undefined\");\n }\n\n if (!realPath.includes(`/${resourceName}`)) {\n throw new Error(`invalid resource name '${resourceName}' for route '${realPath}'`);\n }\n\n const entityMatcher = match<PathMatch>([`/(.*)/${resourceName}`, `/(.*)/${resourceName}/:id`], { decode: decodeURIComponent });\n const simpleMatcher = match(`/(.*)/${resourceName}`, {\n decode: decodeURIComponent,\n });\n\n switch (method) {\n case \"GET\": {\n const pathMatch = entityMatcher(realPath);\n\n // If we got a /something after the resource name, we are reading 1 entity\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.READ_ONE,\n };\n }\n\n return {\n routeType: RouteType.READ_ALL,\n };\n }\n case \"POST\": {\n const pathMatch = simpleMatcher(realPath);\n\n if (pathMatch) {\n return {\n routeType: RouteType.CREATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"PUT\":\n case \"PATCH\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.UPDATE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n case \"DELETE\": {\n const pathMatch = entityMatcher(realPath);\n\n if (typeof pathMatch === \"object\" && pathMatch.params.id) {\n return {\n resourceId: pathMatch.params.id,\n routeType: RouteType.DELETE,\n };\n }\n\n return {\n routeType: null,\n };\n }\n default: {\n return {\n routeType: null,\n };\n }\n }\n};\n\nexport interface GetRouteType {\n resourceId?: string;\n routeType: RouteType | null;\n}\n\nexport default getRouteType;\n","import createHttpError from \"http-errors\";\n\nimport type { Adapter } from \"../types.d\";\n\nconst adapterMethods = [\"create\", \"delete\", \"getAll\", \"getOne\", \"parseQuery\", \"update\", \"getPaginationData\", \"getModels\"];\n\nconst validateAdapterMethods = <T, Q>(adapter: Adapter<T, Q>): void => {\n adapterMethods.forEach((method) => {\n if (!adapter[method as keyof Adapter<T, Q>]) {\n throw createHttpError(500, `Adapter must implement the \"${method}\" method.`);\n }\n });\n};\n\nexport default validateAdapterMethods;\n","import type { NextApiRequest, NextApiResponse } from \"next\";\n\nimport baseHandler from \"../../../base-crud-handler\";\nimport type { Adapter, ExecuteHandler, HandlerOptions, ParsedQueryParameters } from \"../../../types.d\";\n\nconst handler = async <\n T,\n Q extends ParsedQueryParameters = any,\n R extends NextApiRequest = NextApiRequest,\n Response extends NextApiResponse = NextApiResponse,\n M extends string = string,\n>(\n adapter: Adapter<T, Q>,\n options?: HandlerOptions<M>,\n): Promise<ExecuteHandler<R, Response>> =>\n await baseHandler<R, Response, T, Q, M>(\n async (response, responseConfig) => {\n response.status(responseConfig.status).send(responseConfig.data);\n },\n async (response) => {\n response.end();\n },\n adapter,\n options,\n );\n\nexport default handler;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/crud",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "visulima crud",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -81,8 +81,8 @@
81
81
  "test:watch": "vitest"
82
82
  },
83
83
  "dependencies": {
84
- "@visulima/pagination": "3.0.8",
85
- "@visulima/prisma-dmmf-transformer": "2.0.8",
84
+ "@visulima/pagination": "3.0.10",
85
+ "@visulima/prisma-dmmf-transformer": "2.0.10",
86
86
  "http-errors": "^2.0.0",
87
87
  "lodash.set": "^4.3.2",
88
88
  "path-to-regexp": "^6.2.1"
@@ -91,35 +91,35 @@
91
91
  "@anolilab/eslint-config": "^15.0.2",
92
92
  "@anolilab/prettier-config": "^5.0.13",
93
93
  "@anolilab/semantic-release-preset": "^8.0.2",
94
- "@babel/core": "^7.23.2",
94
+ "@babel/core": "^7.23.5",
95
95
  "@prisma/client": "4.16.2",
96
96
  "@rushstack/eslint-plugin-security": "^0.7.1",
97
- "@types/http-errors": "^2.0.3",
98
- "@types/json-schema": "7.0.14",
99
- "@types/lodash.set": "^4.3.8",
97
+ "@types/http-errors": "^2.0.4",
98
+ "@types/json-schema": "7.0.15",
99
+ "@types/lodash.set": "^4.3.9",
100
100
  "@types/node": "18.18.8",
101
101
  "@vitest/coverage-v8": "^0.34.6",
102
102
  "cross-env": "^7.0.3",
103
- "eslint": "^8.52.0",
103
+ "eslint": "^8.54.0",
104
104
  "eslint-plugin-deprecation": "^2.0.0",
105
105
  "eslint-plugin-etc": "^2.0.3",
106
106
  "eslint-plugin-import": "npm:eslint-plugin-i@^2.29.0",
107
107
  "eslint-plugin-jsx-a11y": "^6.8.0",
108
108
  "eslint-plugin-mdx": "^2.2.0",
109
- "eslint-plugin-ssr-friendly": "^1.2.0",
109
+ "eslint-plugin-ssr-friendly": "^1.3.0",
110
110
  "eslint-plugin-validate-jsx-nesting": "^0.1.1",
111
- "eslint-plugin-vitest": "^0.3.8",
111
+ "eslint-plugin-vitest": "^0.3.10",
112
112
  "eslint-plugin-vitest-globals": "^1.4.0",
113
113
  "next": "^12.0.0 || ^13.0.0",
114
114
  "next-test-api-route-handler": "^4.0.0-canary.1",
115
115
  "node-mocks-http": "^1.13.0",
116
116
  "openapi-types": "^12.1.3",
117
- "prettier": "^3.0.3",
117
+ "prettier": "^3.1.0",
118
118
  "rimraf": "^5.0.5",
119
- "semantic-release": "^22.0.6",
119
+ "semantic-release": "^22.0.8",
120
120
  "sort-package-json": "^2.6.0",
121
- "tsup": "^7.2.0",
122
- "typescript": "^5.2.2",
121
+ "tsup": "^8.0.1",
122
+ "typescript": "^5.3.2",
123
123
  "vitest": "^0.34.6"
124
124
  },
125
125
  "engines": {