ts-ag 1.2.6 → 1.3.0

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/dist/browser.d.ts CHANGED
@@ -115,11 +115,11 @@ type ApiErrorBody<E extends ApiEndpoints, P extends E['path'], M extends E['meth
115
115
  */
116
116
  type ConvertToFetch<T> = T extends {
117
117
  statusCode: number;
118
- body: object;
119
- headers: object;
118
+ body?: infer Body;
119
+ headers?: object;
120
120
  } ? {
121
121
  ok: T['statusCode'] extends SuccessCode ? true : false;
122
- json: () => Promise<T['body']>;
122
+ json: () => Promise<Body>;
123
123
  status: T['statusCode'];
124
124
  } : T;
125
125
  type CleanResponse = Omit<Response, 'status' | 'ok' | 'json'>;
@@ -129,8 +129,8 @@ type HTTPMethod = (typeof HTTPMethods)[number];
129
129
  type ApiEndpoints = {
130
130
  path: string;
131
131
  method: HTTPMethod;
132
- requestInput: Record<string, any> | null;
133
- requestOutput: object | null;
132
+ requestInput: any;
133
+ requestOutput: any;
134
134
  response: FetchResponse<() => Promise<{
135
135
  headers: object;
136
136
  statusCode: SuccessCode;
@@ -143,17 +143,31 @@ type ApiEndpoints = {
143
143
  };
144
144
  //#endregion
145
145
  //#region src/lambda/client.d.ts
146
- declare const HTTPMethods$1: readonly ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'];
147
- type HTTPMethod$1 = (typeof HTTPMethods$1)[number];
148
146
  type ApiRequestFunction<API extends ApiEndpoints> = <Path extends API['path'], Method extends Extract<API, {
149
147
  path: Path;
150
- }>['method']>(path: Path, method: Method, input: ApiInput<API, Path, Method>, headers?: HeadersInit) => Promise<ApiResponse<API, Path, Method>>;
148
+ }>['method']>(endpoint: ApiEndpointContract<API, Path, Method>, input: ApiInput<API, Path, Method>, headers?: HeadersInit) => Promise<ApiResponse<API, Path, Method>>;
151
149
  type ApiSchema = GenericSchema | GenericSchemaAsync;
150
+ type ApiEndpointContract<API extends ApiEndpoints, Path extends API['path'], Method extends Extract<API, {
151
+ path: Path;
152
+ }>['method']> = {
153
+ path: Path;
154
+ method: Method;
155
+ schema: ApiSchema;
156
+ };
157
+ type AnyApiEndpointContract<API extends ApiEndpoints> = { [Path in API['path']]: { [Method in Extract<API, {
158
+ path: Path;
159
+ }>['method']]: ApiEndpointContract<API, Path, Method> }[Extract<API, {
160
+ path: Path;
161
+ }>['method']] }[API['path']];
162
+ declare function endpointKey(endpoint: {
163
+ path: string;
164
+ method: string;
165
+ }): string;
152
166
  /**
153
167
  * @returns A function that can be used to make API requests with type safety
154
168
  * @example const clientApiRequest = createApiRequest<ApiEndpoints>();
155
169
  */
156
- declare function createApiRequest<API extends ApiEndpoints>(schemas: Partial<Record<API['path'], Partial<Record<HTTPMethod$1, ApiSchema>>>>, apiUrl: string, env: string): ApiRequestFunction<API>;
170
+ declare function createApiRequest<API extends ApiEndpoints>(apiUrl: string, env: string): ApiRequestFunction<API>;
157
171
  //#endregion
158
172
  //#region node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts
159
173
  // ## Interfaces
@@ -578,5 +592,5 @@ declare const deepDiff: <A extends object, B extends object>(a: A, b: B) => Deep
578
592
  */
579
593
  declare function pruneToShape<S, Sh>(source: S, shape: Sh): Sh;
580
594
  //#endregion
581
- export { APIGatewayHandler, ApiEndpoints, ApiErrorBody, ApiInput, ApiOutput, ApiRequestFunction, ApiResponse, ApiSchema, ApiSuccessBody, CleanResponse, DeepOverride, DeepPartial, DeepReadonly, DeepRequired, ErrorBody, ErrorCode, ErrorRawProxyResultV2, FetchResponse, GetSchemaByPathOptions, HTTPMethod, HTTPMethods, OkRawProxyResultV2, RawApiGatewayHandler, RawProxyResultV2, SafeOmit, SuccessCode, Toc, TocEntry, createApiRequest, deepDiff, extractToc, getByPath, getSchemaByPath, isSchema, parseRaw, pruneToShape, setByPath, unwrap, wrapHandler };
595
+ export { APIGatewayHandler, AnyApiEndpointContract, ApiEndpointContract, ApiEndpoints, ApiErrorBody, ApiInput, ApiOutput, ApiRequestFunction, ApiResponse, ApiSchema, ApiSuccessBody, CleanResponse, DeepOverride, DeepPartial, DeepReadonly, DeepRequired, ErrorBody, ErrorCode, ErrorRawProxyResultV2, FetchResponse, GetSchemaByPathOptions, HTTPMethod, HTTPMethods, OkRawProxyResultV2, RawApiGatewayHandler, RawProxyResultV2, SafeOmit, SuccessCode, Toc, TocEntry, createApiRequest, deepDiff, endpointKey, extractToc, getByPath, getSchemaByPath, isSchema, parseRaw, pruneToShape, setByPath, unwrap, wrapHandler };
582
596
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","Properties","Array","PropertyName","ElementContent","ElementContentMap","Comment","Element","Text","comment","element","text","RootContent","RootContentMap","Doctype","doctype","Content","Literals","Nodes","Extract","Root","Parents","data","value","children","CommentData","type","DoctypeData","ElementData","tagName","properties","content","RootData","TextData"],"sources":["../src/lambda/handlerUtils.ts","../src/lambda/client-types.ts","../src/lambda/client.ts","../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../src/rehype/flat-toc.ts","../src/types/deep.ts","../src/types/safe.ts","../src/utils/valibot.ts","../src/utils/object.ts"],"x_google_ignoreList":[3,4],"mappings":";;;;;KAGY,WAAA;AAAA,KACA,SAAA;AAAA,KAEA,SAAA;EAAc,OAAA;EAAiB,KAAA;IAAU,IAAA;IAAc,KAAA;EAAA;AAAA;AAFnE;;;AAAA,KAOY,qBAAA;EACV,UAAA,EAAY,SAAA;EACZ,OAAA;IAAA,CAAa,MAAA;EAAA;EACb,IAAA,GAAO,SAAA;EACP,eAAA;EACA,OAAA;AAAA;AAAA,KAGU,kBAAA;EACV,UAAA,EAAY,WAAA;EACZ,OAAA;IAAA,CAAa,MAAA;EAAA;EACb,IAAA;EACA,eAAA;EACA,OAAA;AAAA;;;;KAKU,gBAAA,GAAmB,qBAAA,GAAwB,kBAAA;AAAA,KAG3C,iBAAA,OAAwB,KAAA,EAAO,CAAA,EAAG,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,uBAAA;AAAA,KAG/D,oBAAA,WAA+B,0CAAA,UACzC,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,OAAA,KACN,OAAA,CAAQ,gBAAA;;;AAnBb;;;;;;;;;;;;iBAmCgB,WAAA,WAAsB,0CAAA,MAAA,CACpC,OAAA,EAAS,oBAAA,CAAqB,CAAA,IAC7B,iBAAA,CAAkB,CAAA;;;;;;;AArDrB;;KCQY,QAAA,WAAmB,YAAA,YAAwB,CAAA,oBAAqB,CAAA,cAAe,OAAA,CACzF,CAAA;EACE,IAAA,EAAM,CAAA;EAAG,MAAA,EAAQ,CAAA;AAAA;;;;;ADPrB;;KCgBY,SAAA,WAAoB,YAAA,YAAwB,CAAA,oBAAqB,CAAA,cAAe,OAAA,CAC1F,CAAA;EACE,IAAA,EAAM,CAAA;EAAG,MAAA,EAAQ,CAAA;AAAA;;;;;ADbrB;;KCsBY,WAAA,WAAsB,YAAA,YAAwB,CAAA,oBAAqB,CAAA,cAAe,OAAA,CAC5F,CAAA;EACE,IAAA,EAAM,CAAA;EAAG,MAAA,EAAQ,CAAA;AAAA;;;;;;;KAST,cAAA,WAAyB,YAAA,YAAwB,CAAA,oBAAqB,CAAA,cAAe,OAAA,CAC/F,OAAA,CAAQ,CAAA;EAAK,IAAA,EAAM,CAAA;EAAG,MAAA,EAAQ,CAAA;AAAA;EAC5B,MAAA,EAAQ,WAAA;AAAA,0BACY,OAAA,aACpB,CAAA;;;;;;;KASQ,YAAA,WAAuB,YAAA,YAAwB,CAAA,oBAAqB,CAAA,cAAe,OAAA,CAC7F,OAAA,CAAQ,CAAA;EAAK,IAAA,EAAM,CAAA;EAAG,MAAA,EAAQ,CAAA;AAAA;EAC5B,MAAA,EAAQ,SAAA;AAAA,0BACY,OAAA,aACpB,CAAA;;;AD7BJ;KCmCK,cAAA,MAAoB,CAAA;EAAY,UAAA;EAAoB,IAAA;EAAc,OAAA;AAAA;EACjE,EAAA,EAAI,CAAA,uBAAwB,WAAA;EAA4B,IAAA,QAAY,OAAA,CAAQ,CAAA;EAAY,MAAA,EAAQ,CAAA;AAAA,IAClG,CAAA;AAAA,KAEQ,aAAA,GAAgB,IAAA,CAAK,QAAA;AAAA,KACrB,aAAA,eAA4B,IAAA,iBAAqB,cAAA,CAAe,OAAA,CAAQ,UAAA,CAAW,CAAA,MAAO,aAAA;AAAA,cAKzF,WAAA;AAAA,KACD,UAAA,WAAqB,WAAA;AAAA,KAErB,YAAA;EACV,IAAA;EACA,MAAA,EAAQ,UAAA;EACR,YAAA,EAAc,MAAA;EACd,aAAA;EACA,QAAA,EAAU,aAAA,OAEF,OAAA;IACA,OAAA;IAAiB,UAAA,EAAY,WAAA;IAAa,IAAA;EAAA;IAC1C,OAAA;IAAiB,UAAA,EAAY,SAAA;IAAW,IAAA,EAAM,SAAA;EAAA;AAAA;;;cCvBlD,aAAA;AAAA,KACD,YAAA,WAAqB,aAAA;AAAA,KAEd,kBAAA,aAA+B,YAAA,kBAC5B,GAAA,yBACE,OAAA,CAAQ,GAAA;EAAO,IAAA,EAAM,IAAA;AAAA,cAEpC,IAAA,EAAM,IAAA,EACN,MAAA,EAAQ,MAAA,EACR,KAAA,EAAO,QAAA,CAAS,GAAA,EAAK,IAAA,EAAM,MAAA,GAC3B,OAAA,GAAU,WAAA,KACP,OAAA,CAAQ,WAAA,CAAY,GAAA,EAAK,IAAA,EAAM,MAAA;AAAA,KAExB,SAAA,GAAY,aAAA,GAAgB,kBAAA;;;AF3ExC;;iBEiFgB,gBAAA,aAA6B,YAAA,CAAA,CAC3C,OAAA,EAAS,OAAA,CAAQ,MAAA,CAAO,GAAA,UAAa,OAAA,CAAQ,MAAA,CAAO,YAAA,EAAY,SAAA,MAChE,MAAA,UACA,GAAA,WACC,kBAAA,CAAmB,GAAA;;;;;;;AFtFtB;;;;;AACA;;;;;AAEA;;;;;;UGeiBA,MAAAA;;;AHVjB;UGeiBC,KAAAA;;;;EAIbC,IAAAA;EHjBW;;;EGsBXC,MAAAA;EHnBF;;;EGuBEC,MAAAA;AAAAA;;;;;;UAQaC,QAAAA;EHxBf;;;EG4BEC,KAAAA,EAAOL,KAAAA;EHtBiB;;;EG2BxBM,GAAAA,EAAKN,KAAAA;AAAAA;AHrBT;;;;;;;;;;AAAA,UGkDiBQ,MAAAA;EHlD0B;;;EGsDvCE,IAAAA;EHnDC;;;EGwDDC,IAAAA,GAAOZ,MAAAA;EHxCgB;;;;;;EGgDvBa,QAAAA,GAAWR,QAAAA;AAAAA;;;;;AHnGf;;;;;AACA;;;;;AAEA;;;;;;;UIgBiBW,IAAAA,SAAaC,MAAAA;;AJX9B;;UIgBiBO,UAAAA;EAAAA,CACZE,YAAAA,0DAAsED,KAAAA;AAAAA;AAAAA;;;;;;;KAW/DE,cAAAA,GAAiBC,iBAAAA,OAAwBA,iBAAAA;;;;;;UAOpCA,iBAAAA;EACbI,OAAAA,EAASH,OAAAA;EACTI,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;AJpBV;;;;;AAGA;AAHA,KI6BYI,WAAAA,GAAcC,cAAAA,OAAqBA,cAAAA;;;;;;;;;UAU9BA,cAAAA;EACbJ,OAAAA,EAASH,OAAAA;EACTS,OAAAA,EAASD,OAAAA;EACTJ,OAAAA,EAASH,OAAAA;EACTI,IAAAA,EAAMH,IAAAA;AAAAA;AAAAA;;;;;AH7DV;;;;;;;;;UGmHiBX,IAAAA,SAAaC,MAAAA;EHnHoE;;;EGuH9FwB,IAAAA,GAAO7B,IAAAA;AAAAA;;;;;;;;UAUME,OAAAA,SAAgBE,IAAAA;EH/HX;;AAStB;EG0HI0B,KAAAA;AAAAA;;;;;;;;UAUaxB,MAAAA,SAAeF,IAAAA;EHpIV;;;EGwIlB2B,QAAAA,EAAUZ,WAAAA;AAAAA;AAAAA;;;;UAQGN,OAAAA,SAAgBX,OAAAA;EH9IX;;AAStB;EGyII+B,IAAAA;EHzImB;;;EG6InBJ,IAAAA,GAAOG,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBhC,IAAAA;;;;UAKpBqB,OAAAA,SAAgBhB,MAAAA;EHxJ8C;;;EG4J3E4B,IAAAA;EH1JM;;;EG8JNJ,IAAAA,GAAOK,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBlC,IAAAA;;;;UAKpBc,OAAAA,SAAgBR,MAAAA;EH9JrB;;;EGkKR2B,IAAAA;EHjK2B;;;EGqK3BG,OAAAA;EHxKyD;;;EG4KzDC,UAAAA,EAAY7B,UAAAA;EH3Kd;;;EG+KEuB,QAAAA,EAAUpB,cAAAA;EH/KU;;;;EGoLpB2B,OAAAA,GAAUX,IAAAA;EHlLwB;;;EGsLlCE,IAAAA,GAAOM,WAAAA;AAAAA;;;;UAMMA,WAAAA,SAAoBnC,IAAAA;;;;;;;;UASpB2B,IAAAA,SAAarB,MAAAA;EH3LL;;;EG+LrB2B,IAAAA;EH/LkE;;;EGmMlEF,QAAAA,EAAUZ,WAAAA;EHlMJ;;;EGsMNU,IAAAA,GAAOU,QAAAA;AAAAA;;;;UAMMA,QAAAA,SAAiBvC,IAAAA;;AHxMtB;;UG6MKe,IAAAA,SAAab,OAAAA;EHxML;;;EG4MrB+B,IAAAA;EH3MsE;;;EG+MtEJ,IAAAA,GAAOW,QAAAA;AAAAA;;;;UAMMA,QAAAA,SAAiBxC,IAAAA;;;;;;AJtRlC;;;cKSa,UAAA,EAAY,MAAA,KAAW,IAAA;AAAA,KAQxB,GAAA,GAAM,QAAA;AAAA,KACN,QAAA;EAAa,KAAA;EAAe,EAAA;EAAY,KAAA;AAAA;ALfpD;;;AAAA,iBKmCgB,QAAA,CAAS,GAAA,WAAc,OAAA;;;;;;;;ALtCvC;;;;;AACA;KMOY,YAAA,uBACE,CAAA,GAAI,CAAA,eAAgB,CAAA,GAC5B,CAAA,CAAE,CAAA,qBACA,EAAA,SAAW,MAAA,gBACT,CAAA,CAAE,CAAA,UAAW,MAAA,gBACX,YAAA,CAAa,CAAA,CAAE,CAAA,GAAI,EAAA,IACnB,EAAA,GACF,EAAA,SAAW,KAAA,aACT,CAAA,CAAE,CAAA,UAAW,KAAA,aACX,KAAA,CAAM,YAAA,CAAa,EAAA,EAAI,EAAA,KACvB,EAAA,GACF,EAAA,WAEN,CAAA,CAAE,CAAA;AAAA,KAIH,SAAA,oEAA6E,IAAA,GAAO,MAAA,GAAS,QAAA;AAAA,KAEtF,WAAA,MAAiB,CAAA,SAAU,SAAA,GACnC,CAAA,GACA,CAAA,yCACW,CAAA,KACT,CAAA,gCACgB,CAAA,IAAK,WAAA,CAAY,CAAA,CAAE,CAAA,OACjC,CAAA;AAAA,KAEI,YAAA,oBAEE,CAAA,KAAM,WAAA,CAAY,CAAA,CAAE,CAAA,oBAAqB,CAAA,CAAE,CAAA,UAAW,QAAA,GAAW,CAAA,CAAE,CAAA,IAAK,YAAA,CAAa,CAAA,CAAE,CAAA,MAAO,CAAA,CAAE,CAAA;;;;KAMlG,YAAA,MAAkB,CAAA,cAAc,IAAA,iBACxC,CAAA,GACA,CAAA,yCACyB,CAAA,GAAI,YAAA,CAAa,CAAA,CAAE,CAAA,OAC1C,CAAA;;;KClDM,QAAA,2BAAmC,CAAA,eAAgB,IAAA,CAAK,CAAA,EAAG,CAAA;;;iBCEvD,QAAA,CAAS,CAAA,YAAa,CAAA,IAAK,aAAA;AAAA,iBAI3B,MAAA,CAAO,MAAA,EAAQ,aAAA,GAAgB,aAAA;AAAA,KAmBnC,sBAAA;;ARtBZ;;;EQ2BE,YAAA;AAAA;AAAA,iBAGc,eAAA,CACd,IAAA,EAAM,aAAA,GAAgB,kBAAA,EACtB,IAAA,UACA,IAAA,GAAM,sBAAA,GACL,aAAA;;;;;;;ARlCH;;;iBSQgB,SAAA,kBAAA,CAA4B,GAAA,EAAK,CAAA,EAAG,IAAA,UAAc,KAAA,QAAa,CAAA;;ATP/E;;;;;iBSiCgB,SAAA,kBAAA,CAA4B,GAAA,EAAK,CAAA,EAAG,IAAA;;;;;;;;;;AT1BpD;;;;;;;;;;;cS6Da,QAAA,uCAA8C,CAAA,EAAK,CAAA,EAAC,CAAA,EAAK,CAAA,KAAI,WAAA,CAAY,CAAA;;;ATrDtF;;;;;;;;;;;;;AAUA;;;;;AAGA;;;iBSuFgB,YAAA,OAAA,CAAoB,MAAA,EAAQ,CAAA,EAAG,KAAA,EAAO,EAAA,GAAK,EAAA"}
1
+ {"version":3,"file":"browser.d.ts","names":["line","column","offset","start","Point","end","Node","value","type","data","Data","position","Position","children","UnistData","PropertyName","Array","ElementContentMap","comment","Comment","element","Element","text","Text","RootContentMap","doctype","Doctype","RootContent","Extract","Nodes","UnistLiteral","Root","UnistParent","UnistNode","data","Data","Node","value","children","Literal","type","CommentData","DoctypeData","Parent","tagName","properties","Properties","ElementContent","content","ElementData","RootData","TextData"],"sources":["../src/lambda/handlerUtils.ts","../src/lambda/client-types.ts","../src/lambda/client.ts","../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../src/rehype/flat-toc.ts","../src/types/deep.ts","../src/types/safe.ts","../src/utils/valibot.ts","../src/utils/object.ts"],"x_google_ignoreList":[3,4],"mappings":"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"}
package/dist/browser.js CHANGED
@@ -51,15 +51,16 @@ async function _apiRequest(path, method, input, schema, environment, apiUrl, hea
51
51
  };
52
52
  return response;
53
53
  }
54
+ function endpointKey(endpoint) {
55
+ return `${endpoint.method} ${endpoint.path}`;
56
+ }
54
57
  /**
55
58
  * @returns A function that can be used to make API requests with type safety
56
59
  * @example const clientApiRequest = createApiRequest<ApiEndpoints>();
57
60
  */
58
- function createApiRequest(schemas, apiUrl, env) {
59
- return async function apiRequest(path, method, input, headers) {
60
- const schema = schemas[path]?.[method];
61
- if (schema === void 0) throw new Error("Schema is undefined in api request");
62
- return _apiRequest(path, method, input, schema, env, apiUrl, headers);
61
+ function createApiRequest(apiUrl, env) {
62
+ return async function apiRequest(endpoint, input, headers) {
63
+ return _apiRequest(endpoint.path, endpoint.method, input, endpoint.schema, env, apiUrl, headers);
63
64
  };
64
65
  }
65
66
  //#endregion
@@ -358,6 +359,6 @@ function pruneToShape(source, shape) {
358
359
  }
359
360
  }
360
361
  //#endregion
361
- export { HTTPMethods, createApiRequest, deepDiff, extractToc, getByPath, getSchemaByPath, isSchema, parseRaw, pruneToShape, setByPath, unwrap, wrapHandler };
362
+ export { HTTPMethods, createApiRequest, deepDiff, endpointKey, extractToc, getByPath, getSchemaByPath, isSchema, parseRaw, pruneToShape, setByPath, unwrap, wrapHandler };
362
363
 
363
364
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","names":[],"sources":["../src/lambda/client-types.ts","../src/lambda/client.ts","../src/lambda/handlerUtils.ts","../src/rehype/flat-toc.ts","../src/utils/valibot.ts","../src/utils/object.ts"],"sourcesContent":["import type { ErrorBody, SuccessCode, ErrorCode } from './handlerUtils.js';\n\n// ----------------- Helpers ----------------------\n// Used to easily extract types from ApiEndpoints types\n\n/**\n * Extracts the requestInput type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiInput<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['requestInput'];\n\n/**\n * Extracts the requestOutput type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiOutput<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['requestOutput'];\n\n/**\n * Extracts the response type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiResponse<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['response'];\n\n/**\n * Extracts the sucessful body type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiSuccessBody<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n Extract<E, { path: P; method: M }>['response'],\n { status: SuccessCode }\n>['json'] extends () => Promise<infer R>\n ? R\n : unknown;\n\n/**\n * Extracts the sucessful body type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiErrorBody<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n Extract<E, { path: P; method: M }>['response'],\n { status: ErrorCode }\n>['json'] extends () => Promise<infer R>\n ? R\n : unknown;\n\n/**\n * Converts a RawApiGatewayHandler response type to a fetch like response type.\n */\ntype ConvertToFetch<T> = T extends { statusCode: number; body: object; headers: object }\n ? { ok: T['statusCode'] extends SuccessCode ? true : false; json: () => Promise<T['body']>; status: T['statusCode'] }\n : T;\n\nexport type CleanResponse = Omit<Response, 'status' | 'ok' | 'json'>;\nexport type FetchResponse<T extends (...args: any) => any> = ConvertToFetch<Awaited<ReturnType<T>>> & CleanResponse;\n\n// ------------------------ Proper types ------------------\n// This is used by createApiRequest and createFormFunction\n\nexport const HTTPMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'] as const;\nexport type HTTPMethod = (typeof HTTPMethods)[number];\n\nexport type ApiEndpoints = {\n path: string;\n method: HTTPMethod;\n requestInput: Record<string, any> | null;\n requestOutput: object | null;\n response: FetchResponse<\n // This means we get better types\n () => Promise<\n | { headers: object; statusCode: SuccessCode; body: any }\n | { headers: object; statusCode: ErrorCode; body: ErrorBody }\n >\n >;\n};\n","// import { deserialize } from './deserializer.js';\nimport { parse } from 'devalue';\nimport { parse as vParse, parseAsync, type GenericSchema, type GenericSchemaAsync } from 'valibot';\n\nimport type { ApiEndpoints, ApiInput, ApiResponse } from './client-types.js';\n\nconst bodyMethods = ['POST', 'PUT', 'PATCH'] as const;\nconst queryMethods = ['GET', 'DELETE'] as const;\n\nasync function _apiRequest<T = Response>(\n path: string,\n method: 'GET' | 'POST' | 'DELETE',\n input: object | null,\n schema: ApiSchema,\n // This was here because of the deserializer being different in prod\n environment: string | 'production',\n apiUrl: string,\n headers?: HeadersInit\n): Promise<T> {\n if (schema) {\n if (schema.async === true) await parseAsync(schema, input);\n else vParse(schema, input);\n }\n\n let url = `${apiUrl}${apiUrl.endsWith('/') ? '' : '/'}${path}`;\n\n if (queryMethods.includes(method as any)) {\n const params = new URLSearchParams();\n\n for (const [key, value] of Object.entries(input ?? {})) {\n if (Array.isArray(value)) {\n value.forEach((item) => params.append(key, String(item)));\n } else {\n params.append(key, String(value));\n }\n }\n\n const queryString = params.toString();\n if (queryString) url += `?${queryString}`;\n }\n\n headers = { 'Content-Type': 'application/json', ...headers };\n const response = await fetch(url, {\n method,\n headers,\n // oxlint-disable-next-line\n body: bodyMethods.includes(method as any) ? JSON.stringify(input) : undefined,\n credentials: 'include'\n });\n const contentType = response.headers.get('content-type') ?? '';\n\n let retrieved: Promise<string> | false = false;\n response.json = async () => {\n if (retrieved === false) {\n retrieved = response.text();\n }\n\n if (contentType === 'application/devalue') {\n return await parse(await retrieved);\n } else {\n return JSON.parse(await retrieved);\n }\n };\n return response as unknown as T;\n}\n\nconst HTTPMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'] as const;\ntype HTTPMethod = (typeof HTTPMethods)[number];\n\nexport type ApiRequestFunction<API extends ApiEndpoints> = <\n Path extends API['path'],\n Method extends Extract<API, { path: Path }>['method']\n>(\n path: Path,\n method: Method,\n input: ApiInput<API, Path, Method>,\n headers?: HeadersInit\n) => Promise<ApiResponse<API, Path, Method>>;\n\nexport type ApiSchema = GenericSchema | GenericSchemaAsync;\n\n/**\n * @returns A function that can be used to make API requests with type safety\n * @example const clientApiRequest = createApiRequest<ApiEndpoints>();\n */\nexport function createApiRequest<API extends ApiEndpoints>(\n schemas: Partial<Record<API['path'], Partial<Record<HTTPMethod, ApiSchema>>>>,\n apiUrl: string,\n env: string\n): ApiRequestFunction<API> {\n return async function apiRequest(path, method, input, headers) {\n const schema = schemas[path]?.[method];\n if (schema === undefined) throw new Error('Schema is undefined in api request');\n\n // if (typeof schema === 'function') {\n // schema = schema();\n // }\n\n return _apiRequest<ApiResponse<API, typeof path, typeof method>>(\n path as string,\n method as 'GET' | 'POST',\n input,\n schema,\n env,\n apiUrl,\n headers\n );\n };\n}\n","import type { APIGatewayProxyResultV2, Context, APIGatewayProxyEventV2WithLambdaAuthorizer } from 'aws-lambda';\nimport { stringify } from 'devalue';\n\nexport type SuccessCode = 200 | 201 | 204;\nexport type ErrorCode = 400 | 401 | 403 | 404 | 409 | 500;\n\nexport type ErrorBody = { message: string; field?: { name: string; value: string } };\n\n/**\n * The error response for the lambda functions to return\n */\nexport type ErrorRawProxyResultV2 = {\n statusCode: ErrorCode;\n headers?: { [header: string]: string } | undefined;\n body?: ErrorBody;\n isBase64Encoded?: boolean | undefined;\n cookies?: string[] | undefined;\n};\n\nexport type OkRawProxyResultV2 = {\n statusCode: SuccessCode;\n headers?: { [header: string]: string } | undefined;\n body?: object | undefined;\n isBase64Encoded?: boolean | undefined;\n cookies?: string[] | undefined;\n};\n/**\n * A type for the raw proxy result - just using an object not a stirng for the body\n */\nexport type RawProxyResultV2 = ErrorRawProxyResultV2 | OkRawProxyResultV2;\n\n// The type of the handler returned from wrapHandler\nexport type APIGatewayHandler<E> = (event: E, context: Context) => Promise<APIGatewayProxyResultV2>;\n\n// The type of the handler passed into wrapHandler\nexport type RawApiGatewayHandler<E extends APIGatewayProxyEventV2WithLambdaAuthorizer<any>> = (\n event: E,\n context: Context\n) => Promise<RawProxyResultV2>;\n\n/**\n * Wraps a handler that returns the body as an object rather than a string.\n *\n * This means you can achieve proper type inference on your handler and have standardised serialisation\n *\n * @example\n```ts\nexport type AuthorizerContext = {\n details: JWTPayload;\n} | null;\n\nexport const wrapHandler = baseWrapHandler<APIGatewayProxyEventV2WithLambdaAuthorizer<AuthorizerContext>>\n\n*/\nexport function wrapHandler<E extends APIGatewayProxyEventV2WithLambdaAuthorizer<any>>(\n handler: RawApiGatewayHandler<E>\n): APIGatewayHandler<E> {\n return async (event: E, context: Context): Promise<APIGatewayProxyResultV2> => {\n const result = await handler(event, context);\n\n if (result.body) {\n const headers = new Headers(result.headers);\n headers.set('Content-Type', 'application/devalue');\n\n return { ...result, headers: Object.fromEntries(headers), body: stringify(result.body) };\n } else {\n return { ...result, body: undefined };\n }\n };\n}\n","import type { Root, RootContent, Element } from 'hast';\nimport rehypeParse from 'rehype-parse';\nimport type { Plugin } from 'unified';\nimport { unified } from 'unified';\nimport type { VFile } from 'vfile';\n\n/**\n * This rehype plugin extracts the headings from the markdown elements but also the raw elements.\n * So we get html headings in the TOC as well\n *\n * It sets the file.data.fm.toc to a flat map of the toc\n */\nexport const extractToc: Plugin<[], Root> = () => {\n return (tree: Root, file: VFile) => {\n const details = tree.children.flatMap(extractDetails);\n if (file.data.fm === undefined) file.data.fm = {};\n // @ts-expect-error its untyped but for svmdex it is there\n file.data.fm.toc = details;\n };\n};\nexport type Toc = TocEntry[];\nexport type TocEntry = { level: number; id: string; value: string };\n\nfunction extractDetails(content: RootContent | { type: 'raw'; value: string }): TocEntry[] {\n if (content.type === 'element' && content.tagName.startsWith('h') && 'id' in content.properties) {\n const value =\n content.children.length === 1 && content.children[0].type === 'text'\n ? content.children[0].value\n : (content.properties.id as string);\n\n return [{ level: parseInt(content.tagName.slice(1)), id: content.properties.id as string, value }];\n } else if (content.type === 'raw') {\n const parsed = parseRaw(content.value);\n return parsed.flatMap(extractDetails);\n }\n return [];\n}\n\n/**\n * Parses raw HTML and returns a flat array of all heading (h1-h6) elements as HAST nodes.\n */\nexport function parseRaw(raw: string): Element[] {\n // Parse the HTML string into a HAST Root node\n const tree = unified()\n .use(rehypeParse, { fragment: true }) // allow parsing HTML fragments\n .parse(raw) as Root;\n\n // Helper function to recursively find heading elements\n function collectHeadings(node: RootContent): Element[] {\n if (node.type === 'element' && /^h[1-6]$/.test(node.tagName)) {\n return [node];\n }\n // Check children recursively\n if ('children' in node && Array.isArray(node.children)) {\n return node.children.flatMap(collectHeadings);\n }\n return [];\n }\n\n // Flatten all headings found in the tree\n return tree.children.flatMap(collectHeadings);\n}\n","import type { GenericSchema, GenericSchemaAsync } from 'valibot';\n\nexport function isSchema(x: unknown): x is GenericSchema {\n return !!x && typeof x === 'object' && 'kind' in x && x['kind'] === 'schema';\n}\n\nexport function unwrap(schema: GenericSchema): GenericSchema {\n // Unwrap common wrappers that simply contain another schema under `wrapped`\n // optional | exactOptional | undefinedable | nullable | nullish | nonNullable | nonNullish | readonly | brand | description | metadata | title | flavor\n // Most of these share `{ type: string; wrapped: GenericSchema }`\n // Guarded unwrap to avoid infinite loops.\n let curr: any = schema as any;\n const seen = new Set<any>();\n while (curr && typeof curr === 'object' && !seen.has(curr) && 'wrapped' in curr && isSchema((curr as any).wrapped)) {\n seen.add(curr);\n curr = (curr as any).wrapped;\n }\n return curr as GenericSchema;\n}\n\nfunction isIntegerKey(s: string): boolean {\n // allow \"0\", \"01\" etc. to index tuples/arrays consistently\n return /^-?\\d+$/.test(s);\n}\n\nexport type GetSchemaByPathOptions = {\n /**\n * When a union/variant cannot be narrowed by the path segment,\n * choose index `preferOption` (default 0). Set to -1 to return undefined instead.\n */\n preferOption?: number;\n};\n\nexport function getSchemaByPath(\n root: GenericSchema | GenericSchemaAsync,\n path: string,\n opts: GetSchemaByPathOptions = {}\n): GenericSchema | undefined {\n if (!isSchema(root)) return undefined;\n if (!path) return root;\n\n const keys = path.split('.');\n let curr: GenericSchema | undefined = root;\n\n for (let i = 0; i < keys.length; i++) {\n if (!curr) return undefined;\n curr = unwrap(curr);\n const seg = keys[i];\n\n // Narrow by schema \"type\"\n const type = (curr as any).type as string | undefined;\n\n switch (type) {\n case 'object': {\n // ObjectSchema has `.entries`\n const entries = (curr as any).entries as Record<string, GenericSchema> | undefined;\n if (!entries) return undefined;\n curr = entries[seg];\n break;\n }\n\n case 'record': {\n // RecordSchema has `.value` for any key\n const value = (curr as any).value as GenericSchema | undefined;\n curr = value;\n break;\n }\n\n case 'array': {\n // ArraySchema has `.item`\n if (!isIntegerKey(seg)) return undefined;\n const item = (curr as any).item as GenericSchema | undefined;\n curr = item;\n break;\n }\n\n case 'tuple': {\n // TupleSchema has `.items` and possibly `.rest`\n if (!isIntegerKey(seg)) return undefined;\n const idx = Number(seg);\n const items = (curr as any).items as GenericSchema[] | undefined;\n const rest = (curr as any).rest as GenericSchema | undefined;\n if (!items) return undefined;\n curr = idx < items.length ? items[idx] : rest;\n break;\n }\n\n case 'union': {\n // UnionSchema has `.options` (array of schemas)\n const options = (curr as any).options as GenericSchema[] | undefined;\n if (!options?.length) return undefined;\n\n // Try to narrow by segment:\n // - if numeric seg: prefer array/tuple options\n // - if string seg: prefer object/record options that contain seg\n const numeric = isIntegerKey(seg);\n\n let next: GenericSchema | undefined;\n\n if (numeric) {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n return u?.type === 'array' || u?.type === 'tuple';\n }) ?? options[opts.preferOption ?? 0];\n } else {\n // Prefer object/record with matching key\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n if (u?.type === 'object') {\n const ent = u.entries as Record<string, GenericSchema> | undefined;\n return !!ent && seg in ent;\n }\n return u?.type === 'record';\n }) ?? options[opts.preferOption ?? 0];\n }\n\n curr = next;\n // Loop continues to use seg against selected option\n i--; // reprocess this segment against the chosen branch\n break;\n }\n\n case 'variant': {\n // Variant (discriminated union) has `.options` too\n const options = (curr as any).options as GenericSchema[] | undefined;\n if (!options?.length) return undefined;\n // Same narrowing as union\n const numeric = isIntegerKey(seg);\n let next: GenericSchema | undefined;\n if (numeric) {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n return u?.type === 'array' || u?.type === 'tuple';\n }) ?? options[opts.preferOption ?? 0];\n } else {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n if (u?.type === 'object') {\n const ent = u.entries as Record<string, GenericSchema> | undefined;\n return !!ent && seg in ent;\n }\n return u?.type === 'record';\n }) ?? options[opts.preferOption ?? 0];\n }\n curr = next;\n i--;\n break;\n }\n\n default: {\n // If it’s a pipeline schema (`pipe`) or similar wrapper, many expose `.wrapped` and are handled by unwrap.\n // If we end up at a primitive or unknown structure while keys remain, fail.\n return undefined;\n }\n }\n }\n\n return curr ? unwrap(curr) : undefined;\n}\n","import { isEqual, isObject } from 'radash';\n\nimport type { DeepPartial } from '../types/deep.js';\n\n/**\n * Sets the value for an object by its dot path\n * @param obj - any object\n * @param path - the dot path eg. key1.0.1.key2\n * @param value - any value\n * @returns - the modified object\n */\nexport function setByPath<T extends object>(obj: T, path: string, value: any): T {\n const keys = path.split('.');\n let curr: any = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i];\n const next = keys[i + 1];\n // handle array indices like '0'\n if (Number.isInteger(Number(next))) {\n curr[k] ??= [];\n } else {\n curr[k] ??= {};\n }\n curr = curr[k];\n }\n\n curr[keys[keys.length - 1]] = value;\n return obj;\n}\n\n/**\n * Gets the value from an object by its dot path\n * @param obj - any object\n * @param path - the dot path eg. key1.0.1.key2\n * @returns - the value at the given path or undefined\n */\nexport function getByPath<T extends object>(obj: T, path: string): any {\n if (!obj || typeof obj !== 'object') return undefined;\n const keys = path.split('.');\n let curr: any = obj;\n\n for (const k of keys) {\n if (curr == null) return undefined;\n curr = curr[k];\n }\n\n return curr;\n}\n\nconst isPlainRecord = (v: unknown): v is Record<string, unknown> => isObject(v) && !Array.isArray(v);\n\n/**\n * Returns a deep \"patch\" object containing only the fields from `b`\n * that are different from `a`.\n *\n * Behavior:\n * - Only keys from `b` can appear in the result.\n * - New keys in `b` are included.\n * - Changed primitive/array values are included as the value from `b`.\n * - For nested plain objects, it recurses and returns only the differing nested fields.\n * - Arrays are treated as atomic (if different, the whole array from `b` is returned).\n *\n * Typing:\n * - Output is `DeepPartial<B>` because only a subset of `b`'s shape is returned.\n *\n * @template A\n * @template B\n * @param {A} a - Base/original object (can be a different shape than `b`).\n * @param {B} b - Updated object; output keys come from this object.\n * @returns {DeepPartial<B>} Deep partial of `b` containing only differences vs `a`.\n */\nexport const deepDiff = <A extends object, B extends object>(a: A, b: B): DeepPartial<B> => {\n const out: Record<string, unknown> = {};\n\n for (const key of Object.keys(b) as Array<keyof B>) {\n const aVal = (a as any)?.[key];\n const bVal = (b as any)[key];\n\n if (!((key as any) in (a as any))) {\n out[key as any] = bVal;\n continue;\n }\n\n if (isPlainRecord(aVal) && isPlainRecord(bVal)) {\n const nested = deepDiff(aVal, bVal);\n if (Object.keys(nested as any).length) out[key as any] = nested;\n continue;\n }\n\n if (!isEqual(aVal, bVal)) out[key as any] = bVal;\n }\n\n return out as DeepPartial<B>;\n};\n\n/**\n * Deeply prunes `source` to match the *shape* of `shape`.\n *\n * Rules:\n * - Only keys that exist on `shape` are kept.\n * - Pruning is deep for nested plain objects.\n * - Arrays are supported by using the first element of `shape` as the element-shape.\n * - If `shape` is `[]`, returns `[]` (drops all elements).\n * - Primitive values are kept as-is (no type coercion) if the key exists in `shape`.\n * - If `shape` expects an object/array but `source` is not compatible, returns an empty object/array of that shape.\n *\n * @typeParam S - Source object type.\n * @typeParam Sh - Shape object type.\n * @param source - The object to prune.\n * @param shape - The object whose keys/structure are the allowlist.\n * @returns A new value derived from `source`, containing only fields present in `shape`, pruned deeply.\n *\n * @example\n * const source = { a: 1, b: { c: 2, d: 3 }, e: [ { x: 1, y: 2 }, { x: 3, y: 4 } ], z: 9 };\n * const shape = { a: 0, b: { c: 0 }, e: [ { x: 0 } ] };\n * // => { a: 1, b: { c: 2 }, e: [ { x: 1 }, { x: 3 } ] }\n * const out = pruneToShape(source, shape);\n */\nexport function pruneToShape<S, Sh>(source: S, shape: Sh): Sh {\n return pruneAny(source as unknown, shape as unknown) as Sh;\n\n function pruneAny(src: unknown, sh: unknown): unknown {\n // Arrays: use first element as the \"element shape\"\n if (Array.isArray(sh)) {\n if (!Array.isArray(src)) return [];\n if (sh.length === 0) return [];\n const elemShape = sh[0];\n return src.map((v) => pruneAny(v, elemShape));\n }\n\n // Plain objects: keep only keys present on shape, recursively.\n if (isPlainObject(sh)) {\n const out: Record<string, unknown> = {};\n const srcObj = isPlainObject(src) ? (src as Record<string, unknown>) : undefined;\n\n for (const key of Object.keys(sh as Record<string, unknown>)) {\n const shVal = (sh as Record<string, unknown>)[key];\n const srcVal = srcObj ? srcObj[key] : undefined;\n\n if (Array.isArray(shVal) || isPlainObject(shVal)) {\n out[key] = pruneAny(srcVal, shVal);\n } else {\n // Primitive (or function/date/etc in shape): key exists => keep source value as-is\n out[key] = srcVal;\n }\n }\n return out;\n }\n\n // Non-object shape => allowed leaf; just return source leaf as-is.\n return src;\n }\n\n function isPlainObject(v: unknown): v is Record<string, unknown> {\n if (v === null || typeof v !== 'object') return false;\n const proto = Object.getPrototypeOf(v);\n return proto === Object.prototype || proto === null;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","names":[],"sources":["../src/lambda/client-types.ts","../src/lambda/client.ts","../src/lambda/handlerUtils.ts","../src/rehype/flat-toc.ts","../src/utils/valibot.ts","../src/utils/object.ts"],"sourcesContent":["import type { ErrorBody, SuccessCode, ErrorCode } from './handlerUtils.js';\n\n// ----------------- Helpers ----------------------\n// Used to easily extract types from ApiEndpoints types\n\n/**\n * Extracts the requestInput type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiInput<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['requestInput'];\n\n/**\n * Extracts the requestOutput type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiOutput<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['requestOutput'];\n\n/**\n * Extracts the response type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiResponse<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n E,\n { path: P; method: M }\n>['response'];\n\n/**\n * Extracts the sucessful body type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiSuccessBody<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n Extract<E, { path: P; method: M }>['response'],\n { status: SuccessCode }\n>['json'] extends () => Promise<infer R>\n ? R\n : unknown;\n\n/**\n * Extracts the sucessful body type from an API endpoint definition\n * @template E - Union type of all API endpoints\n * @template P - Path string literal type (e.g. 'payments/account')\n * @template M - HTTP method string literal type (e.g. 'GET', 'POST')\n */\nexport type ApiErrorBody<E extends ApiEndpoints, P extends E['path'], M extends E['method']> = Extract<\n Extract<E, { path: P; method: M }>['response'],\n { status: ErrorCode }\n>['json'] extends () => Promise<infer R>\n ? R\n : unknown;\n\n/**\n * Converts a RawApiGatewayHandler response type to a fetch like response type.\n */\ntype ConvertToFetch<T> = T extends { statusCode: number; body?: infer Body; headers?: object }\n ? { ok: T['statusCode'] extends SuccessCode ? true : false; json: () => Promise<Body>; status: T['statusCode'] }\n : T;\n\nexport type CleanResponse = Omit<Response, 'status' | 'ok' | 'json'>;\nexport type FetchResponse<T extends (...args: any) => any> = ConvertToFetch<Awaited<ReturnType<T>>> & CleanResponse;\n\n// ------------------------ Proper types ------------------\n// This is used by createApiRequest and createFormFunction\n\nexport const HTTPMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'] as const;\nexport type HTTPMethod = (typeof HTTPMethods)[number];\n\nexport type ApiEndpoints = {\n path: string;\n method: HTTPMethod;\n requestInput: any;\n requestOutput: any;\n response: FetchResponse<\n // This means we get better types\n () => Promise<\n | { headers: object; statusCode: SuccessCode; body: any }\n | { headers: object; statusCode: ErrorCode; body: ErrorBody }\n >\n >;\n};\n","// import { deserialize } from './deserializer.js';\nimport { parse } from 'devalue';\nimport { parse as vParse, parseAsync, type GenericSchema, type GenericSchemaAsync } from 'valibot';\n\nimport type { ApiEndpoints, ApiInput, ApiResponse } from './client-types.js';\n\nconst bodyMethods = ['POST', 'PUT', 'PATCH'] as const;\nconst queryMethods = ['GET', 'DELETE'] as const;\n\nasync function _apiRequest<T = Response>(\n path: string,\n method: HTTPMethod,\n input: object | null,\n schema: ApiSchema,\n // This was here because of the deserializer being different in prod\n environment: string | 'production',\n apiUrl: string,\n headers?: HeadersInit\n): Promise<T> {\n if (schema) {\n if (schema.async === true) await parseAsync(schema, input);\n else vParse(schema, input);\n }\n\n let url = `${apiUrl}${apiUrl.endsWith('/') ? '' : '/'}${path}`;\n\n if (queryMethods.includes(method as any)) {\n const params = new URLSearchParams();\n\n for (const [key, value] of Object.entries(input ?? {})) {\n if (Array.isArray(value)) {\n value.forEach((item) => params.append(key, String(item)));\n } else {\n params.append(key, String(value));\n }\n }\n\n const queryString = params.toString();\n if (queryString) url += `?${queryString}`;\n }\n\n headers = { 'Content-Type': 'application/json', ...headers };\n const response = await fetch(url, {\n method,\n headers,\n // oxlint-disable-next-line\n body: bodyMethods.includes(method as any) ? JSON.stringify(input) : undefined,\n credentials: 'include'\n });\n const contentType = response.headers.get('content-type') ?? '';\n\n let retrieved: Promise<string> | false = false;\n response.json = async () => {\n if (retrieved === false) {\n retrieved = response.text();\n }\n\n if (contentType === 'application/devalue') {\n return await parse(await retrieved);\n } else {\n return JSON.parse(await retrieved);\n }\n };\n return response as unknown as T;\n}\n\nconst HTTPMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'] as const;\ntype HTTPMethod = (typeof HTTPMethods)[number];\n\nexport type ApiRequestFunction<API extends ApiEndpoints> = <\n Path extends API['path'],\n Method extends Extract<API, { path: Path }>['method']\n>(\n endpoint: ApiEndpointContract<API, Path, Method>,\n input: ApiInput<API, Path, Method>,\n headers?: HeadersInit\n) => Promise<ApiResponse<API, Path, Method>>;\n\nexport type ApiSchema = GenericSchema | GenericSchemaAsync;\n\nexport type ApiEndpointContract<\n API extends ApiEndpoints,\n Path extends API['path'],\n Method extends Extract<API, { path: Path }>['method']\n> = { path: Path; method: Method; schema: ApiSchema };\n\nexport type AnyApiEndpointContract<API extends ApiEndpoints> = {\n [Path in API['path']]: {\n [Method in Extract<API, { path: Path }>['method']]: ApiEndpointContract<API, Path, Method>;\n }[Extract<API, { path: Path }>['method']];\n}[API['path']];\n\nexport function endpointKey(endpoint: { path: string; method: string }) {\n return `${endpoint.method} ${endpoint.path}`;\n}\n\n/**\n * @returns A function that can be used to make API requests with type safety\n * @example const clientApiRequest = createApiRequest<ApiEndpoints>();\n */\nexport function createApiRequest<API extends ApiEndpoints>(apiUrl: string, env: string): ApiRequestFunction<API> {\n return async function apiRequest(endpoint, input, headers) {\n return _apiRequest<ApiResponse<API, typeof endpoint.path, typeof endpoint.method>>(\n endpoint.path,\n endpoint.method,\n input,\n endpoint.schema,\n env,\n apiUrl,\n headers\n );\n };\n}\n","import type { APIGatewayProxyResultV2, Context, APIGatewayProxyEventV2WithLambdaAuthorizer } from 'aws-lambda';\nimport { stringify } from 'devalue';\n\nexport type SuccessCode = 200 | 201 | 204;\nexport type ErrorCode = 400 | 401 | 403 | 404 | 409 | 500;\n\nexport type ErrorBody = { message: string; field?: { name: string; value: string } };\n\n/**\n * The error response for the lambda functions to return\n */\nexport type ErrorRawProxyResultV2 = {\n statusCode: ErrorCode;\n headers?: { [header: string]: string } | undefined;\n body?: ErrorBody;\n isBase64Encoded?: boolean | undefined;\n cookies?: string[] | undefined;\n};\n\nexport type OkRawProxyResultV2 = {\n statusCode: SuccessCode;\n headers?: { [header: string]: string } | undefined;\n body?: object | undefined;\n isBase64Encoded?: boolean | undefined;\n cookies?: string[] | undefined;\n};\n/**\n * A type for the raw proxy result - just using an object not a stirng for the body\n */\nexport type RawProxyResultV2 = ErrorRawProxyResultV2 | OkRawProxyResultV2;\n\n// The type of the handler returned from wrapHandler\nexport type APIGatewayHandler<E> = (event: E, context: Context) => Promise<APIGatewayProxyResultV2>;\n\n// The type of the handler passed into wrapHandler\nexport type RawApiGatewayHandler<E extends APIGatewayProxyEventV2WithLambdaAuthorizer<any>> = (\n event: E,\n context: Context\n) => Promise<RawProxyResultV2>;\n\n/**\n * Wraps a handler that returns the body as an object rather than a string.\n *\n * This means you can achieve proper type inference on your handler and have standardised serialisation\n *\n * @example\n```ts\nexport type AuthorizerContext = {\n details: JWTPayload;\n} | null;\n\nexport const wrapHandler = baseWrapHandler<APIGatewayProxyEventV2WithLambdaAuthorizer<AuthorizerContext>>\n\n*/\nexport function wrapHandler<E extends APIGatewayProxyEventV2WithLambdaAuthorizer<any>>(\n handler: RawApiGatewayHandler<E>\n): APIGatewayHandler<E> {\n return async (event: E, context: Context): Promise<APIGatewayProxyResultV2> => {\n const result = await handler(event, context);\n\n if (result.body) {\n const headers = new Headers(result.headers);\n headers.set('Content-Type', 'application/devalue');\n\n return { ...result, headers: Object.fromEntries(headers), body: stringify(result.body) };\n } else {\n return { ...result, body: undefined };\n }\n };\n}\n","import type { Root, RootContent, Element } from 'hast';\nimport rehypeParse from 'rehype-parse';\nimport type { Plugin } from 'unified';\nimport { unified } from 'unified';\nimport type { VFile } from 'vfile';\n\n/**\n * This rehype plugin extracts the headings from the markdown elements but also the raw elements.\n * So we get html headings in the TOC as well\n *\n * It sets the file.data.fm.toc to a flat map of the toc\n */\nexport const extractToc: Plugin<[], Root> = () => {\n return (tree: Root, file: VFile) => {\n const details = tree.children.flatMap(extractDetails);\n if (file.data.fm === undefined) file.data.fm = {};\n // @ts-expect-error its untyped but for svmdex it is there\n file.data.fm.toc = details;\n };\n};\nexport type Toc = TocEntry[];\nexport type TocEntry = { level: number; id: string; value: string };\n\nfunction extractDetails(content: RootContent | { type: 'raw'; value: string }): TocEntry[] {\n if (content.type === 'element' && content.tagName.startsWith('h') && 'id' in content.properties) {\n const value =\n content.children.length === 1 && content.children[0].type === 'text'\n ? content.children[0].value\n : (content.properties.id as string);\n\n return [{ level: parseInt(content.tagName.slice(1)), id: content.properties.id as string, value }];\n } else if (content.type === 'raw') {\n const parsed = parseRaw(content.value);\n return parsed.flatMap(extractDetails);\n }\n return [];\n}\n\n/**\n * Parses raw HTML and returns a flat array of all heading (h1-h6) elements as HAST nodes.\n */\nexport function parseRaw(raw: string): Element[] {\n // Parse the HTML string into a HAST Root node\n const tree = unified()\n .use(rehypeParse, { fragment: true }) // allow parsing HTML fragments\n .parse(raw) as Root;\n\n // Helper function to recursively find heading elements\n function collectHeadings(node: RootContent): Element[] {\n if (node.type === 'element' && /^h[1-6]$/.test(node.tagName)) {\n return [node];\n }\n // Check children recursively\n if ('children' in node && Array.isArray(node.children)) {\n return node.children.flatMap(collectHeadings);\n }\n return [];\n }\n\n // Flatten all headings found in the tree\n return tree.children.flatMap(collectHeadings);\n}\n","import type { GenericSchema, GenericSchemaAsync } from 'valibot';\n\nexport function isSchema(x: unknown): x is GenericSchema {\n return !!x && typeof x === 'object' && 'kind' in x && x['kind'] === 'schema';\n}\n\nexport function unwrap(schema: GenericSchema): GenericSchema {\n // Unwrap common wrappers that simply contain another schema under `wrapped`\n // optional | exactOptional | undefinedable | nullable | nullish | nonNullable | nonNullish | readonly | brand | description | metadata | title | flavor\n // Most of these share `{ type: string; wrapped: GenericSchema }`\n // Guarded unwrap to avoid infinite loops.\n let curr: any = schema as any;\n const seen = new Set<any>();\n while (curr && typeof curr === 'object' && !seen.has(curr) && 'wrapped' in curr && isSchema((curr as any).wrapped)) {\n seen.add(curr);\n curr = (curr as any).wrapped;\n }\n return curr as GenericSchema;\n}\n\nfunction isIntegerKey(s: string): boolean {\n // allow \"0\", \"01\" etc. to index tuples/arrays consistently\n return /^-?\\d+$/.test(s);\n}\n\nexport type GetSchemaByPathOptions = {\n /**\n * When a union/variant cannot be narrowed by the path segment,\n * choose index `preferOption` (default 0). Set to -1 to return undefined instead.\n */\n preferOption?: number;\n};\n\nexport function getSchemaByPath(\n root: GenericSchema | GenericSchemaAsync,\n path: string,\n opts: GetSchemaByPathOptions = {}\n): GenericSchema | undefined {\n if (!isSchema(root)) return undefined;\n if (!path) return root;\n\n const keys = path.split('.');\n let curr: GenericSchema | undefined = root;\n\n for (let i = 0; i < keys.length; i++) {\n if (!curr) return undefined;\n curr = unwrap(curr);\n const seg = keys[i];\n\n // Narrow by schema \"type\"\n const type = (curr as any).type as string | undefined;\n\n switch (type) {\n case 'object': {\n // ObjectSchema has `.entries`\n const entries = (curr as any).entries as Record<string, GenericSchema> | undefined;\n if (!entries) return undefined;\n curr = entries[seg];\n break;\n }\n\n case 'record': {\n // RecordSchema has `.value` for any key\n const value = (curr as any).value as GenericSchema | undefined;\n curr = value;\n break;\n }\n\n case 'array': {\n // ArraySchema has `.item`\n if (!isIntegerKey(seg)) return undefined;\n const item = (curr as any).item as GenericSchema | undefined;\n curr = item;\n break;\n }\n\n case 'tuple': {\n // TupleSchema has `.items` and possibly `.rest`\n if (!isIntegerKey(seg)) return undefined;\n const idx = Number(seg);\n const items = (curr as any).items as GenericSchema[] | undefined;\n const rest = (curr as any).rest as GenericSchema | undefined;\n if (!items) return undefined;\n curr = idx < items.length ? items[idx] : rest;\n break;\n }\n\n case 'union': {\n // UnionSchema has `.options` (array of schemas)\n const options = (curr as any).options as GenericSchema[] | undefined;\n if (!options?.length) return undefined;\n\n // Try to narrow by segment:\n // - if numeric seg: prefer array/tuple options\n // - if string seg: prefer object/record options that contain seg\n const numeric = isIntegerKey(seg);\n\n let next: GenericSchema | undefined;\n\n if (numeric) {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n return u?.type === 'array' || u?.type === 'tuple';\n }) ?? options[opts.preferOption ?? 0];\n } else {\n // Prefer object/record with matching key\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n if (u?.type === 'object') {\n const ent = u.entries as Record<string, GenericSchema> | undefined;\n return !!ent && seg in ent;\n }\n return u?.type === 'record';\n }) ?? options[opts.preferOption ?? 0];\n }\n\n curr = next;\n // Loop continues to use seg against selected option\n i--; // reprocess this segment against the chosen branch\n break;\n }\n\n case 'variant': {\n // Variant (discriminated union) has `.options` too\n const options = (curr as any).options as GenericSchema[] | undefined;\n if (!options?.length) return undefined;\n // Same narrowing as union\n const numeric = isIntegerKey(seg);\n let next: GenericSchema | undefined;\n if (numeric) {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n return u?.type === 'array' || u?.type === 'tuple';\n }) ?? options[opts.preferOption ?? 0];\n } else {\n next =\n options.find((o) => {\n const u = unwrap(o) as any;\n if (u?.type === 'object') {\n const ent = u.entries as Record<string, GenericSchema> | undefined;\n return !!ent && seg in ent;\n }\n return u?.type === 'record';\n }) ?? options[opts.preferOption ?? 0];\n }\n curr = next;\n i--;\n break;\n }\n\n default: {\n // If it’s a pipeline schema (`pipe`) or similar wrapper, many expose `.wrapped` and are handled by unwrap.\n // If we end up at a primitive or unknown structure while keys remain, fail.\n return undefined;\n }\n }\n }\n\n return curr ? unwrap(curr) : undefined;\n}\n","import { isEqual, isObject } from 'radash';\n\nimport type { DeepPartial } from '../types/deep.js';\n\n/**\n * Sets the value for an object by its dot path\n * @param obj - any object\n * @param path - the dot path eg. key1.0.1.key2\n * @param value - any value\n * @returns - the modified object\n */\nexport function setByPath<T extends object>(obj: T, path: string, value: any): T {\n const keys = path.split('.');\n let curr: any = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i];\n const next = keys[i + 1];\n // handle array indices like '0'\n if (Number.isInteger(Number(next))) {\n curr[k] ??= [];\n } else {\n curr[k] ??= {};\n }\n curr = curr[k];\n }\n\n curr[keys[keys.length - 1]] = value;\n return obj;\n}\n\n/**\n * Gets the value from an object by its dot path\n * @param obj - any object\n * @param path - the dot path eg. key1.0.1.key2\n * @returns - the value at the given path or undefined\n */\nexport function getByPath<T extends object>(obj: T, path: string): any {\n if (!obj || typeof obj !== 'object') return undefined;\n const keys = path.split('.');\n let curr: any = obj;\n\n for (const k of keys) {\n if (curr == null) return undefined;\n curr = curr[k];\n }\n\n return curr;\n}\n\nconst isPlainRecord = (v: unknown): v is Record<string, unknown> => isObject(v) && !Array.isArray(v);\n\n/**\n * Returns a deep \"patch\" object containing only the fields from `b`\n * that are different from `a`.\n *\n * Behavior:\n * - Only keys from `b` can appear in the result.\n * - New keys in `b` are included.\n * - Changed primitive/array values are included as the value from `b`.\n * - For nested plain objects, it recurses and returns only the differing nested fields.\n * - Arrays are treated as atomic (if different, the whole array from `b` is returned).\n *\n * Typing:\n * - Output is `DeepPartial<B>` because only a subset of `b`'s shape is returned.\n *\n * @template A\n * @template B\n * @param {A} a - Base/original object (can be a different shape than `b`).\n * @param {B} b - Updated object; output keys come from this object.\n * @returns {DeepPartial<B>} Deep partial of `b` containing only differences vs `a`.\n */\nexport const deepDiff = <A extends object, B extends object>(a: A, b: B): DeepPartial<B> => {\n const out: Record<string, unknown> = {};\n\n for (const key of Object.keys(b) as Array<keyof B>) {\n const aVal = (a as any)?.[key];\n const bVal = (b as any)[key];\n\n if (!((key as any) in (a as any))) {\n out[key as any] = bVal;\n continue;\n }\n\n if (isPlainRecord(aVal) && isPlainRecord(bVal)) {\n const nested = deepDiff(aVal, bVal);\n if (Object.keys(nested as any).length) out[key as any] = nested;\n continue;\n }\n\n if (!isEqual(aVal, bVal)) out[key as any] = bVal;\n }\n\n return out as DeepPartial<B>;\n};\n\n/**\n * Deeply prunes `source` to match the *shape* of `shape`.\n *\n * Rules:\n * - Only keys that exist on `shape` are kept.\n * - Pruning is deep for nested plain objects.\n * - Arrays are supported by using the first element of `shape` as the element-shape.\n * - If `shape` is `[]`, returns `[]` (drops all elements).\n * - Primitive values are kept as-is (no type coercion) if the key exists in `shape`.\n * - If `shape` expects an object/array but `source` is not compatible, returns an empty object/array of that shape.\n *\n * @typeParam S - Source object type.\n * @typeParam Sh - Shape object type.\n * @param source - The object to prune.\n * @param shape - The object whose keys/structure are the allowlist.\n * @returns A new value derived from `source`, containing only fields present in `shape`, pruned deeply.\n *\n * @example\n * const source = { a: 1, b: { c: 2, d: 3 }, e: [ { x: 1, y: 2 }, { x: 3, y: 4 } ], z: 9 };\n * const shape = { a: 0, b: { c: 0 }, e: [ { x: 0 } ] };\n * // => { a: 1, b: { c: 2 }, e: [ { x: 1 }, { x: 3 } ] }\n * const out = pruneToShape(source, shape);\n */\nexport function pruneToShape<S, Sh>(source: S, shape: Sh): Sh {\n return pruneAny(source as unknown, shape as unknown) as Sh;\n\n function pruneAny(src: unknown, sh: unknown): unknown {\n // Arrays: use first element as the \"element shape\"\n if (Array.isArray(sh)) {\n if (!Array.isArray(src)) return [];\n if (sh.length === 0) return [];\n const elemShape = sh[0];\n return src.map((v) => pruneAny(v, elemShape));\n }\n\n // Plain objects: keep only keys present on shape, recursively.\n if (isPlainObject(sh)) {\n const out: Record<string, unknown> = {};\n const srcObj = isPlainObject(src) ? (src as Record<string, unknown>) : undefined;\n\n for (const key of Object.keys(sh as Record<string, unknown>)) {\n const shVal = (sh as Record<string, unknown>)[key];\n const srcVal = srcObj ? srcObj[key] : undefined;\n\n if (Array.isArray(shVal) || isPlainObject(shVal)) {\n out[key] = pruneAny(srcVal, shVal);\n } else {\n // Primitive (or function/date/etc in shape): key exists => keep source value as-is\n out[key] = srcVal;\n }\n }\n return out;\n }\n\n // Non-object shape => allowed leaf; just return source leaf as-is.\n return src;\n }\n\n function isPlainObject(v: unknown): v is Record<string, unknown> {\n if (v === null || typeof v !== 'object') return false;\n const proto = Object.getPrototypeOf(v);\n return proto === Object.prototype || proto === null;\n }\n}\n"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,15 +1,11 @@
1
1
  import { GenericSchema, GenericSchemaAsync, SafeParseResult } from "valibot";
2
- import * as _$cookie_es0 from "cookie-es";
3
2
  import { Result, ResultAsync } from "neverthrow";
4
- import * as _$_aws_sdk_client_cognito_identity_provider0 from "@aws-sdk/client-cognito-identity-provider";
5
3
  import { AdminGetUserCommandOutput, AttributeType, CognitoIdentityProviderClient } from "@aws-sdk/client-cognito-identity-provider";
6
4
  import { GetObjectCommandInput, S3Client, S3ClientConfig } from "@aws-sdk/client-s3";
7
5
  import { DynamoDBToolboxError } from "dynamodb-toolbox";
8
6
  import { Plugin } from "unified";
9
7
  import { styleText } from "node:util";
10
8
  import { APIGatewayProxyEventV2WithLambdaAuthorizer, APIGatewayProxyResultV2, APIGatewayRequestAuthorizerEventV2, Context } from "aws-lambda";
11
- import * as _$_smithy_types0 from "@smithy/types";
12
- import * as _$_smithy_smithy_client0 from "@smithy/smithy-client";
13
9
  import { PackageJson } from "type-fest";
14
10
 
15
11
  //#region src/lambda/handlerUtils.d.ts
@@ -125,11 +121,11 @@ type ApiErrorBody<E extends ApiEndpoints, P extends E['path'], M extends E['meth
125
121
  */
126
122
  type ConvertToFetch<T> = T extends {
127
123
  statusCode: number;
128
- body: object;
129
- headers: object;
124
+ body?: infer Body;
125
+ headers?: object;
130
126
  } ? {
131
127
  ok: T['statusCode'] extends SuccessCode ? true : false;
132
- json: () => Promise<T['body']>;
128
+ json: () => Promise<Body>;
133
129
  status: T['statusCode'];
134
130
  } : T;
135
131
  type CleanResponse = Omit<Response, 'status' | 'ok' | 'json'>;
@@ -139,8 +135,8 @@ type HTTPMethod = (typeof HTTPMethods)[number];
139
135
  type ApiEndpoints = {
140
136
  path: string;
141
137
  method: HTTPMethod;
142
- requestInput: Record<string, any> | null;
143
- requestOutput: object | null;
138
+ requestInput: any;
139
+ requestOutput: any;
144
140
  response: FetchResponse<() => Promise<{
145
141
  headers: object;
146
142
  statusCode: SuccessCode;
@@ -153,17 +149,31 @@ type ApiEndpoints = {
153
149
  };
154
150
  //#endregion
155
151
  //#region src/lambda/client.d.ts
156
- declare const HTTPMethods$1: readonly ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS', 'HEAD'];
157
- type HTTPMethod$1 = (typeof HTTPMethods$1)[number];
158
152
  type ApiRequestFunction<API extends ApiEndpoints> = <Path extends API['path'], Method extends Extract<API, {
159
153
  path: Path;
160
- }>['method']>(path: Path, method: Method, input: ApiInput<API, Path, Method>, headers?: HeadersInit) => Promise<ApiResponse<API, Path, Method>>;
154
+ }>['method']>(endpoint: ApiEndpointContract<API, Path, Method>, input: ApiInput<API, Path, Method>, headers?: HeadersInit) => Promise<ApiResponse<API, Path, Method>>;
161
155
  type ApiSchema = GenericSchema | GenericSchemaAsync;
156
+ type ApiEndpointContract<API extends ApiEndpoints, Path extends API['path'], Method extends Extract<API, {
157
+ path: Path;
158
+ }>['method']> = {
159
+ path: Path;
160
+ method: Method;
161
+ schema: ApiSchema;
162
+ };
163
+ type AnyApiEndpointContract<API extends ApiEndpoints> = { [Path in API['path']]: { [Method in Extract<API, {
164
+ path: Path;
165
+ }>['method']]: ApiEndpointContract<API, Path, Method> }[Extract<API, {
166
+ path: Path;
167
+ }>['method']] }[API['path']];
168
+ declare function endpointKey(endpoint: {
169
+ path: string;
170
+ method: string;
171
+ }): string;
162
172
  /**
163
173
  * @returns A function that can be used to make API requests with type safety
164
174
  * @example const clientApiRequest = createApiRequest<ApiEndpoints>();
165
175
  */
166
- declare function createApiRequest<API extends ApiEndpoints>(schemas: Partial<Record<API['path'], Partial<Record<HTTPMethod$1, ApiSchema>>>>, apiUrl: string, env: string): ApiRequestFunction<API>;
176
+ declare function createApiRequest<API extends ApiEndpoints>(apiUrl: string, env: string): ApiRequestFunction<API>;
167
177
  //#endregion
168
178
  //#region src/lambda/errors.d.ts
169
179
  /**
@@ -301,7 +311,7 @@ declare function response_ok<Body extends {
301
311
  /**
302
312
  * Wraps cookies parse along with the api gateway event with neverthrow
303
313
  */
304
- declare function getCookies(event: APIGatewayProxyEventV2WithLambdaAuthorizer<any> | APIGatewayRequestAuthorizerEventV2): Result<_$cookie_es0.Cookies, type_error_lambda_unauthorized>;
314
+ declare function getCookies(event: APIGatewayProxyEventV2WithLambdaAuthorizer<any> | APIGatewayRequestAuthorizerEventV2): Result<import("cookie-es").Cookies, type_error_lambda_unauthorized>;
305
315
  //#endregion
306
316
  //#region src/cognito/client.d.ts
307
317
  /**
@@ -349,7 +359,7 @@ declare function extractAttributes(attrs: AttributeType[] | undefined): Record<s
349
359
  declare function getUserGroups(a: {
350
360
  username: string;
351
361
  userPoolId: string;
352
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.AdminListGroupsForUserCommandOutput, type_error_cognito>;
362
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").AdminListGroupsForUserCommandOutput, type_error_cognito>;
353
363
  //#endregion
354
364
  //#region src/cognito/password.d.ts
355
365
  /**
@@ -368,7 +378,7 @@ declare const resetPassword: (a: {
368
378
  clientId: string;
369
379
  clientSecret: string;
370
380
  requiredAttributes?: Record<string, string>;
371
- }) => ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.RespondToAuthChallengeCommandOutput, type_error_cognito>;
381
+ }) => ResultAsync<import("@aws-sdk/client-cognito-identity-provider").RespondToAuthChallengeCommandOutput, type_error_cognito>;
372
382
  /**
373
383
  * Computes Cognito secret hash used for client-side authentication flows.
374
384
  *
@@ -384,7 +394,7 @@ declare function computeSecretHash(username: string, clientId: string, clientSec
384
394
  * @param oldPassword - Current password.
385
395
  * @param newPassword - New password to set.
386
396
  */
387
- declare function changePassword(accessToken: string, oldPassword: string, newPassword: string): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.ChangePasswordCommandOutput, type_error_cognito>;
397
+ declare function changePassword(accessToken: string, oldPassword: string, newPassword: string): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").ChangePasswordCommandOutput, type_error_cognito>;
388
398
  /**
389
399
  * Completes a forgot-password flow by submitting the confirmation code and new password.
390
400
  *
@@ -400,7 +410,7 @@ declare function confirmForgotPassword(a: {
400
410
  newPassword: string;
401
411
  clientId: string;
402
412
  clientSecret: string;
403
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.ConfirmForgotPasswordCommandOutput, type_error_cognito>;
413
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").ConfirmForgotPasswordCommandOutput, type_error_cognito>;
404
414
  /**
405
415
  * Confirms a user's signup using the confirmation code sent by Cognito.
406
416
  *
@@ -414,7 +424,7 @@ declare function confirmSignup(a: {
414
424
  confirmationCode: string;
415
425
  clientId: string;
416
426
  clientSecret: string;
417
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.ConfirmSignUpCommandOutput, type_error_cognito>;
427
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").ConfirmSignUpCommandOutput, type_error_cognito>;
418
428
  /**
419
429
  * Starts a forgot-password flow by sending a reset code to the user.
420
430
  *
@@ -426,7 +436,7 @@ declare function forgotPassword(a: {
426
436
  username: string;
427
437
  clientId: string;
428
438
  clientSecret: string;
429
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.ForgotPasswordCommandOutput, type_error_cognito>;
439
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").ForgotPasswordCommandOutput, type_error_cognito>;
430
440
  /**
431
441
  * Signs a user in with ADMIN_USER_PASSWORD_AUTH.
432
442
  *
@@ -442,7 +452,7 @@ declare function login(a: {
442
452
  clientId: string;
443
453
  clientSecret: string;
444
454
  userPoolId: string;
445
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.AdminInitiateAuthCommandOutput, type_error_cognito>;
455
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").AdminInitiateAuthCommandOutput, type_error_cognito>;
446
456
  /**
447
457
  * Sends a GetTokensFromRefreshTokenCommand
448
458
  */
@@ -452,7 +462,7 @@ declare function refreshTokens(a: {
452
462
  ClientSecret: string;
453
463
  DeviceKey?: string | undefined;
454
464
  ClientMetaData?: Record<string, string> | undefined;
455
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.GetTokensFromRefreshTokenCommandOutput, type_error_cognito>;
465
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").GetTokensFromRefreshTokenCommandOutput, type_error_cognito>;
456
466
  /**
457
467
  * Exchanges a refresh token for new tokens.
458
468
  *
@@ -468,13 +478,13 @@ declare function refreshTokensAuth(a: {
468
478
  clientId: string;
469
479
  clientSecret: string;
470
480
  userPoolId: string;
471
- }): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.AdminInitiateAuthCommandOutput, type_error_cognito>;
481
+ }): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").AdminInitiateAuthCommandOutput, type_error_cognito>;
472
482
  /**
473
483
  * Globally signs out a user by invalidating all refresh tokens.
474
484
  *
475
485
  * @param accessToken - Access token for the authenticated user.
476
486
  */
477
- declare function logout(accessToken: string): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.GlobalSignOutCommandOutput, type_error_cognito>;
487
+ declare function logout(accessToken: string): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").GlobalSignOutCommandOutput, type_error_cognito>;
478
488
  /**
479
489
  * Registers a new user with Cognito and optional custom attributes.
480
490
  *
@@ -489,7 +499,7 @@ declare function signUp(a: {
489
499
  password: string;
490
500
  clientId: string;
491
501
  clientSecret: string;
492
- } & Record<string, unknown>): ResultAsync<_$_aws_sdk_client_cognito_identity_provider0.SignUpCommandOutput, type_error_cognito>;
502
+ } & Record<string, unknown>): ResultAsync<import("@aws-sdk/client-cognito-identity-provider").SignUpCommandOutput, type_error_cognito>;
493
503
  /**
494
504
  * Exchanges an OAuth2 authorization code for Cognito tokens using the token endpoint.
495
505
  * See https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html for request/response fields and grant details.
@@ -565,7 +575,7 @@ declare function error_lambda_fromS3(e: type_error_s3, options?: type_error_lamb
565
575
  declare function is_s3_notFound(error: unknown): boolean;
566
576
  //#endregion
567
577
  //#region src/s3/signedUrl.d.ts
568
- declare const getSignedUrl: <InputTypesUnion extends object, InputType extends InputTypesUnion, OutputType extends _$_smithy_types0.MetadataBearer = _$_smithy_types0.MetadataBearer>(client: _$_smithy_smithy_client0.Client<any, InputTypesUnion, _$_smithy_types0.MetadataBearer, any>, command: _$_smithy_smithy_client0.Command<InputType, OutputType, any, InputTypesUnion, _$_smithy_types0.MetadataBearer>, options?: _$_smithy_types0.RequestPresigningArguments | undefined) => ResultAsync<string, type_error_s3>;
578
+ declare const getSignedUrl: <InputTypesUnion extends object, InputType extends InputTypesUnion, OutputType extends import("@smithy/types").MetadataBearer = import("@smithy/types").MetadataBearer>(client: import("@aws-sdk/client-cognito-identity-provider").__Client<any, InputTypesUnion, import("@smithy/types").MetadataBearer, any>, command: import("@aws-sdk/client-cognito-identity-provider").$Command<InputType, OutputType, any, InputTypesUnion, import("@smithy/types").MetadataBearer>, options?: import("@smithy/types").RequestPresigningArguments | undefined) => ResultAsync<string, type_error_s3>;
569
579
  //#endregion
570
580
  //#region src/s3/object.d.ts
571
581
  /**
@@ -1081,5 +1091,5 @@ declare function getErrorName(error: unknown): string | undefined;
1081
1091
  //#region src/types/safe.d.ts
1082
1092
  type SafeOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;
1083
1093
  //#endregion
1084
- export { APIGatewayHandler, ApiEndpoints, ApiErrorBody, ApiInput, ApiOutput, ApiRequestFunction, ApiResponse, ApiSchema, ApiSuccessBody, CleanResponse, DeepOverride, DeepPartial, DeepReadonly, DeepRequired, ErrorBody, ErrorCode, ErrorRawProxyResultV2, FetchResponse, GetSchemaByPathOptions, HTTPMethod, HTTPMethods, LambdaErrorResponse, OkRawProxyResultV2, RawApiGatewayHandler, RawProxyResultV2, SafeOmit, SuccessCode, Toc, TocEntry, changePassword, colorText, computeSecretHash, confirmForgotPassword, confirmSignup, createApiRequest, deepDiff, ensureDotRelative, error_cognito, error_dynamo, error_lambda_badRequest, error_lambda_conflict, error_lambda_forbidden, error_lambda_fromCognito, error_lambda_fromDynamo, error_lambda_fromS3, error_lambda_fromSes, error_lambda_internal, error_lambda_notFound, error_lambda_unauthorized, error_s3, error_ses, exists, extractAttributes, extractToc, forgotPassword, getByPath, getCognitoClient, getCookies, getErrorName, getObject, getObjectString, getS3, getSchemaByPath, getSignedUrl, getUserDetails, getUserGroups, isRecord, isSchema, is_s3_notFound, login, logout, objectExists, parseRaw, pruneToShape, readPackageJson, refreshOAuthToken, refreshTokens, refreshTokensAuth, resetPassword, response_error, response_ok, response_valibotError, setByPath, signUp, type_error_cognito, type_error_dynamo, type_error_lambda, type_error_lambda_badRequest, type_error_lambda_conflict, type_error_lambda_forbidden, type_error_lambda_fromCognito_options, type_error_lambda_fromCognito_reason, type_error_lambda_fromDynamo_options, type_error_lambda_fromDynamo_reason, type_error_lambda_fromS3_options, type_error_lambda_fromS3_reason, type_error_lambda_fromSes_options, type_error_lambda_fromSes_reason, type_error_lambda_internal, type_error_lambda_notFound, type_error_lambda_unauthorized, type_error_response, type_error_s3, type_error_ses, type_userResponse, unwrap, verifyOAuthToken, wrapHandler, writeIfDifferent };
1094
+ export { APIGatewayHandler, AnyApiEndpointContract, ApiEndpointContract, ApiEndpoints, ApiErrorBody, ApiInput, ApiOutput, ApiRequestFunction, ApiResponse, ApiSchema, ApiSuccessBody, CleanResponse, DeepOverride, DeepPartial, DeepReadonly, DeepRequired, ErrorBody, ErrorCode, ErrorRawProxyResultV2, FetchResponse, GetSchemaByPathOptions, HTTPMethod, HTTPMethods, LambdaErrorResponse, OkRawProxyResultV2, RawApiGatewayHandler, RawProxyResultV2, SafeOmit, SuccessCode, Toc, TocEntry, changePassword, colorText, computeSecretHash, confirmForgotPassword, confirmSignup, createApiRequest, deepDiff, endpointKey, ensureDotRelative, error_cognito, error_dynamo, error_lambda_badRequest, error_lambda_conflict, error_lambda_forbidden, error_lambda_fromCognito, error_lambda_fromDynamo, error_lambda_fromS3, error_lambda_fromSes, error_lambda_internal, error_lambda_notFound, error_lambda_unauthorized, error_s3, error_ses, exists, extractAttributes, extractToc, forgotPassword, getByPath, getCognitoClient, getCookies, getErrorName, getObject, getObjectString, getS3, getSchemaByPath, getSignedUrl, getUserDetails, getUserGroups, isRecord, isSchema, is_s3_notFound, login, logout, objectExists, parseRaw, pruneToShape, readPackageJson, refreshOAuthToken, refreshTokens, refreshTokensAuth, resetPassword, response_error, response_ok, response_valibotError, setByPath, signUp, type_error_cognito, type_error_dynamo, type_error_lambda, type_error_lambda_badRequest, type_error_lambda_conflict, type_error_lambda_forbidden, type_error_lambda_fromCognito_options, type_error_lambda_fromCognito_reason, type_error_lambda_fromDynamo_options, type_error_lambda_fromDynamo_reason, type_error_lambda_fromS3_options, type_error_lambda_fromS3_reason, type_error_lambda_fromSes_options, type_error_lambda_fromSes_reason, type_error_lambda_internal, type_error_lambda_notFound, type_error_lambda_unauthorized, type_error_response, type_error_s3, type_error_ses, type_userResponse, unwrap, verifyOAuthToken, wrapHandler, writeIfDifferent };
1085
1095
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","Properties","Array","PropertyName","ElementContent","ElementContentMap","Comment","Element","Text","comment","element","text","RootContent","RootContentMap","Doctype","doctype","Content","Literals","Nodes","Extract","Root","Parents","data","value","children","CommentData","type","DoctypeData","ElementData","tagName","properties","content","RootData","TextData"],"sources":["../src/lambda/handlerUtils.ts","../src/lambda/client-types.ts","../src/lambda/client.ts","../src/lambda/errors.ts","../src/lambda/response.ts","../src/lambda/server/authentication.ts","../src/cognito/client.ts","../src/cognito/errors.ts","../src/cognito/user.ts","../src/cognito/password.ts","../src/s3/client.ts","../src/s3/errors.ts","../src/s3/signedUrl.ts","../src/s3/object.ts","../src/dynamo/errors.ts","../src/ses/errors.ts","../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../src/rehype/flat-toc.ts","../src/utils/valibot.ts","../src/types/deep.ts","../src/utils/object.ts","../src/utils/fs.ts","../src/utils/cli.ts","../src/utils/errors.ts","../src/types/safe.ts"],"x_google_ignoreList":[16,17],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":["line","column","offset","start","Point","end","Node","value","type","data","Data","position","Position","children","UnistData","PropertyName","Array","ElementContentMap","comment","Comment","element","Element","text","Text","RootContentMap","doctype","Doctype","RootContent","Extract","Nodes","UnistLiteral","Root","UnistParent","UnistNode","data","Data","Node","value","children","Literal","type","CommentData","DoctypeData","Parent","tagName","properties","Properties","ElementContent","content","ElementData","RootData","TextData"],"sources":["../src/lambda/handlerUtils.ts","../src/lambda/client-types.ts","../src/lambda/client.ts","../src/lambda/errors.ts","../src/lambda/response.ts","../src/lambda/server/authentication.ts","../src/cognito/client.ts","../src/cognito/errors.ts","../src/cognito/user.ts","../src/cognito/password.ts","../src/s3/client.ts","../src/s3/errors.ts","../src/s3/signedUrl.ts","../src/s3/object.ts","../src/dynamo/errors.ts","../src/ses/errors.ts","../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../node_modules/.pnpm/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../src/rehype/flat-toc.ts","../src/utils/valibot.ts","../src/types/deep.ts","../src/utils/object.ts","../src/utils/fs.ts","../src/utils/cli.ts","../src/utils/errors.ts","../src/types/safe.ts"],"x_google_ignoreList":[16,17],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -62,15 +62,16 @@ async function _apiRequest(path, method, input, schema, environment, apiUrl, hea
62
62
  };
63
63
  return response;
64
64
  }
65
+ function endpointKey(endpoint) {
66
+ return `${endpoint.method} ${endpoint.path}`;
67
+ }
65
68
  /**
66
69
  * @returns A function that can be used to make API requests with type safety
67
70
  * @example const clientApiRequest = createApiRequest<ApiEndpoints>();
68
71
  */
69
- function createApiRequest(schemas, apiUrl, env) {
70
- return async function apiRequest(path, method, input, headers) {
71
- const schema = schemas[path]?.[method];
72
- if (schema === void 0) throw new Error("Schema is undefined in api request");
73
- return _apiRequest(path, method, input, schema, env, apiUrl, headers);
72
+ function createApiRequest(apiUrl, env) {
73
+ return async function apiRequest(endpoint, input, headers) {
74
+ return _apiRequest(endpoint.path, endpoint.method, input, endpoint.schema, env, apiUrl, headers);
74
75
  };
75
76
  }
76
77
  //#endregion
@@ -1672,6 +1673,6 @@ function ensureDotRelative(filePath) {
1672
1673
  return `./${filePath}`;
1673
1674
  }
1674
1675
  //#endregion
1675
- export { HTTPMethods, changePassword, colorText, computeSecretHash, confirmForgotPassword, confirmSignup, createApiRequest, deepDiff, ensureDotRelative, error_cognito, error_dynamo, error_lambda_badRequest, error_lambda_conflict, error_lambda_forbidden, error_lambda_fromCognito, error_lambda_fromDynamo, error_lambda_fromS3, error_lambda_fromSes, error_lambda_internal, error_lambda_notFound, error_lambda_unauthorized, error_s3, error_ses, exists, extractAttributes, extractToc, forgotPassword, getByPath, getCognitoClient, getCookies, getErrorName, getObject, getObjectString, getS3, getSchemaByPath, getSignedUrl, getUserDetails, getUserGroups, isRecord, isSchema, is_s3_notFound, login, logout, objectExists, parseRaw, pruneToShape, readPackageJson, refreshOAuthToken, refreshTokens, refreshTokensAuth, resetPassword, response_error, response_ok, response_valibotError, setByPath, signUp, unwrap, verifyOAuthToken, wrapHandler, writeIfDifferent };
1676
+ export { HTTPMethods, changePassword, colorText, computeSecretHash, confirmForgotPassword, confirmSignup, createApiRequest, deepDiff, endpointKey, ensureDotRelative, error_cognito, error_dynamo, error_lambda_badRequest, error_lambda_conflict, error_lambda_forbidden, error_lambda_fromCognito, error_lambda_fromDynamo, error_lambda_fromS3, error_lambda_fromSes, error_lambda_internal, error_lambda_notFound, error_lambda_unauthorized, error_s3, error_ses, exists, extractAttributes, extractToc, forgotPassword, getByPath, getCognitoClient, getCookies, getErrorName, getObject, getObjectString, getS3, getSchemaByPath, getSignedUrl, getUserDetails, getUserGroups, isRecord, isSchema, is_s3_notFound, login, logout, objectExists, parseRaw, pruneToShape, readPackageJson, refreshOAuthToken, refreshTokens, refreshTokensAuth, resetPassword, response_error, response_ok, response_valibotError, setByPath, signUp, unwrap, verifyOAuthToken, wrapHandler, writeIfDifferent };
1676
1677
 
1677
1678
  //# sourceMappingURL=index.mjs.map