svelte-ag 1.2.8 → 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/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { TransitionConfig } from "svelte/transition";
4
4
  import { WithElementRef, WithRefProps } from "svelte-toolbelt";
5
5
  import { ClassValue as ClassValue$1, HTMLAttributes, HTMLFormAttributes } from "svelte/elements";
6
6
  import { SuperForm, superForm } from "sveltekit-superforms";
7
- import { ApiEndpoints, ApiErrorBody, ApiInput, ApiRequestFunction, ApiResponse, ApiSchema, ApiSuccessBody, HTTPMethod } from "ts-ag";
7
+ import { ApiEndpointContract, ApiEndpoints, ApiErrorBody, ApiInput, ApiRequestFunction, ApiResponse, ApiSuccessBody } from "ts-ag";
8
8
  import { VariantProps } from "tailwind-variants";
9
9
  import { ComponentProps, Snippet } from "svelte";
10
10
  import { CreateDraggableInput, CreateDroppableInput, DragDropProvider, DragOverlay, createDraggable } from "@dnd-kit/svelte";
@@ -112,7 +112,7 @@ type FormActionArgs<T extends ApiEndpoints, P extends T['path'], M extends Extra
112
112
  /**
113
113
  * Creates a strongly-typed form factory for an API schema.
114
114
  *
115
- * Call the returned function with `{ path, method, ... }` to get a `SuperForm`
115
+ * Call the returned function with `{ endpoint, ... }` to get a `SuperForm`
116
116
  * that:
117
117
  * - Validates using the Valibot schema for the given endpoint.
118
118
  * - Submits via the provided `request` function on each valid update.
@@ -122,8 +122,7 @@ type FormActionArgs<T extends ApiEndpoints, P extends T['path'], M extends Extra
122
122
  type ApiRequestForm<API extends ApiEndpoints> = <Path extends API['path'], Method extends Extract<API, {
123
123
  path: Path;
124
124
  }>['method']>(a: {
125
- /** API path key used to select a schema and to call `request(path, method, data)` */path: Path; /** HTTP method used to select a schema and to call `request(path, method, data)` */
126
- method: Method;
125
+ /** Endpoint contract used to select a schema and submit the request. */endpoint: ApiEndpointContract<API, Path, Method>;
127
126
  /**
128
127
  * Optional lifecycle hooks for consumers.
129
128
  * - `beforeRequest`: called before sending the api call
@@ -183,16 +182,21 @@ type ApiRequestForm<API extends ApiEndpoints> = <Path extends API['path'], Metho
183
182
  /**
184
183
  * Build an endpoint-specific Superforms factory.
185
184
  *
186
- * @param schemas A `{[path]: {[method]: schema}}` mapping used to pick the Valibot schema for each endpoint.
187
- * @param request An API request function that performs `(path, method, data)` and returns a fetch-like `Response`.
185
+ * @param request An API request function that performs `(endpoint, data)` and returns a fetch-like `Response`.
188
186
  *
189
- * @returns A function that creates a `SuperForm` for a particular `{path, method}` pair.
187
+ * @returns A function that creates a `SuperForm` for a particular endpoint contract.
190
188
  */
191
- declare function createFormFunction<API extends ApiEndpoints>(schemas: Partial<Record<API['path'], Partial<Record<HTTPMethod, ApiSchema>>>>, request: ApiRequestFunction<API>): ApiRequestForm<API>;
189
+ declare function createFormFunction<API extends ApiEndpoints>(request: ApiRequestFunction<API>): ApiRequestForm<API>;
192
190
  //#endregion
193
191
  //#region dist/api/query/utils.svelte.d.ts
194
- declare function batchQueryKey(path: string, method: string): string;
195
- declare function cacheKey(path: string, method: string, input: any): string;
192
+ declare function batchQueryKey(endpoint: {
193
+ path: string;
194
+ method: string;
195
+ }): string;
196
+ declare function cacheKey(endpoint: {
197
+ path: string;
198
+ method: string;
199
+ }, input: any): string;
196
200
  //#endregion
197
201
  //#region dist/api/query/cache.svelte.d.ts
198
202
  declare class Cache {
@@ -215,15 +219,13 @@ declare class Query<API extends ApiEndpoints, Path extends API['path'], Method e
215
219
  }>['method']> {
216
220
  #private;
217
221
  constructor({
218
- path,
219
- method,
222
+ endpoint,
220
223
  input,
221
224
  requestor,
222
225
  cache,
223
226
  opts
224
227
  }: {
225
- path: Path;
226
- method: Method;
228
+ endpoint: ApiEndpointContract<API, Path, Method>;
227
229
  input: ApiInput<API, Path, Method>;
228
230
  requestor: Requestor<API, Path, Method>;
229
231
  cache: Cache;
@@ -243,7 +245,7 @@ declare class Requestor<API extends ApiEndpoints, Path extends API['path'], Meth
243
245
  path: Path;
244
246
  }>['method']> {
245
247
  #private;
246
- constructor(path: Path, method: Method, request: ApiRequestFunction<API>, _cache: Cache, batchDetails?: BatchDetails<API, Path, Method>);
248
+ constructor(endpoint: ApiEndpointContract<API, Path, Method>, request: ApiRequestFunction<API>, _cache: Cache, batchDetails?: BatchDetails<API, Path, Method>);
247
249
  private fetch;
248
250
  /**
249
251
  * Empties the batch queue for the id by combining the inputs.
@@ -261,9 +263,17 @@ type BatchDetails<API extends ApiEndpoints, Path extends API['path'], Method ext
261
263
  batchInput: (inputs: ApiInput<API, Path, Method>[]) => ApiInput<API, Path, Method>;
262
264
  unBatchOutput: (inputs: ApiInput<API, Path, Method>[], output: ApiResponse<API, Path, Method>) => ApiResponse<API, Path, Method>[] | Promise<ApiResponse<API, Path, Method>[]>;
263
265
  };
264
- type ApiBatchDetails<API extends ApiEndpoints> = { [Path in API['path']]?: { [Method in Extract<API, {
266
+ type ApiBatchDetails<API extends ApiEndpoints> = { [Path in API['path']]: { [Method in Extract<API, {
265
267
  path: Path;
266
- }>['method']]?: BatchDetails<API, Path, Method> } };
268
+ }>['method']]: {
269
+ endpoint: ApiEndpointContract<API, Path, Method>;
270
+ details: BatchDetails<API, Path, Method>;
271
+ } }[Extract<API, {
272
+ path: Path;
273
+ }>['method']] }[API['path']][];
274
+ declare function batchEndpoint<API extends ApiEndpoints, Path extends API['path'], Method extends Extract<API, {
275
+ path: Path;
276
+ }>['method']>(endpoint: ApiEndpointContract<API, Path, Method>, details: BatchDetails<API, Path, Method>): ApiBatchDetails<API>[number];
267
277
  /**
268
278
  * Helper function to use once so that creating queries is easier.
269
279
  *
@@ -273,7 +283,7 @@ type ApiBatchDetails<API extends ApiEndpoints> = { [Path in API['path']]?: { [Me
273
283
  */
274
284
  declare function createQueryFunction<API extends ApiEndpoints>(request: ApiRequestFunction<API>, batchDetails: ApiBatchDetails<API>): <Path extends API["path"], Method extends Extract<API, {
275
285
  path: Path;
276
- }>["method"]>(path: Path, method: Method, input: ApiInput<API, Path, Method>, opts?: ConstructorParameters<typeof Query<API, Path, Method>>[0]["opts"]) => Query<API, Path, Method>;
286
+ }>["method"]>(endpoint: ApiEndpointContract<API, Path, Method>, input: ApiInput<API, Path, Method>, opts?: ConstructorParameters<typeof Query<API, Path, Method>>[0]["opts"]) => Query<API, Path, Method>;
277
287
  //#endregion
278
288
  //#region dist/components/animated/animated.svelte.d.ts
279
289
  declare const animatedVariants: import("tailwind-variants").TVReturnType<{
@@ -776,5 +786,5 @@ type ArrowProps = ArrowPropsWithoutHTML & BitsPrimitiveSpanAttributes;
776
786
  declare const Arrow: import("svelte").Component<ArrowProps, {}, "">;
777
787
  type Arrow = ReturnType<typeof Arrow>;
778
788
  //#endregion
779
- export { Animated, type AnimatedVariants, ApiBatchDetails, ApiRequestForm, Arrow, type ArrowProps, BatchDetails, BitsPrimitiveFormAttributes, BreakpointBadge, Cache, DndContext, type DndContextProps, DndDroppable, DndHandle, DndItem, type DndItemChildProps, type DndItemProps, DndOverlay, DndSortableItem, type DndSortableItemProps, Gallery, Gradient, HTMLDivAttributes, OnDragEnd, OnDragMove, OnDragOver, OnDragStart, Query, QueryStatus, Requestor, Safe, SimpleSortable, SvelteBreakpointBadgeProps, Test, ValidInput, Vec2, Vec3, Vec4, WebGlShader, WebGpuShader, type WithRefProps, animatedVariants, batchQueryKey, cacheKey, cn, containerSize, createFormFunction, createQueryFunction, findItem, flexSlide, flyAndScale, getAriaChecked, getAriaDisabled, getAriaExpanded, getAriaHidden, getAriaInvalid, getAriaOrientation, getAriaPressed, getAriaReadonly, getAriaRequired, getAriaSelected, getDataChecked, getDataDisabled, getDataInvalid, getDataOpenClosed, getDataOrientation, getDataReadonly, getDataRequired, getDataSelected, getDataUnavailable, getDisabled, getHidden, getRequired };
789
+ export { Animated, type AnimatedVariants, ApiBatchDetails, ApiRequestForm, Arrow, type ArrowProps, BatchDetails, BitsPrimitiveFormAttributes, BreakpointBadge, Cache, DndContext, type DndContextProps, DndDroppable, DndHandle, DndItem, type DndItemChildProps, type DndItemProps, DndOverlay, DndSortableItem, type DndSortableItemProps, Gallery, Gradient, HTMLDivAttributes, OnDragEnd, OnDragMove, OnDragOver, OnDragStart, Query, QueryStatus, Requestor, Safe, SimpleSortable, SvelteBreakpointBadgeProps, Test, ValidInput, Vec2, Vec3, Vec4, WebGlShader, WebGpuShader, type WithRefProps, animatedVariants, batchEndpoint, batchQueryKey, cacheKey, cn, containerSize, createFormFunction, createQueryFunction, findItem, flexSlide, flyAndScale, getAriaChecked, getAriaDisabled, getAriaExpanded, getAriaHidden, getAriaInvalid, getAriaOrientation, getAriaPressed, getAriaReadonly, getAriaRequired, getAriaSelected, getDataChecked, getDataDisabled, getDataInvalid, getDataOpenClosed, getDataOrientation, getDataReadonly, getDataRequired, getDataSelected, getDataUnavailable, getDisabled, getHidden, getRequired };
780
790
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["inputs","ClassValue","y","x","start","duration","delay","Element","node","FlyAndScaleParams","params","TransitionConfig","easing","cubicOut","css","t","condition","checked","indeterminate","orientation","T","Omit","id","BitsPrimitive","HTMLFormAttributes","HTMLAttributes","HTMLDivElement","test","width","height","size","func","E","ApiEndpoints","P","M","NonNullable","ApiInput","T","Extract","path","Parameters","superForm","ValidInput","FormProps","B","FormOnUpdateArgs","body","API","Path","Method","method","actions","beforeRequest","FormActionArgs","args","Promise","onSuccess","ApiSuccessBody","onFail","ApiErrorBody","defaultValue","Partial","bind","get","formData","set","formProps","a","SuperForm","Record","HTTPMethod","ApiSchema","schemas","ApiRequestFunction","request","ApiRequestForm","path","method","input","private","constructor","deregister","key","register","timeout","opts","set","value","get","reset","has","API","ApiEndpoints","Path","Method","Extract","path","private","constructor","method","input","requestor","cache","opts","ApiInput","Requestor","Cache","Parameters","request","Promise","ApiResponse","cacheKey","isCached","resetCache","status","QueryStatus","data","ApiSuccessBody","errorData","ApiErrorBody","ApiRequestFunction","_cache","BatchDetails","batchDetails","fetch","flushBatchQueue","API","ApiEndpoints","Path","Method","Extract","path","canBatch","ApiInput","input","batchInput","inputs","unBatchOutput","ApiResponse","output","Promise","BatchDetails","ApiRequestFunction","request","ApiBatchDetails","batchDetails","method","ConstructorParameters","Query","opts","TVReturnType","animation","flyAndScale","slide","fade","zoom","slideUp","slideDown","growHeight","duration","fast","default","slow","vSlow","VariantProps","animatedVariants","WithElementRef","HTMLDivAttributes","visible","AnimatedVariants","onAnimationComplete","disableInitialAnimation","class","Component","Props","ReturnType","Animated","dev","Component","SvelteBreakpointBadgeProps","ReturnType","BreakpointBadge","id","children","Item","items","WritableBox","T","ComponentProps","DragDropProvider","DndState","context","props","DndContextProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","DndContext","isDragging","isOverlay","draggable","ReturnType","createDraggable","CreateDraggableInput","child","Snippet","DndItemChildProps","Component","DndItemProps","DndItem","isDragging","isOverlay","sortable","ReturnType","createSortable","CreateSortableInput","child","Snippet","SortableItemChildProps","attachHandle","ItemContext","context","Component","DndSortableItemProps","DndSortableItem","DndContextProps","T","id","children","items","item","list","index","class","Component","DragHandleProps","ReturnType","DndHandle","T","item","SortableItemChildProps","ComponentProps","DragOverlay","child","Snippet","OverlayChildProps","id","children","props","DragOverlayProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","DndOverlay","CreateDroppableInput","children","Snippet","isDropTarget","class","ClassValue","Component","DroppableProps","ReturnType","DndDroppable","T","id","children","class","ClassValue","item","Snippet","OverlayChildProps","items","DndContextProps","props","SimpleSortableProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","SimpleSortable","Size","size","Item","small","medium","large","cols","Item","props","HTMLDivAttributes","ref","HTMLElement","images","large","medium","small","maxCols","child","Snippet","style","item","size","Size","index","exports","allItems","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","Gallery","BitsPrimitiveDivAttributes","center","Vec4","edge","noise","centerPos","Vec2","radius","Component","$$ComponentProps","ReturnType","Gradient","WithElementRef","HTMLDivAttributes","links","Component","Props","ReturnType","Safe","name","value","BuiltinValue","type","BuiltinParameter","NonBuiltinParameter","label","binding","storage","WebGpuBuiltinParameter","BufferSource","width","height","code","Promise","parameters","Parameter","forceAnimation","children","Snippet","Component","Props","ReturnType","WebGpuShader","width","height","code","parameters","Parameter","forceAnimation","children","Snippet","Component","Props","ReturnType","WebGlShader","WithChild","width","height","ArrowPropsWithoutHTML","BitsPrimitiveSpanAttributes","Component","ArrowProps","ReturnType","Arrow"],"sources":["../../home/runner/work/svelte-ag/svelte-ag/dist/utils/utils.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/bits.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/reactive.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/glsl.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/form.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/utils.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/cache.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/query.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/entrypoint.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/animated/animated.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/breakpoint-badge/BreakpointBadge.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndContext.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndItem.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndSortableItem.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/types.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/utils.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndHandle.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndOverlay.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndDroppable.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/recipies/SimpleSortable.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gallery/utils.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gallery/gallery.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gradient/Gradient.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/safe/safe.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/types.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/WebGpuShader.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/WebGlShader.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/utilities/arrow/types.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/utilities/arrow/arrow.svelte.d.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["inputs","ClassValue","y","x","start","duration","delay","Element","node","FlyAndScaleParams","params","TransitionConfig","easing","cubicOut","css","t","condition","checked","indeterminate","orientation","T","Omit","id","BitsPrimitive","HTMLFormAttributes","HTMLAttributes","HTMLDivElement","test","width","height","size","func","E","ApiEndpoints","P","M","NonNullable","ApiInput","T","Extract","path","Parameters","superForm","ValidInput","FormProps","B","FormOnUpdateArgs","body","API","Path","Method","endpoint","ApiEndpointContract","actions","beforeRequest","FormActionArgs","args","Promise","onSuccess","ApiSuccessBody","onFail","ApiErrorBody","defaultValue","Partial","bind","get","formData","set","formProps","a","SuperForm","ApiRequestFunction","request","ApiRequestForm","path","method","endpoint","input","private","constructor","deregister","key","register","timeout","opts","set","value","get","reset","has","API","ApiEndpoints","Path","Method","Extract","path","private","constructor","endpoint","input","requestor","cache","opts","ApiEndpointContract","ApiInput","Requestor","Cache","Parameters","request","Promise","ApiResponse","cacheKey","isCached","resetCache","status","QueryStatus","data","ApiSuccessBody","errorData","ApiErrorBody","ApiRequestFunction","_cache","BatchDetails","batchDetails","fetch","flushBatchQueue","API","ApiEndpoints","Path","Method","Extract","path","canBatch","ApiInput","input","batchInput","inputs","unBatchOutput","ApiResponse","output","Promise","endpoint","ApiEndpointContract","details","BatchDetails","ApiBatchDetails","ApiRequestFunction","request","batchDetails","ConstructorParameters","Query","opts","TVReturnType","animation","flyAndScale","slide","fade","zoom","slideUp","slideDown","growHeight","duration","fast","default","slow","vSlow","VariantProps","animatedVariants","WithElementRef","HTMLDivAttributes","visible","AnimatedVariants","onAnimationComplete","disableInitialAnimation","class","Component","Props","ReturnType","Animated","dev","Component","SvelteBreakpointBadgeProps","ReturnType","BreakpointBadge","id","children","Item","items","WritableBox","T","ComponentProps","DragDropProvider","DndState","context","props","DndContextProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","DndContext","isDragging","isOverlay","draggable","ReturnType","createDraggable","CreateDraggableInput","child","Snippet","DndItemChildProps","Component","DndItemProps","DndItem","isDragging","isOverlay","sortable","ReturnType","createSortable","CreateSortableInput","child","Snippet","SortableItemChildProps","attachHandle","ItemContext","context","Component","DndSortableItemProps","DndSortableItem","DndContextProps","T","id","children","items","item","list","index","class","Component","DragHandleProps","ReturnType","DndHandle","T","item","SortableItemChildProps","ComponentProps","DragOverlay","child","Snippet","OverlayChildProps","id","children","props","DragOverlayProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","DndOverlay","CreateDroppableInput","children","Snippet","isDropTarget","class","ClassValue","Component","DroppableProps","ReturnType","DndDroppable","T","id","children","class","ClassValue","item","Snippet","OverlayChildProps","items","DndContextProps","props","SimpleSortableProps","exports","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","SimpleSortable","Size","size","Item","small","medium","large","cols","Item","props","HTMLDivAttributes","ref","HTMLElement","images","large","medium","small","maxCols","child","Snippet","style","item","size","Size","index","exports","allItems","bindings","slots","events","ReturnType","$$render","ComponentConstructorOptions","__sveltets_Render","options","SvelteComponent","$$bindings","internal","z_$$bindings","$$IsomorphicComponent","InstanceType","Gallery","BitsPrimitiveDivAttributes","center","Vec4","edge","noise","centerPos","Vec2","radius","Component","$$ComponentProps","ReturnType","Gradient","WithElementRef","HTMLDivAttributes","links","Component","Props","ReturnType","Safe","name","value","BuiltinValue","type","BuiltinParameter","NonBuiltinParameter","label","binding","storage","WebGpuBuiltinParameter","BufferSource","width","height","code","Promise","parameters","Parameter","forceAnimation","children","Snippet","Component","Props","ReturnType","WebGpuShader","width","height","code","parameters","Parameter","forceAnimation","children","Snippet","Component","Props","ReturnType","WebGlShader","WithChild","width","height","ArrowPropsWithoutHTML","BitsPrimitiveSpanAttributes","Component","ArrowProps","ReturnType","Arrow"],"sources":["../../home/runner/work/svelte-ag/svelte-ag/dist/utils/utils.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/bits.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/reactive.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/utils/glsl.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/form.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/utils.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/cache.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/query.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/api/query/entrypoint.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/animated/animated.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/breakpoint-badge/BreakpointBadge.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndContext.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndItem.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndSortableItem.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/types.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/utils.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndHandle.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndOverlay.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/DndDroppable.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/dnd/recipies/SimpleSortable.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gallery/utils.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gallery/gallery.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/gradient/Gradient.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/safe/safe.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/types.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/WebGpuShader.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/shader/WebGlShader.svelte.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/utilities/arrow/types.d.ts","../../home/runner/work/svelte-ag/svelte-ag/dist/components/utilities/arrow/arrow.svelte.d.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-ag",
3
- "version": "1.2.8",
3
+ "version": "1.3.0",
4
4
  "description": "Useful svelte components",
5
5
  "bugs": "https://github.com/ageorgeh/svelte-ag/issues",
6
6
  "author": "Alexander Hornung",
@@ -101,7 +101,7 @@
101
101
  "svelte-preprocess": "^6.0.5",
102
102
  "svelte2tsx": "^0.7.56",
103
103
  "tailwindcss": "4.3.0",
104
- "ts-ag": "^1.2.7",
104
+ "ts-ag": "^1.3.0",
105
105
  "tsdown": "^0.22.2",
106
106
  "tsx": "^4.22.4",
107
107
  "tw-animate-css": "^1.4.0",
@@ -117,8 +117,9 @@
117
117
  "svelte": "^5.0.0",
118
118
  "tailwind-variants": "^3.2.2",
119
119
  "tailwindcss": "^4.2.1",
120
- "ts-ag": "^1.2.7",
120
+ "ts-ag": "^1.3.0",
121
121
  "tw-animate-css": "^1.4.0"
122
122
  },
123
+ "packageManager": "pnpm@11.5.2",
123
124
  "tailwindSources": "./dist/tailwind-sources.manifest.jsonc"
124
125
  }
@@ -6,12 +6,11 @@ import type { SuperForm } from 'sveltekit-superforms';
6
6
  import { valibot } from 'sveltekit-superforms/adapters';
7
7
  import type {
8
8
  ApiRequestFunction,
9
- HTTPMethod,
10
9
  ApiEndpoints,
11
10
  ApiInput,
12
11
  ApiSuccessBody,
13
12
  ApiErrorBody,
14
- ApiSchema
13
+ ApiEndpointContract
15
14
  } from 'ts-ag';
16
15
  import { safeParse, safeParseAsync } from 'valibot';
17
16
 
@@ -51,22 +50,19 @@ type FormErrorBody<
51
50
  /**
52
51
  * Creates a strongly-typed form factory for an API schema.
53
52
  *
54
- * Call the returned function with `{ path, method, ... }` to get a `SuperForm`
53
+ * Call the returned function with `{ endpoint, ... }` to get a `SuperForm`
55
54
  * that:
56
55
  * - Validates using the Valibot schema for the given endpoint.
57
56
  * - Submits via the provided `request` function on each valid update.
58
57
  * - Maps API errors to `sveltekit-superforms` field errors / messages.
59
58
  * - Optionally two-way binds external state through the `bind` adapter.
60
59
  */
61
- export type ApiRequestForm<
62
- API extends ApiEndpoints
63
- // Schemas extends Partial<Record<API['path'], Partial<Record<string, ApiSchema>>>>
64
- > = <Path extends API['path'], Method extends Extract<API, { path: Path }>['method']>(a: {
65
- /** API path key used to select a schema and to call `request(path, method, data)` */
66
- path: Path;
67
-
68
- /** HTTP method used to select a schema and to call `request(path, method, data)` */
69
- method: Method;
60
+ export type ApiRequestForm<API extends ApiEndpoints> = <
61
+ Path extends API['path'],
62
+ Method extends Extract<API, { path: Path }>['method']
63
+ >(a: {
64
+ /** Endpoint contract used to select a schema and submit the request. */
65
+ endpoint: ApiEndpointContract<API, Path, Method>;
70
66
 
71
67
  /**
72
68
  * Optional lifecycle hooks for consumers.
@@ -127,37 +123,30 @@ export type ApiRequestForm<
127
123
  * If you pass `onSubmit` / `onUpdate` here it will override the defaults in this helper.
128
124
  */
129
125
  formProps?: Parameters<typeof superForm<ValidInput<API, Path, Method>>>[1];
130
-
131
- // /**
132
- // * Schema override to be used in place of the schemas from the creation of
133
- // * the form function
134
- // */
135
- // schema?: NonNullable<Schemas[Path]>[Method];
136
126
  }) => SuperForm<ValidInput<API, Path, Method>>;
137
127
 
138
128
  /**
139
129
  * Build an endpoint-specific Superforms factory.
140
130
  *
141
- * @param schemas A `{[path]: {[method]: schema}}` mapping used to pick the Valibot schema for each endpoint.
142
- * @param request An API request function that performs `(path, method, data)` and returns a fetch-like `Response`.
131
+ * @param request An API request function that performs `(endpoint, data)` and returns a fetch-like `Response`.
143
132
  *
144
- * @returns A function that creates a `SuperForm` for a particular `{path, method}` pair.
133
+ * @returns A function that creates a `SuperForm` for a particular endpoint contract.
145
134
  */
146
- export function createFormFunction<API extends ApiEndpoints>(
147
- schemas: Partial<Record<API['path'], Partial<Record<HTTPMethod, ApiSchema>>>>,
148
- request: ApiRequestFunction<API>
149
- ): ApiRequestForm<API> {
150
- return ({ path, method, actions, defaultValue, formProps, bind }) => {
151
- const schema = schemas[path]?.[method];
152
- if (schema === undefined) throw new Error('Invalid schema for form');
135
+ export function createFormFunction<API extends ApiEndpoints>(request: ApiRequestFunction<API>): ApiRequestForm<API> {
136
+ return ({ endpoint, actions, defaultValue, formProps, bind }) => {
137
+ const schema = endpoint.schema;
153
138
 
154
139
  const defaultFormData = defaults(defaultValue, valibot(schema));
155
140
  const boundFormData =
156
141
  bind && schema.async === false
157
- ? (safeParse(schema, bind.get(defaultFormData)).output as ValidInput<API, typeof path, typeof method>)
142
+ ? (safeParse(schema, bind.get(defaultFormData)).output as ValidInput<
143
+ API,
144
+ typeof endpoint.path,
145
+ typeof endpoint.method
146
+ >)
158
147
  : defaultFormData;
159
148
 
160
- const form = superForm<ValidInput<API, typeof path, typeof method>>(boundFormData, {
149
+ const form = superForm<ValidInput<API, typeof endpoint.path, typeof endpoint.method>>(boundFormData, {
161
150
  SPA: true,
162
151
  resetForm: true,
163
152
  applyAction: false, // Prevents the form redirecting to the same page on submit
@@ -186,10 +175,10 @@ export function createFormFunction<API extends ApiEndpoints>(
186
175
  if (!props.form.valid) return;
187
176
 
188
177
  // console.log('onUpdate: sending data', form.data);
189
- const res = await request(path, method, props.form.data);
178
+ const res = await request(endpoint, props.form.data);
190
179
 
191
180
  if (res.ok === false) {
192
- const body = (await res.json()) as FormErrorBody<API, typeof path, typeof method>;
181
+ const body = (await res.json()) as FormErrorBody<API, typeof endpoint.path, typeof endpoint.method>;
193
182
 
194
183
  // TODO set some kind of overall form error if there is no field
195
184
  if (!body.field) {
@@ -204,7 +193,7 @@ export function createFormFunction<API extends ApiEndpoints>(
204
193
  } else {
205
194
  setMessage(props.form, 'Success');
206
195
  if (actions && actions.onSuccess) {
207
- const body = (await res.json()) as ApiSuccessBody<API, typeof path, typeof method>;
196
+ const body = (await res.json()) as ApiSuccessBody<API, typeof endpoint.path, typeof endpoint.method>;
208
197
  await actions.onSuccess({ ...props, body });
209
198
  }
210
199
  }
@@ -219,7 +208,11 @@ export function createFormFunction<API extends ApiEndpoints>(
219
208
  */
220
209
  const bindGet = async () => {
221
210
  const formData = get(form.form);
222
- return (await safeParseAsync(schema, bind.get(formData))).output as ValidInput<API, typeof path, typeof method>;
211
+ return (await safeParseAsync(schema, bind.get(formData))).output as ValidInput<
212
+ API,
213
+ typeof endpoint.path,
214
+ typeof endpoint.method
215
+ >;
223
216
  };
224
217
 
225
218
  form.form.subscribe((v) => {
@@ -1,5 +1,6 @@
1
1
  import { SvelteMap } from 'svelte/reactivity';
2
- import type { ApiEndpoints, ApiRequestFunction, ApiInput, ApiResponse } from 'ts-ag';
2
+ import { endpointKey } from 'ts-ag';
3
+ import type { ApiEndpointContract, ApiEndpoints, ApiRequestFunction, ApiInput, ApiResponse } from 'ts-ag';
3
4
 
4
5
  import { Cache } from './cache.svelte.js';
5
6
  import { Requestor, Query } from './query.svelte.js';
@@ -29,10 +30,24 @@ export type BatchDetails<
29
30
  };
30
31
 
31
32
  export type ApiBatchDetails<API extends ApiEndpoints> = {
32
- [Path in API['path']]?: {
33
- [Method in Extract<API, { path: Path }>['method']]?: BatchDetails<API, Path, Method>;
34
- };
35
- };
33
+ [Path in API['path']]: {
34
+ [Method in Extract<API, { path: Path }>['method']]: {
35
+ endpoint: ApiEndpointContract<API, Path, Method>;
36
+ details: BatchDetails<API, Path, Method>;
37
+ };
38
+ }[Extract<API, { path: Path }>['method']];
39
+ }[API['path']][];
40
+
41
+ export function batchEndpoint<
42
+ API extends ApiEndpoints,
43
+ Path extends API['path'],
44
+ Method extends Extract<API, { path: Path }>['method']
45
+ >(
46
+ endpoint: ApiEndpointContract<API, Path, Method>,
47
+ details: BatchDetails<API, Path, Method>
48
+ ): ApiBatchDetails<API>[number] {
49
+ return { endpoint, details };
50
+ }
36
51
 
37
52
  /**
38
53
  * Helper function to use once so that creating queries is easier.
@@ -45,21 +60,23 @@ export function createQueryFunction<API extends ApiEndpoints>(
45
60
  request: ApiRequestFunction<API>,
46
61
  batchDetails: ApiBatchDetails<API>
47
62
  ) {
63
+ // eslint-disable-next-line
64
+ const batchDetailsByEndpoint = new Map(batchDetails.map((entry) => [endpointKey(entry.endpoint), entry.details]));
65
+
48
66
  return <Path extends API['path'], Method extends Extract<API, { path: Path }>['method']>(
49
- path: Path,
50
- method: Method,
67
+ endpoint: ApiEndpointContract<API, Path, Method>,
51
68
  input: ApiInput<API, Path, Method>,
52
69
  opts?: ConstructorParameters<typeof Query<API, Path, Method>>[0]['opts']
53
70
  ): Query<API, Path, Method> => {
54
- const queryKey = cacheKey(path, method, input);
71
+ const queryKey = cacheKey(endpoint, input);
55
72
  if (!queries.has(queryKey)) {
56
- const key = batchQueryKey(path, method);
73
+ const key = batchQueryKey(endpoint);
57
74
  if (!requestors.has(key)) {
58
- requestors.set(key, new Requestor(path, method, request, cache, batchDetails[path]?.[method]));
75
+ requestors.set(key, new Requestor(endpoint, request, cache, batchDetailsByEndpoint.get(key)));
59
76
  }
60
77
  const requestor = requestors.get(key)!;
61
78
 
62
- queries.set(queryKey, new Query<API, Path, Method>({ path, method, input, requestor, cache, opts }));
79
+ queries.set(queryKey, new Query<API, Path, Method>({ endpoint, input, requestor, cache, opts }));
63
80
  }
64
81
  const query = queries.get(queryKey)!;
65
82
 
@@ -1,4 +1,4 @@
1
- import { createApiRequest, type ApiEndpoints } from 'ts-ag';
1
+ import { createApiRequest, type ApiEndpointContract, type ApiEndpoints } from 'ts-ag';
2
2
  import * as v from 'valibot';
3
3
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
4
 
@@ -17,11 +17,11 @@ type UsersApi = {
17
17
 
18
18
  const API_URL = 'https://api.example.test';
19
19
 
20
- const schemas = {
21
- '/users': {
22
- POST: v.union([v.object({ id: v.number(), group: v.optional(v.string()) }), v.object({ ids: v.array(v.number()) })])
23
- }
24
- };
20
+ const users_POST = {
21
+ path: '/users',
22
+ method: 'POST',
23
+ schema: v.union([v.object({ id: v.number(), group: v.optional(v.string()) }), v.object({ ids: v.array(v.number()) })])
24
+ } satisfies ApiEndpointContract<UsersApi, '/users', 'POST'>;
25
25
 
26
26
  function getUserId(input: UsersApi['requestInput']): number {
27
27
  return 'id' in input ? input.id : input.ids[0]!;
@@ -49,39 +49,37 @@ describe('createQueryFunction', () => {
49
49
 
50
50
  it('returns the same query instance for the same path, method, and input', async () => {
51
51
  const { createQueryFunction } = await import('./entrypoint.svelte.js');
52
- const request = createApiRequest<UsersApi>(schemas, API_URL, 'test');
53
- const createQuery = createQueryFunction<UsersApi>(request, {});
52
+ const request = createApiRequest<UsersApi>(API_URL, 'test');
53
+ const createQuery = createQueryFunction<UsersApi>(request, []);
54
54
 
55
- const query1 = createQuery('/users', 'POST', { id: 1 });
56
- const query2 = createQuery('/users', 'POST', { id: 1 });
57
- const query3 = createQuery('/users', 'POST', { id: 2 });
55
+ const query1 = createQuery(users_POST, { id: 1 });
56
+ const query2 = createQuery(users_POST, { id: 1 });
57
+ const query3 = createQuery(users_POST, { id: 2 });
58
58
 
59
59
  expect(query1).toBe(query2);
60
60
  expect(query3).not.toBe(query1);
61
61
  });
62
62
 
63
63
  it('reuses requestors so separate queries can batch together', async () => {
64
- const { createQueryFunction } = await import('./entrypoint.svelte.js');
64
+ const { batchEndpoint, createQueryFunction } = await import('./entrypoint.svelte.js');
65
65
  const fetchMock = vi.fn(async () => jsonFetchResponse({ 1: 'one', 2: 'two' }));
66
66
  vi.stubGlobal('fetch', fetchMock);
67
67
  vi.stubGlobal('fetch', fetchMock);
68
- const request = createApiRequest<UsersApi>(schemas, API_URL, 'test');
69
- const createQuery = createQueryFunction<UsersApi>(request, {
70
- '/users': {
71
- POST: {
72
- canBatch: () => 'users',
73
- batchInput: (inputs) => ({ ids: inputs.map(getUserId) }),
74
- unBatchOutput: async (inputs, outputs) => {
75
- return inputs.map(() => {
76
- return outputs;
77
- });
78
- }
68
+ const request = createApiRequest<UsersApi>(API_URL, 'test');
69
+ const createQuery = createQueryFunction<UsersApi>(request, [
70
+ batchEndpoint(users_POST, {
71
+ canBatch: () => 'users',
72
+ batchInput: (inputs) => ({ ids: inputs.map(getUserId) }),
73
+ unBatchOutput: async (inputs, outputs) => {
74
+ return inputs.map(() => {
75
+ return outputs;
76
+ });
79
77
  }
80
- }
81
- });
78
+ })
79
+ ]);
82
80
 
83
- const query1 = createQuery('/users', 'POST', { id: 1 });
84
- const query2 = createQuery('/users', 'POST', { id: 2 });
81
+ const query1 = createQuery(users_POST, { id: 1 });
82
+ const query2 = createQuery(users_POST, { id: 2 });
85
83
 
86
84
  const p1 = query1.request();
87
85
  const p2 = query2.request();