@visulima/crud 2.0.20 → 2.0.22
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 +38 -0
- package/dist/{chunk-4RB4JZUT.mjs → chunk-4DTX3UFM.mjs} +1 -1
- package/dist/chunk-4DTX3UFM.mjs.map +1 -0
- package/dist/{chunk-WHS4HRUE.js → chunk-PQ2CI7AE.js} +1 -1
- package/dist/chunk-PQ2CI7AE.js.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/next/index.d.mts +1 -1
- package/dist/next/index.d.ts +1 -1
- package/dist/next/index.js +6 -6
- package/dist/next/index.js.map +1 -1
- package/dist/next/index.mjs +4 -4
- package/dist/next/index.mjs.map +1 -1
- package/package.json +155 -155
- package/dist/chunk-4RB4JZUT.mjs.map +0 -1
- package/dist/chunk-WHS4HRUE.js.map +0 -1
- /package/dist/{types-oqJ0MgDb.d.mts → types-C5c2M01-.d.mts} +0 -0
- /package/dist/{types-oqJ0MgDb.d.ts → types-C5c2M01-.d.ts} +0 -0
package/dist/next/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/next@13.5.6_@babel+core@7.24.4_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.5.6_@babel+core@7.24.4_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.5.6_@babel+core@7.24.4_react-dom@18.2.0_react@18.2.0/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@13.5.6_@babel+core@7.24.4_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@13.5.6_@babel+core@7.24.4_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","../../../../node_modules/.pnpm/dot-prop@8.0.2/node_modules/dot-prop/index.js","../../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","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","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_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","appRouteHandler","GROUP","server","nonClientServerTarget","app","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","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","require","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","isObject","type","disallowedKeys","digits","getPathSegments","parts","currentSegment","currentPart","isIgnoring","character","isStringIndex","object","index","assertNotStringIndex","setProperty","root","pathArray","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\";\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\";\nimport { RouteType } from \"./types\";\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\";\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\";\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\";\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\";\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\";\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 import/no-extraneous-dependencies\nimport { setProperty } from \"dot-prop\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n setProperty(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 setProperty(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 isObject = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n\nconst isEmptyObject = value => isObject(value) && Object.keys(value).length === 0;\n\nconst disallowedKeys = new Set([\n\t'__proto__',\n\t'prototype',\n\t'constructor',\n]);\n\nconst digits = new Set('0123456789');\n\nfunction getPathSegments(path) {\n\tconst parts = [];\n\tlet currentSegment = '';\n\tlet currentPart = 'start';\n\tlet isIgnoring = false;\n\n\tfor (const character of path) {\n\t\tswitch (character) {\n\t\t\tcase '\\\\': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t}\n\n\t\t\t\tcurrentPart = 'property';\n\t\t\t\tisIgnoring = !isIgnoring;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase '.': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tparts.push(currentSegment);\n\t\t\t\tcurrentSegment = '';\n\t\t\t\tcurrentPart = 'property';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase '[': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'index';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'property') {\n\t\t\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tparts.push(currentSegment);\n\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t}\n\n\t\t\t\tcurrentPart = 'index';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ']': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tparts.push(Number.parseInt(currentSegment, 10));\n\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t\tcurrentPart = 'indexEnd';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\t// Falls through\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (currentPart === 'index' && !digits.has(character)) {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'start') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += '\\\\';\n\t\t\t\t}\n\n\t\t\t\tcurrentSegment += character;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (isIgnoring) {\n\t\tcurrentSegment += '\\\\';\n\t}\n\n\tswitch (currentPart) {\n\t\tcase 'property': {\n\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tparts.push(currentSegment);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'index': {\n\t\t\tthrow new Error('Index was not closed');\n\t\t}\n\n\t\tcase 'start': {\n\t\t\tparts.push('');\n\n\t\t\tbreak;\n\t\t}\n\t\t// No default\n\t}\n\n\treturn parts;\n}\n\nfunction isStringIndex(object, key) {\n\tif (typeof key !== 'number' && Array.isArray(object)) {\n\t\tconst index = Number.parseInt(key, 10);\n\t\treturn Number.isInteger(index) && object[index] === object[key];\n\t}\n\n\treturn false;\n}\n\nfunction assertNotStringIndex(object, key) {\n\tif (isStringIndex(object, key)) {\n\t\tthrow new Error('Cannot use string index');\n\t}\n}\n\nexport function getProperty(object, path, value) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn value === undefined ? object : value;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\tif (pathArray.length === 0) {\n\t\treturn value;\n\t}\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tif (isStringIndex(object, key)) {\n\t\t\tobject = index === pathArray.length - 1 ? undefined : null;\n\t\t} else {\n\t\t\tobject = object[key];\n\t\t}\n\n\t\tif (object === undefined || object === null) {\n\t\t\t// `object` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t// if this is not the last bit of the path, and\n\t\t\t// if it didn't return `undefined`\n\t\t\t// it would return `null` if `object` is `null`\n\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\tif (index !== pathArray.length - 1) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn object === undefined ? value : object;\n}\n\nexport function setProperty(object, path, value) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn object;\n\t}\n\n\tconst root = object;\n\tconst pathArray = getPathSegments(path);\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tassertNotStringIndex(object, key);\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tobject[key] = value;\n\t\t} else if (!isObject(object[key])) {\n\t\t\tobject[key] = typeof pathArray[index + 1] === 'number' ? [] : {};\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn root;\n}\n\nexport function deleteProperty(object, path) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn false;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tassertNotStringIndex(object, key);\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tdelete object[key];\n\t\t\treturn true;\n\t\t}\n\n\t\tobject = object[key];\n\n\t\tif (!isObject(object)) {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\nexport function hasProperty(object, path) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn false;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\tif (pathArray.length === 0) {\n\t\treturn false;\n\t}\n\n\tfor (const key of pathArray) {\n\t\tif (!isObject(object) || !(key in object) || isStringIndex(object, key)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn true;\n}\n\n// TODO: Backslashes with no effect should not be escaped\nexport function escapePath(path) {\n\tif (typeof path !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn path.replace(/[\\\\.[]/g, '\\\\$&');\n}\n\n// The keys returned by Object.entries() for arrays are strings\nfunction entries(value) {\n\tconst result = Object.entries(value);\n\tif (Array.isArray(value)) {\n\t\treturn result.map(([key, value]) => [Number(key), value]);\n\t}\n\n\treturn result;\n}\n\nfunction stringifyPath(pathSegments) {\n\tlet result = '';\n\n\tfor (let [index, segment] of entries(pathSegments)) {\n\t\tif (typeof segment === 'number') {\n\t\t\tresult += `[${segment}]`;\n\t\t} else {\n\t\t\tsegment = escapePath(segment);\n\t\t\tresult += index === 0 ? segment : `.${segment}`;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction * deepKeysIterator(object, currentPath = []) {\n\tif (!isObject(object) || isEmptyObject(object)) {\n\t\tif (currentPath.length > 0) {\n\t\t\tyield stringifyPath(currentPath);\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (const [key, value] of entries(object)) {\n\t\tyield * deepKeysIterator(value, [...currentPath, key]);\n\t}\n}\n\nexport function deepKeys(object) {\n\treturn [...deepKeysIterator(object)];\n}\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\";\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\";\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\";\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@14.1.3_@babel+core@7.24.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/.pnpm/next@14.1.3_@babel+core@7.24.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","../../../../node_modules/.pnpm/next@14.1.3_@babel+core@7.24.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/src/lib/constants.ts","../../../../node_modules/.pnpm/next@14.1.3_@babel+core@7.24.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next@14.1.3_@babel+core@7.24.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/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","../../../../node_modules/.pnpm/dot-prop@8.0.2/node_modules/dot-prop/index.js","../../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","RSC_PREFETCH_SUFFIX","RSC_SUFFIX","NEXT_DATA_SUFFIX","NEXT_META_SUFFIX","NEXT_BODY_SUFFIX","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_SOFT_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","CACHE_ONE_YEAR","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","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_ENCRYPTION_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_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","appRouteHandler","GROUP","server","nonClientServerTarget","app","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","sendStatusCode","redirect","checkIsOnDemandRevalidate","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","ApiError","sendError","setLazyProp","res","statusCode","statusOrUrl","url","writeHead","Location","write","end","req","previewProps","isOnDemandRevalidate","previewModeId","revalidateOnlyGenerated","options","require","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","isObject","type","disallowedKeys","digits","getPathSegments","parts","currentSegment","currentPart","isIgnoring","character","isStringIndex","object","index","assertNotStringIndex","setProperty","root","pathArray","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\";\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\";\nimport { RouteType } from \"./types\";\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\";\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\";\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\";\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\";\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\";\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 import/no-extraneous-dependencies\nimport { setProperty } from \"dot-prop\";\n\nimport type { OrderByField, ParsedQueryParameters, RecursiveField, WhereField } from \"./types\";\n\nconst parseRecursive = (select: string): RecursiveField => {\n const selectFields: RecursiveField = {};\n\n const fields = select.split(\",\");\n\n fields.forEach((field) => {\n setProperty(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 setProperty(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 isObject = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n\nconst isEmptyObject = value => isObject(value) && Object.keys(value).length === 0;\n\nconst disallowedKeys = new Set([\n\t'__proto__',\n\t'prototype',\n\t'constructor',\n]);\n\nconst digits = new Set('0123456789');\n\nfunction getPathSegments(path) {\n\tconst parts = [];\n\tlet currentSegment = '';\n\tlet currentPart = 'start';\n\tlet isIgnoring = false;\n\n\tfor (const character of path) {\n\t\tswitch (character) {\n\t\t\tcase '\\\\': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t}\n\n\t\t\t\tcurrentPart = 'property';\n\t\t\t\tisIgnoring = !isIgnoring;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase '.': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tparts.push(currentSegment);\n\t\t\t\tcurrentSegment = '';\n\t\t\t\tcurrentPart = 'property';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase '[': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tcurrentPart = 'index';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += character;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'property') {\n\t\t\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tparts.push(currentSegment);\n\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t}\n\n\t\t\t\tcurrentPart = 'index';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase ']': {\n\t\t\t\tif (currentPart === 'index') {\n\t\t\t\t\tparts.push(Number.parseInt(currentSegment, 10));\n\t\t\t\t\tcurrentSegment = '';\n\t\t\t\t\tcurrentPart = 'indexEnd';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\t// Falls through\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (currentPart === 'index' && !digits.has(character)) {\n\t\t\t\t\tthrow new Error('Invalid character in an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'indexEnd') {\n\t\t\t\t\tthrow new Error('Invalid character after an index');\n\t\t\t\t}\n\n\t\t\t\tif (currentPart === 'start') {\n\t\t\t\t\tcurrentPart = 'property';\n\t\t\t\t}\n\n\t\t\t\tif (isIgnoring) {\n\t\t\t\t\tisIgnoring = false;\n\t\t\t\t\tcurrentSegment += '\\\\';\n\t\t\t\t}\n\n\t\t\t\tcurrentSegment += character;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (isIgnoring) {\n\t\tcurrentSegment += '\\\\';\n\t}\n\n\tswitch (currentPart) {\n\t\tcase 'property': {\n\t\t\tif (disallowedKeys.has(currentSegment)) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tparts.push(currentSegment);\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'index': {\n\t\t\tthrow new Error('Index was not closed');\n\t\t}\n\n\t\tcase 'start': {\n\t\t\tparts.push('');\n\n\t\t\tbreak;\n\t\t}\n\t\t// No default\n\t}\n\n\treturn parts;\n}\n\nfunction isStringIndex(object, key) {\n\tif (typeof key !== 'number' && Array.isArray(object)) {\n\t\tconst index = Number.parseInt(key, 10);\n\t\treturn Number.isInteger(index) && object[index] === object[key];\n\t}\n\n\treturn false;\n}\n\nfunction assertNotStringIndex(object, key) {\n\tif (isStringIndex(object, key)) {\n\t\tthrow new Error('Cannot use string index');\n\t}\n}\n\nexport function getProperty(object, path, value) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn value === undefined ? object : value;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\tif (pathArray.length === 0) {\n\t\treturn value;\n\t}\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tif (isStringIndex(object, key)) {\n\t\t\tobject = index === pathArray.length - 1 ? undefined : null;\n\t\t} else {\n\t\t\tobject = object[key];\n\t\t}\n\n\t\tif (object === undefined || object === null) {\n\t\t\t// `object` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t// if this is not the last bit of the path, and\n\t\t\t// if it didn't return `undefined`\n\t\t\t// it would return `null` if `object` is `null`\n\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\tif (index !== pathArray.length - 1) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn object === undefined ? value : object;\n}\n\nexport function setProperty(object, path, value) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn object;\n\t}\n\n\tconst root = object;\n\tconst pathArray = getPathSegments(path);\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tassertNotStringIndex(object, key);\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tobject[key] = value;\n\t\t} else if (!isObject(object[key])) {\n\t\t\tobject[key] = typeof pathArray[index + 1] === 'number' ? [] : {};\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn root;\n}\n\nexport function deleteProperty(object, path) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn false;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\n\tfor (let index = 0; index < pathArray.length; index++) {\n\t\tconst key = pathArray[index];\n\n\t\tassertNotStringIndex(object, key);\n\n\t\tif (index === pathArray.length - 1) {\n\t\t\tdelete object[key];\n\t\t\treturn true;\n\t\t}\n\n\t\tobject = object[key];\n\n\t\tif (!isObject(object)) {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\nexport function hasProperty(object, path) {\n\tif (!isObject(object) || typeof path !== 'string') {\n\t\treturn false;\n\t}\n\n\tconst pathArray = getPathSegments(path);\n\tif (pathArray.length === 0) {\n\t\treturn false;\n\t}\n\n\tfor (const key of pathArray) {\n\t\tif (!isObject(object) || !(key in object) || isStringIndex(object, key)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tobject = object[key];\n\t}\n\n\treturn true;\n}\n\n// TODO: Backslashes with no effect should not be escaped\nexport function escapePath(path) {\n\tif (typeof path !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn path.replace(/[\\\\.[]/g, '\\\\$&');\n}\n\n// The keys returned by Object.entries() for arrays are strings\nfunction entries(value) {\n\tconst result = Object.entries(value);\n\tif (Array.isArray(value)) {\n\t\treturn result.map(([key, value]) => [Number(key), value]);\n\t}\n\n\treturn result;\n}\n\nfunction stringifyPath(pathSegments) {\n\tlet result = '';\n\n\tfor (let [index, segment] of entries(pathSegments)) {\n\t\tif (typeof segment === 'number') {\n\t\t\tresult += `[${segment}]`;\n\t\t} else {\n\t\t\tsegment = escapePath(segment);\n\t\t\tresult += index === 0 ? segment : `.${segment}`;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction * deepKeysIterator(object, currentPath = []) {\n\tif (!isObject(object) || isEmptyObject(object)) {\n\t\tif (currentPath.length > 0) {\n\t\t\tyield stringifyPath(currentPath);\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (const [key, value] of entries(object)) {\n\t\tyield * deepKeysIterator(value, [...currentPath, key]);\n\t}\n}\n\nexport function deepKeys(object) {\n\treturn [...deepKeysIterator(object)];\n}\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\";\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\";\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\";\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/dist/next/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a, d, c, b, f } from '../chunk-
|
|
2
|
-
import
|
|
1
|
+
import { a, d, c, b, f } from '../chunk-4DTX3UFM.mjs';
|
|
2
|
+
import G from 'http-errors';
|
|
3
3
|
import { paginate } from '@visulima/pagination';
|
|
4
4
|
import { URL } from 'node:url';
|
|
5
5
|
import { match } from 'path-to-regexp';
|
|
6
6
|
|
|
7
|
-
var X=a(x=>{d();Object.defineProperty(x,"__esModule",{value:!0});Object.defineProperty(x,"ReflectAdapter",{enumerable:!0,get:function(){return C}});var C=class{static get(e,t,r){let s=Reflect.get(e,t,r);return typeof s=="function"?s.bind(e):s}static set(e,t,r,s){return Reflect.set(e,t,r,s)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}};});var B=a(D=>{d();Object.defineProperty(D,"__esModule",{value:!0});function pe(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}pe(D,{ReadonlyHeadersError:function(){return I},HeadersAdapter:function(){return L}});var y=X(),I=class n extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers");}static callable(){throw new n}},L=class n extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,s){if(typeof r=="symbol")return y.ReflectAdapter.get(t,r,s);let o=r.toLowerCase(),i=Object.keys(e).find(u=>u.toLowerCase()===o);if(!(typeof i>"u"))return y.ReflectAdapter.get(t,i,s)},set(t,r,s,o){if(typeof r=="symbol")return y.ReflectAdapter.set(t,r,s,o);let i=r.toLowerCase(),u=Object.keys(e).find(m=>m.toLowerCase()===i);return y.ReflectAdapter.set(t,u??r,s,o)},has(t,r){if(typeof r=="symbol")return y.ReflectAdapter.has(t,r);let s=r.toLowerCase(),o=Object.keys(e).find(i=>i.toLowerCase()===s);return typeof o>"u"?!1:y.ReflectAdapter.has(t,o)},deleteProperty(t,r){if(typeof r=="symbol")return y.ReflectAdapter.deleteProperty(t,r);let s=r.toLowerCase(),o=Object.keys(e).find(i=>i.toLowerCase()===s);return typeof o>"u"?!0:y.ReflectAdapter.deleteProperty(t,o)}});}static seal(e){return new Proxy(e,{get(t,r,s){switch(r){case"append":case"delete":case"set":return I.callable;default:return y.ReflectAdapter.get(t,r,s)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new n(e)}append(e,t){let r=this.headers[e];typeof r=="string"?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t;}delete(e){delete this.headers[e];}get(e){let t=this.headers[e];return typeof t<"u"?this.merge(t):null}has(e){return typeof this.headers[e]<"u"}set(e,t){this.headers[e]=t;}forEach(e,t){for(let[r,s]of this.entries())e.call(t,s,r,this);}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield [t,r];}}*keys(){for(let e of Object.keys(this.headers))yield e.toLowerCase();}*values(){for(let e of Object.keys(this.headers))yield this.get(e);}[Symbol.iterator](){return this.entries()}};});var Y=a(w=>{d();Object.defineProperty(w,"__esModule",{value:!0});function Ee(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}Ee(w,{NEXT_QUERY_PARAM_PREFIX:function(){return le},PRERENDER_REVALIDATE_HEADER:function(){return _e},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return fe},NEXT_CACHE_TAGS_HEADER:function(){return Re},NEXT_CACHE_SOFT_TAGS_HEADER:function(){return Ae},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return me},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return Te},NEXT_CACHE_TAG_MAX_LENGTH:function(){return ge},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return ye},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return Pe},CACHE_ONE_YEAR:function(){return Se},MIDDLEWARE_FILENAME:function(){return $},MIDDLEWARE_LOCATION_REGEXP:function(){return Oe},INSTRUMENTATION_HOOK_FILENAME:function(){return he},PAGES_DIR_ALIAS:function(){return Ie},DOT_NEXT_ALIAS:function(){return Ne},ROOT_DIR_ALIAS:function(){return Ce},APP_DIR_ALIAS:function(){return xe},RSC_MOD_REF_PROXY_ALIAS:function(){return Le},RSC_ACTION_VALIDATE_ALIAS:function(){return De},RSC_ACTION_PROXY_ALIAS:function(){return we},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return He},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Me},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return ve},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return be},SERVER_PROPS_SSG_CONFLICT:function(){return Ge},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return ke},SERVER_PROPS_EXPORT_ERROR:function(){return Ue},GSP_NO_RETURNED_VALUE:function(){return Qe},GSSP_NO_RETURNED_VALUE:function(){return Fe},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Ve},GSSP_COMPONENT_MEMBER_ERROR:function(){return Xe},NON_STANDARD_NODE_ENV:function(){return Be},SSG_FALLBACK_EXPORT_ERROR:function(){return $e},ESLINT_DEFAULT_DIRS:function(){return Ye},ESLINT_PROMPT_VALUES:function(){return je},SERVER_RUNTIME:function(){return Ke},WEBPACK_LAYERS:function(){return We},WEBPACK_RESOURCE_QUERIES:function(){return qe}});var le="nxtP",_e="x-prerender-revalidate",fe="x-prerender-revalidate-if-generated",Re="x-next-cache-tags",Ae="x-next-cache-soft-tags",me="x-next-revalidated-tags",Te="x-next-revalidate-tag-token",ge=256,ye=1024,Pe="_N_T_",Se=31536e3,$="middleware",Oe=`(?:src/)?${$}`,he="instrumentation",Ie="private-next-pages",Ne="private-dot-next",Ce="private-next-root-dir",xe="private-next-app-dir",Le="private-next-rsc-mod-ref-proxy",De="private-next-rsc-action-validate",we="private-next-rsc-action-proxy",He="private-next-rsc-action-client-wrapper",Me="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",ve="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",be="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Ge="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",ke="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Ue="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",Qe="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Fe="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Ve="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",Xe="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",Be='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',$e="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",Ye=["app","pages","components","lib","src"],je=[{title:"Strict",recommended:!0,config:{extends:"next/core-web-vitals"}},{title:"Base",config:{extends:"next"}},{title:"Cancel",config:null}],Ke={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"},We={...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}},qe={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"};});var K=a((Ft,j)=>{d();(()=>{typeof __nccwpck_require__<"u"&&(__nccwpck_require__.ab=c+"/");var n={};(()=>{var e=n;e.parse=i,e.serialize=u;var t=decodeURIComponent,r=encodeURIComponent,s=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function i(f,P){if(typeof f!="string")throw new TypeError("argument str must be a string");for(var T={},d=P||{},g=f.split(s),S=d.decode||t,p=0;p<g.length;p++){var l=g[p],A=l.indexOf("=");if(!(A<0)){var _=l.substr(0,A).trim(),h=l.substr(++A,l.length).trim();h[0]=='"'&&(h=h.slice(1,-1)),T[_]==null&&(T[_]=m(h,S));}}return T}function u(f,P,T){var d=T||{},g=d.encode||r;if(typeof g!="function")throw new TypeError("option encode is invalid");if(!o.test(f))throw new TypeError("argument name is invalid");var S=g(P);if(S&&!o.test(S))throw new TypeError("argument val is invalid");var p=f+"="+S;if(d.maxAge!=null){var l=d.maxAge-0;if(isNaN(l)||!isFinite(l))throw new TypeError("option maxAge is invalid");p+="; Max-Age="+Math.floor(l);}if(d.domain){if(!o.test(d.domain))throw new TypeError("option domain is invalid");p+="; Domain="+d.domain;}if(d.path){if(!o.test(d.path))throw new TypeError("option path is invalid");p+="; Path="+d.path;}if(d.expires){if(typeof d.expires.toUTCString!="function")throw new TypeError("option expires is invalid");p+="; Expires="+d.expires.toUTCString();}if(d.httpOnly&&(p+="; HttpOnly"),d.secure&&(p+="; Secure"),d.sameSite){var A=typeof d.sameSite=="string"?d.sameSite.toLowerCase():d.sameSite;switch(A){case!0: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 m(f,P){try{return P(f)}catch{return f}}})(),j.exports=n;})();});var q=a(G=>{d();Object.defineProperty(G,"__esModule",{value:!0});function ze(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}ze(G,{sendStatusCode:function(){return Ze},redirect:function(){return et},checkIsOnDemandRevalidate:function(){return tt},COOKIE_NAME_PRERENDER_BYPASS:function(){return v},COOKIE_NAME_PRERENDER_DATA:function(){return b},RESPONSE_LIMIT_DEFAULT:function(){return rt},SYMBOL_PREVIEW_DATA:function(){return nt},SYMBOL_CLEARED_COOKIES:function(){return H},clearPreviewData:function(){return st},ApiError:function(){return M},sendError:function(){return ot},setLazyProp:function(){return at}});var Je=B(),W=Y();function Ze(n,e){return n.statusCode=e,n}function et(n,e,t){if(typeof e=="string"&&(t=e,e=307),typeof e!="number"||typeof t!="string")throw new Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return n.writeHead(e,{Location:t}),n.write(t),n.end(),n}function tt(n,e){let t=Je.HeadersAdapter.from(n.headers),s=t.get(W.PRERENDER_REVALIDATE_HEADER)===e.previewModeId,o=t.has(W.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);return {isOnDemandRevalidate:s,revalidateOnlyGenerated:o}}var v="__prerender_bypass",b="__next_preview_data",rt=4*1024*1024,nt=Symbol(b),H=Symbol(v);function st(n,e={}){if(H in n)return n;let{serialize:t}=K(),r=n.getHeader("Set-Cookie");return n.setHeader("Set-Cookie",[...typeof r=="string"?[r]:Array.isArray(r)?r:[],t(v,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...e.path!==void 0?{path:e.path}:void 0}),t(b,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...e.path!==void 0?{path:e.path}:void 0})]),Object.defineProperty(n,H,{value:!0,enumerable:!1}),n}var M=class extends Error{constructor(e,t){super(t),this.statusCode=e;}};function ot(n,e,t){n.statusCode=e,n.statusMessage=t,n.end(t);}function at({req:n},e,t){let r={configurable:!0,enumerable:!0},s={...r,writable:!0};Object.defineProperty(n,e,{...r,get:()=>{let o=t();return Object.defineProperty(n,e,{...s,value:o}),o},set:o=>{Object.defineProperty(n,e,{...s,value:o});}});}});d();d();d();var F=b(q());d();var it=async({adapter:n,query:e,request:t,resourceName:r})=>({data:await n.create(r,t.body,e),status:201}),z=it;d();var dt=async({adapter:n,query:e,resourceId:t,resourceName:r})=>{if(typeof await n.getOne(r,t,e)=="object")return {data:await n.delete(r,t,e),status:200};throw Q(404,`${r} ${t} not found`)},J=dt;d();var pt=async({adapter:n,pagination:e,query:t,resourceName:r})=>{let s=!1,o;if(t.page!==void 0){if(t.page<=0)throw new Error("page query must be a strictly positive number");o={page:t.page,perPage:t.limit??e.perPage};}o&&(s=!0,t.skip=(o.page-1)*o.perPage,t.limit=o.perPage);let i=await n.getAll(r,t);if(s){let{page:u,total:m}=await n.getPaginationData(r,t);return {data:paginate(u,o.perPage,m,i).toJSON(),status:200}}return {data:i,status:200}},Z=pt;d();var lt=async({adapter:n,query:e,resourceId:t,resourceName:r})=>{let s=await n.getOne(r,t,e);if(typeof s!="object")throw Q(404,`${r} ${t} not found`);return {data:s,status:200}},ee=lt;d();var ft=async({adapter:n,query:e,request:t,resourceId:r,resourceName:s})=>{if(typeof await n.getOne(s,r,e)=="object")return {data:await n.update(s,r,t.body,e),status:201};throw Q(404,`${s} ${r} not found`)},te=ft;d();d();var re=n=>{let e=typeof n;return n!==null&&(e==="object"||e==="function")};var k=new Set(["__proto__","prototype","constructor"]),Rt=new Set("0123456789");function At(n){let e=[],t="",r="start",s=!1;for(let o of n)switch(o){case"\\":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd")throw new Error("Invalid character after an index");s&&(t+=o),r="property",s=!s;break}case".":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd"){r="property";break}if(s){s=!1,t+=o;break}if(k.has(t))return [];e.push(t),t="",r="property";break}case"[":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd"){r="index";break}if(s){s=!1,t+=o;break}if(r==="property"){if(k.has(t))return [];e.push(t),t="";}r="index";break}case"]":{if(r==="index"){e.push(Number.parseInt(t,10)),t="",r="indexEnd";break}if(r==="indexEnd")throw new Error("Invalid character after an index")}default:{if(r==="index"&&!Rt.has(o))throw new Error("Invalid character in an index");if(r==="indexEnd")throw new Error("Invalid character after an index");r==="start"&&(r="property"),s&&(s=!1,t+="\\"),t+=o;}}switch(s&&(t+="\\"),r){case"property":{if(k.has(t))return [];e.push(t);break}case"index":throw new Error("Index was not closed");case"start":{e.push("");break}}return e}function mt(n,e){if(typeof e!="number"&&Array.isArray(n)){let t=Number.parseInt(e,10);return Number.isInteger(t)&&n[t]===n[e]}return !1}function Tt(n,e){if(mt(n,e))throw new Error("Cannot use string index")}function U(n,e,t){if(!re(n)||typeof e!="string")return n;let r=n,s=At(e);for(let o=0;o<s.length;o++){let i=s[o];Tt(n,i),o===s.length-1?n[i]=t:re(n[i])||(n[i]=typeof s[o+1]=="number"?[]:{}),n=n[i];}return r}var ne=n=>{let e={};return n.split(",").forEach(r=>{U(e,r,!0);}),e},yt=n=>{let e=JSON.parse(n),t={};return Object.keys(e).forEach(r=>{U(t,r,e[r]);}),t},Pt=n=>{let e={},t=JSON.parse(n);if(Object.keys(t).length>0){let r=Object.keys(t)[0];(t[r]==="$asc"||t[r]==="$desc")&&(e[r]=t[r]);}if(Object.keys(e).length!==1)throw new Error("orderBy needs to be an object with exactly 1 property with either $asc or $desc value");return e},St=n=>{if(n){let{searchParams:e}=new URL(n),t={};return e.get("select")&&(t.select=ne(e.get("select"))),e.get("include")&&(t.include=ne(e.get("include"))),e.get("where")&&(t.where=yt(e.get("where"))),e.get("orderBy")&&(t.orderBy=Pt(e.get("orderBy"))),e.has("limit")&&(t.limit=Number.isFinite(+e.get("limit"))?+e.get("limit"):void 0),e.has("skip")&&(t.skip=Number.isFinite(+e.get("skip"))?+e.get("skip"):void 0),e.get("distinct")&&(t.distinct=e.get("distinct")),e.get("page")&&(t.page=Number.isFinite(+e.get("page"))?+e.get("page"):void 0),{originalQuery:Object.fromEntries(e.entries()),...t}}return {}},se=St;d();var Ot=n=>Number.isSafeInteger(+n)?+n:n,oe=Ot;d();var ht=n=>`${n.charAt(0).toLowerCase()}${n.slice(1)}`,ae=(n,e)=>{let t=n.split("?")[0];if(t===void 0)throw new TypeError("Path is undefined");let r=Object.keys(e).find(s=>{let o=e[s],i=ht(o);return new RegExp(`(${o}|${i}$)|(${o}|${i}/)`,"g").test(t)});if(r===void 0)throw new Error(`Couldn't find model ${r} name for url ${n}`);return {modelName:r,resourceName:e[r]}};d();var It=(n,e,t)=>{let r=e.split("?")[0];if(r===void 0)throw new TypeError("Path is undefined");if(!r.includes(`/${t}`))throw new Error(`invalid resource name '${t}' for route '${r}'`);let s=match([`/(.*)/${t}`,`/(.*)/${t}/:id`],{decode:decodeURIComponent}),o=match(`/(.*)/${t}`,{decode:decodeURIComponent});switch(n){case"GET":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"READ_ONE"}:{routeType:"READ_ALL"}}case"POST":return o(r)?{routeType:"CREATE"}:{routeType:null};case"PUT":case"PATCH":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"UPDATE"}:{routeType:null}}case"DELETE":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"DELETE"}:{routeType:null}}default:return {routeType:null}}},ue=It;d();var Ct=["create","delete","getAll","getOne","parseQuery","update","getPaginationData","getModels"],xt=n=>{Ct.forEach(e=>{if(!n[e])throw Q(500,`Adapter must implement the "${e}" method.`)});},de=xt;async function Lt(n,e,t,r){try{de(t);}catch(u){let m=u;throw new F.ApiError(m.statusCode,m.message)}await t.init?.();let s={formatResourceId:oe,pagination:{perPage:20},...r},o=await t.mapModelsToRouteNames?.(),i={};return t.getModels().forEach(u=>{i[u]=s.models?.[u]?.name??o?.[u]??u;}),async(u,m)=>{let{modelName:f$1,resourceName:P}=ae(u.url,i);if(!P)throw Q(404,`Resource not found: ${u.url}`);let{resourceId:T,routeType:d}=ue(u.method,u.url,P);if(d===null)throw Q(404,`Route not found: ${u.url}`);let g=r?.models?.[f$1];if(!f(g?.only,g?.exclude,r?.exposeStrategy??"all").includes(d))throw Q(404,`Route not found: ${u.url}`);try{let p=g?.formatResourceId?.(T)??s.formatResourceId(T);await t.connect?.();let l=se(`https://${u.headers.host?.replace(/\/$/u,"")}/${u.url}`),A={adapter:t,query:t.parseQuery(f$1,l),resourceName:f$1};try{let _;switch(d){case"READ_ONE":{_=await(s.handlers?.get??ee)({...A,resourceId:p});break}case"READ_ALL":{_=await(s.handlers?.list??Z)({...A,pagination:s.pagination,query:{...A.query,limit:l.limit?Number(l.limit):void 0,page:l.page?Number(l.page):void 0}});break}case"CREATE":{_=await(s.handlers?.create??z)({...A,request:u});break}case"UPDATE":{_=await(s.handlers?.update??te)({...A,request:u,resourceId:p});break}case"DELETE":{_=await(s.handlers?.delete??J)({...A,resourceId:p});break}default:_={data:"Method not found",status:404};}await n(m,_);}catch(_){if(t.handleError&&!(_ instanceof F.ApiError))t.handleError(_);else throw _}}finally{await t.disconnect?.(),await e(m);}}}var N=Lt;var Dt=async(n,e)=>await N(async(t,r)=>new Response(JSON.stringify(r.data),{headers:{"content-type":"application/json; charset=utf-8"},status:r.status}),async()=>{},n,e),wt=Dt;d();var Ht=async(n,e)=>await N(async(t,r)=>{t.status(r.status).send(r.data);},async t=>{t.end();},n,e),Mt=Ht;/*! Bundled license information:
|
|
7
|
+
var V=a(x=>{d();Object.defineProperty(x,"__esModule",{value:!0});Object.defineProperty(x,"ReflectAdapter",{enumerable:!0,get:function(){return C}});var C=class{static get(e,t,r){let s=Reflect.get(e,t,r);return typeof s=="function"?s.bind(e):s}static set(e,t,r,s){return Reflect.set(e,t,r,s)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}};});var B=a(D=>{d();Object.defineProperty(D,"__esModule",{value:!0});function Ee(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}Ee(D,{ReadonlyHeadersError:function(){return h},HeadersAdapter:function(){return L}});var y=V(),h=class n extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers");}static callable(){throw new n}},L=class n extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,s){if(typeof r=="symbol")return y.ReflectAdapter.get(t,r,s);let o=r.toLowerCase(),i=Object.keys(e).find(u=>u.toLowerCase()===o);if(!(typeof i>"u"))return y.ReflectAdapter.get(t,i,s)},set(t,r,s,o){if(typeof r=="symbol")return y.ReflectAdapter.set(t,r,s,o);let i=r.toLowerCase(),u=Object.keys(e).find(T=>T.toLowerCase()===i);return y.ReflectAdapter.set(t,u??r,s,o)},has(t,r){if(typeof r=="symbol")return y.ReflectAdapter.has(t,r);let s=r.toLowerCase(),o=Object.keys(e).find(i=>i.toLowerCase()===s);return typeof o>"u"?!1:y.ReflectAdapter.has(t,o)},deleteProperty(t,r){if(typeof r=="symbol")return y.ReflectAdapter.deleteProperty(t,r);let s=r.toLowerCase(),o=Object.keys(e).find(i=>i.toLowerCase()===s);return typeof o>"u"?!0:y.ReflectAdapter.deleteProperty(t,o)}});}static seal(e){return new Proxy(e,{get(t,r,s){switch(r){case"append":case"delete":case"set":return h.callable;default:return y.ReflectAdapter.get(t,r,s)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new n(e)}append(e,t){let r=this.headers[e];typeof r=="string"?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t;}delete(e){delete this.headers[e];}get(e){let t=this.headers[e];return typeof t<"u"?this.merge(t):null}has(e){return typeof this.headers[e]<"u"}set(e,t){this.headers[e]=t;}forEach(e,t){for(let[r,s]of this.entries())e.call(t,s,r,this);}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield [t,r];}}*keys(){for(let e of Object.keys(this.headers))yield e.toLowerCase();}*values(){for(let e of Object.keys(this.headers))yield this.get(e);}[Symbol.iterator](){return this.entries()}};});var $=a(w=>{d();Object.defineProperty(w,"__esModule",{value:!0});function le(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}le(w,{NEXT_QUERY_PARAM_PREFIX:function(){return pe},PRERENDER_REVALIDATE_HEADER:function(){return _e},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return fe},RSC_PREFETCH_SUFFIX:function(){return Re},RSC_SUFFIX:function(){return Ae},NEXT_DATA_SUFFIX:function(){return Te},NEXT_META_SUFFIX:function(){return me},NEXT_BODY_SUFFIX:function(){return ge},NEXT_CACHE_TAGS_HEADER:function(){return ye},NEXT_CACHE_SOFT_TAGS_HEADER:function(){return Se},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return Pe},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return Oe},NEXT_CACHE_TAG_MAX_LENGTH:function(){return Ie},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return he},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return Ne},CACHE_ONE_YEAR:function(){return Ce},MIDDLEWARE_FILENAME:function(){return Y},MIDDLEWARE_LOCATION_REGEXP:function(){return xe},INSTRUMENTATION_HOOK_FILENAME:function(){return Le},PAGES_DIR_ALIAS:function(){return De},DOT_NEXT_ALIAS:function(){return we},ROOT_DIR_ALIAS:function(){return He},APP_DIR_ALIAS:function(){return Me},RSC_MOD_REF_PROXY_ALIAS:function(){return ve},RSC_ACTION_VALIDATE_ALIAS:function(){return be},RSC_ACTION_PROXY_ALIAS:function(){return Fe},RSC_ACTION_ENCRYPTION_ALIAS:function(){return Ue},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Xe},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Ge},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return ke},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Qe},SERVER_PROPS_SSG_CONFLICT:function(){return Ve},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Be},SERVER_PROPS_EXPORT_ERROR:function(){return Ye},GSP_NO_RETURNED_VALUE:function(){return $e},GSSP_NO_RETURNED_VALUE:function(){return je},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return Ke},GSSP_COMPONENT_MEMBER_ERROR:function(){return We},NON_STANDARD_NODE_ENV:function(){return qe},SSG_FALLBACK_EXPORT_ERROR:function(){return ze},ESLINT_DEFAULT_DIRS:function(){return Je},ESLINT_PROMPT_VALUES:function(){return Ze},SERVER_RUNTIME:function(){return et},WEBPACK_LAYERS:function(){return tt},WEBPACK_RESOURCE_QUERIES:function(){return rt}});var pe="nxtP",_e="x-prerender-revalidate",fe="x-prerender-revalidate-if-generated",Re=".prefetch.rsc",Ae=".rsc",Te=".json",me=".meta",ge=".body",ye="x-next-cache-tags",Se="x-next-cache-soft-tags",Pe="x-next-revalidated-tags",Oe="x-next-revalidate-tag-token",Ie=256,he=1024,Ne="_N_T_",Ce=31536e3,Y="middleware",xe=`(?:src/)?${Y}`,Le="instrumentation",De="private-next-pages",we="private-dot-next",He="private-next-root-dir",Me="private-next-app-dir",ve="private-next-rsc-mod-ref-proxy",be="private-next-rsc-action-validate",Fe="private-next-rsc-server-reference",Ue="private-next-rsc-action-encryption",Xe="private-next-rsc-action-client-wrapper",Ge="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",ke="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Qe="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Ve="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Be="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Ye="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",$e="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",je="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",Ke="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",We="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",qe='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',ze="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",Je=["app","pages","components","lib","src"],Ze=[{title:"Strict",recommended:!0,config:{extends:"next/core-web-vitals"}},{title:"Base",config:{extends:"next"}},{title:"Cancel",config:null}],et={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},f={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"},tt={...f,GROUP:{server:[f.reactServerComponents,f.actionBrowser,f.appMetadataRoute,f.appRouteHandler],nonClientServerTarget:[f.middleware,f.api],app:[f.reactServerComponents,f.actionBrowser,f.appMetadataRoute,f.appRouteHandler,f.serverSideRendering,f.appPagesBrowser,f.shared]}},rt={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"};});var K=a((jt,j)=>{d();(()=>{typeof __nccwpck_require__<"u"&&(__nccwpck_require__.ab=c+"/");var n={};(()=>{var e=n;e.parse=i,e.serialize=u;var t=decodeURIComponent,r=encodeURIComponent,s=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function i(R,S){if(typeof R!="string")throw new TypeError("argument str must be a string");for(var m={},d=S||{},g=R.split(s),P=d.decode||t,E=0;E<g.length;E++){var p=g[E],A=p.indexOf("=");if(!(A<0)){var _=p.substr(0,A).trim(),I=p.substr(++A,p.length).trim();I[0]=='"'&&(I=I.slice(1,-1)),m[_]==null&&(m[_]=T(I,P));}}return m}function u(R,S,m){var d=m||{},g=d.encode||r;if(typeof g!="function")throw new TypeError("option encode is invalid");if(!o.test(R))throw new TypeError("argument name is invalid");var P=g(S);if(P&&!o.test(P))throw new TypeError("argument val is invalid");var E=R+"="+P;if(d.maxAge!=null){var p=d.maxAge-0;if(isNaN(p)||!isFinite(p))throw new TypeError("option maxAge is invalid");E+="; Max-Age="+Math.floor(p);}if(d.domain){if(!o.test(d.domain))throw new TypeError("option domain is invalid");E+="; Domain="+d.domain;}if(d.path){if(!o.test(d.path))throw new TypeError("option path is invalid");E+="; Path="+d.path;}if(d.expires){if(typeof d.expires.toUTCString!="function")throw new TypeError("option expires is invalid");E+="; Expires="+d.expires.toUTCString();}if(d.httpOnly&&(E+="; HttpOnly"),d.secure&&(E+="; Secure"),d.sameSite){var A=typeof d.sameSite=="string"?d.sameSite.toLowerCase():d.sameSite;switch(A){case!0:E+="; SameSite=Strict";break;case"lax":E+="; SameSite=Lax";break;case"strict":E+="; SameSite=Strict";break;case"none":E+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return E}function T(R,S){try{return S(R)}catch{return R}}})(),j.exports=n;})();});var q=a(F=>{d();Object.defineProperty(F,"__esModule",{value:!0});function nt(n,e){for(var t in e)Object.defineProperty(n,t,{enumerable:!0,get:e[t]});}nt(F,{sendStatusCode:function(){return ot},redirect:function(){return at},checkIsOnDemandRevalidate:function(){return it},COOKIE_NAME_PRERENDER_BYPASS:function(){return v},COOKIE_NAME_PRERENDER_DATA:function(){return b},RESPONSE_LIMIT_DEFAULT:function(){return ut},SYMBOL_PREVIEW_DATA:function(){return dt},SYMBOL_CLEARED_COOKIES:function(){return H},clearPreviewData:function(){return ct},ApiError:function(){return M},sendError:function(){return Et},setLazyProp:function(){return lt}});var st=B(),W=$();function ot(n,e){return n.statusCode=e,n}function at(n,e,t){if(typeof e=="string"&&(t=e,e=307),typeof e!="number"||typeof t!="string")throw new Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return n.writeHead(e,{Location:t}),n.write(t),n.end(),n}function it(n,e){let t=st.HeadersAdapter.from(n.headers),s=t.get(W.PRERENDER_REVALIDATE_HEADER)===e.previewModeId,o=t.has(W.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);return {isOnDemandRevalidate:s,revalidateOnlyGenerated:o}}var v="__prerender_bypass",b="__next_preview_data",ut=4*1024*1024,dt=Symbol(b),H=Symbol(v);function ct(n,e={}){if(H in n)return n;let{serialize:t}=K(),r=n.getHeader("Set-Cookie");return n.setHeader("Set-Cookie",[...typeof r=="string"?[r]:Array.isArray(r)?r:[],t(v,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...e.path!==void 0?{path:e.path}:void 0}),t(b,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...e.path!==void 0?{path:e.path}:void 0})]),Object.defineProperty(n,H,{value:!0,enumerable:!1}),n}var M=class extends Error{constructor(e,t){super(t),this.statusCode=e;}};function Et(n,e,t){n.statusCode=e,n.statusMessage=t,n.end(t);}function lt({req:n},e,t){let r={configurable:!0,enumerable:!0},s={...r,writable:!0};Object.defineProperty(n,e,{...r,get:()=>{let o=t();return Object.defineProperty(n,e,{...s,value:o}),o},set:o=>{Object.defineProperty(n,e,{...s,value:o});}});}});d();d();d();var k=b(q());d();var pt=async({adapter:n,query:e,request:t,resourceName:r})=>({data:await n.create(r,t.body,e),status:201}),z=pt;d();var ft=async({adapter:n,query:e,resourceId:t,resourceName:r})=>{if(typeof await n.getOne(r,t,e)=="object")return {data:await n.delete(r,t,e),status:200};throw G(404,`${r} ${t} not found`)},J=ft;d();var At=async({adapter:n,pagination:e,query:t,resourceName:r})=>{let s=!1,o;if(t.page!==void 0){if(t.page<=0)throw new Error("page query must be a strictly positive number");o={page:t.page,perPage:t.limit??e.perPage};}o&&(s=!0,t.skip=(o.page-1)*o.perPage,t.limit=o.perPage);let i=await n.getAll(r,t);if(s){let{page:u,total:T}=await n.getPaginationData(r,t);return {data:paginate(u,o.perPage,T,i).toJSON(),status:200}}return {data:i,status:200}},Z=At;d();var mt=async({adapter:n,query:e,resourceId:t,resourceName:r})=>{let s=await n.getOne(r,t,e);if(typeof s!="object")throw G(404,`${r} ${t} not found`);return {data:s,status:200}},ee=mt;d();var yt=async({adapter:n,query:e,request:t,resourceId:r,resourceName:s})=>{if(typeof await n.getOne(s,r,e)=="object")return {data:await n.update(s,r,t.body,e),status:201};throw G(404,`${s} ${r} not found`)},te=yt;d();d();var re=n=>{let e=typeof n;return n!==null&&(e==="object"||e==="function")};var U=new Set(["__proto__","prototype","constructor"]),St=new Set("0123456789");function Pt(n){let e=[],t="",r="start",s=!1;for(let o of n)switch(o){case"\\":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd")throw new Error("Invalid character after an index");s&&(t+=o),r="property",s=!s;break}case".":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd"){r="property";break}if(s){s=!1,t+=o;break}if(U.has(t))return [];e.push(t),t="",r="property";break}case"[":{if(r==="index")throw new Error("Invalid character in an index");if(r==="indexEnd"){r="index";break}if(s){s=!1,t+=o;break}if(r==="property"){if(U.has(t))return [];e.push(t),t="";}r="index";break}case"]":{if(r==="index"){e.push(Number.parseInt(t,10)),t="",r="indexEnd";break}if(r==="indexEnd")throw new Error("Invalid character after an index")}default:{if(r==="index"&&!St.has(o))throw new Error("Invalid character in an index");if(r==="indexEnd")throw new Error("Invalid character after an index");r==="start"&&(r="property"),s&&(s=!1,t+="\\"),t+=o;}}switch(s&&(t+="\\"),r){case"property":{if(U.has(t))return [];e.push(t);break}case"index":throw new Error("Index was not closed");case"start":{e.push("");break}}return e}function Ot(n,e){if(typeof e!="number"&&Array.isArray(n)){let t=Number.parseInt(e,10);return Number.isInteger(t)&&n[t]===n[e]}return !1}function It(n,e){if(Ot(n,e))throw new Error("Cannot use string index")}function X(n,e,t){if(!re(n)||typeof e!="string")return n;let r=n,s=Pt(e);for(let o=0;o<s.length;o++){let i=s[o];It(n,i),o===s.length-1?n[i]=t:re(n[i])||(n[i]=typeof s[o+1]=="number"?[]:{}),n=n[i];}return r}var ne=n=>{let e={};return n.split(",").forEach(r=>{X(e,r,!0);}),e},Nt=n=>{let e=JSON.parse(n),t={};return Object.keys(e).forEach(r=>{X(t,r,e[r]);}),t},Ct=n=>{let e={},t=JSON.parse(n);if(Object.keys(t).length>0){let r=Object.keys(t)[0];(t[r]==="$asc"||t[r]==="$desc")&&(e[r]=t[r]);}if(Object.keys(e).length!==1)throw new Error("orderBy needs to be an object with exactly 1 property with either $asc or $desc value");return e},xt=n=>{if(n){let{searchParams:e}=new URL(n),t={};return e.get("select")&&(t.select=ne(e.get("select"))),e.get("include")&&(t.include=ne(e.get("include"))),e.get("where")&&(t.where=Nt(e.get("where"))),e.get("orderBy")&&(t.orderBy=Ct(e.get("orderBy"))),e.has("limit")&&(t.limit=Number.isFinite(+e.get("limit"))?+e.get("limit"):void 0),e.has("skip")&&(t.skip=Number.isFinite(+e.get("skip"))?+e.get("skip"):void 0),e.get("distinct")&&(t.distinct=e.get("distinct")),e.get("page")&&(t.page=Number.isFinite(+e.get("page"))?+e.get("page"):void 0),{originalQuery:Object.fromEntries(e.entries()),...t}}return {}},se=xt;d();var Lt=n=>Number.isSafeInteger(+n)?+n:n,oe=Lt;d();var Dt=n=>`${n.charAt(0).toLowerCase()}${n.slice(1)}`,ae=(n,e)=>{let t=n.split("?")[0];if(t===void 0)throw new TypeError("Path is undefined");let r=Object.keys(e).find(s=>{let o=e[s],i=Dt(o);return new RegExp(`(${o}|${i}$)|(${o}|${i}/)`,"g").test(t)});if(r===void 0)throw new Error(`Couldn't find model ${r} name for url ${n}`);return {modelName:r,resourceName:e[r]}};d();var wt=(n,e,t)=>{let r=e.split("?")[0];if(r===void 0)throw new TypeError("Path is undefined");if(!r.includes(`/${t}`))throw new Error(`invalid resource name '${t}' for route '${r}'`);let s=match([`/(.*)/${t}`,`/(.*)/${t}/:id`],{decode:decodeURIComponent}),o=match(`/(.*)/${t}`,{decode:decodeURIComponent});switch(n){case"GET":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"READ_ONE"}:{routeType:"READ_ALL"}}case"POST":return o(r)?{routeType:"CREATE"}:{routeType:null};case"PUT":case"PATCH":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"UPDATE"}:{routeType:null}}case"DELETE":{let i=s(r);return typeof i=="object"&&i.params.id?{resourceId:i.params.id,routeType:"DELETE"}:{routeType:null}}default:return {routeType:null}}},ue=wt;d();var Mt=["create","delete","getAll","getOne","parseQuery","update","getPaginationData","getModels"],vt=n=>{Mt.forEach(e=>{if(!n[e])throw G(500,`Adapter must implement the "${e}" method.`)});},de=vt;async function bt(n,e,t,r){try{de(t);}catch(u){let T=u;throw new k.ApiError(T.statusCode,T.message)}await t.init?.();let s={formatResourceId:oe,pagination:{perPage:20},...r},o=await t.mapModelsToRouteNames?.(),i={};return t.getModels().forEach(u=>{i[u]=s.models?.[u]?.name??o?.[u]??u;}),async(u,T)=>{let{modelName:R,resourceName:S}=ae(u.url,i);if(!S)throw G(404,`Resource not found: ${u.url}`);let{resourceId:m,routeType:d}=ue(u.method,u.url,S);if(d===null)throw G(404,`Route not found: ${u.url}`);let g=r?.models?.[R];if(!f(g?.only,g?.exclude,r?.exposeStrategy??"all").includes(d))throw G(404,`Route not found: ${u.url}`);try{let E=g?.formatResourceId?.(m)??s.formatResourceId(m);await t.connect?.();let p=se(`https://${u.headers.host?.replace(/\/$/u,"")}/${u.url}`),A={adapter:t,query:t.parseQuery(R,p),resourceName:R};try{let _;switch(d){case"READ_ONE":{_=await(s.handlers?.get??ee)({...A,resourceId:E});break}case"READ_ALL":{_=await(s.handlers?.list??Z)({...A,pagination:s.pagination,query:{...A.query,limit:p.limit?Number(p.limit):void 0,page:p.page?Number(p.page):void 0}});break}case"CREATE":{_=await(s.handlers?.create??z)({...A,request:u});break}case"UPDATE":{_=await(s.handlers?.update??te)({...A,request:u,resourceId:E});break}case"DELETE":{_=await(s.handlers?.delete??J)({...A,resourceId:E});break}default:_={data:"Method not found",status:404};}await n(T,_);}catch(_){if(t.handleError&&!(_ instanceof k.ApiError))t.handleError(_);else throw _}}finally{await t.disconnect?.(),await e(T);}}}var N=bt;var Ft=async(n,e)=>await N(async(t,r)=>new Response(JSON.stringify(r.data),{headers:{"content-type":"application/json; charset=utf-8"},status:r.status}),async()=>{},n,e),Ut=Ft;d();var Xt=async(n,e)=>await N(async(t,r)=>{t.status(r.status).send(r.data);},async t=>{t.end();},n,e),Gt=Xt;/*! Bundled license information:
|
|
8
8
|
|
|
9
9
|
next/dist/compiled/cookie/index.js:
|
|
10
10
|
(*!
|
|
@@ -15,6 +15,6 @@ next/dist/compiled/cookie/index.js:
|
|
|
15
15
|
*)
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
export {
|
|
18
|
+
export { Ut as edgeHandler, Gt as nodeHandler };
|
|
19
19
|
//# sourceMappingURL=out.js.map
|
|
20
20
|
//# sourceMappingURL=index.mjs.map
|