@jskit-ai/agent-docs 0.1.126 → 0.1.127

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.
@@ -0,0 +1,624 @@
1
+ # packages/http-web
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/http-web`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/http-web/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/client/bulkActions.js`
18
+ Exports
19
+ - `defineCrudListBulkActions(actions = [])`
20
+ Local functions
21
+ - `normalizeCrudListBulkAction(rawAction = {}, index = 0)`
22
+
23
+ ### `src/client/components/CrudAddEditScreen.vue`
24
+ Exports
25
+ - None
26
+ Local functions
27
+ - `resolveFieldErrors(fieldKey)`
28
+ - `resolveCancelTo(target = cancelTo.value)`
29
+
30
+ ### `src/client/components/CrudDeleteAction.vue`
31
+ Exports
32
+ - None
33
+ Local functions
34
+ - `closeDialog()`
35
+ - `handleDialogModelUpdate(isOpen)`
36
+
37
+ ### `src/client/components/CrudListBulkActionSurface.vue`
38
+ Exports
39
+ - None
40
+ Local functions
41
+ - `clearSelection()`
42
+ - `execute(action = {})`
43
+ - `isActionDisabled(action = {})`
44
+ - `isActionExecuting(action = {})`
45
+
46
+ ### `src/client/components/CrudListDateFilterControl.vue`
47
+ Exports
48
+ - None
49
+ Local functions
50
+ - `restoreFocus()`
51
+ - `openMenu()`
52
+ - `closeMenu()`
53
+ - `clearDate()`
54
+ - `selectDate(value)`
55
+ - `handleActivatorKeydown(event)`
56
+
57
+ ### `src/client/components/CrudListFilterSurface.vue`
58
+ Exports
59
+ - None
60
+ Local functions
61
+ - `optionItems(filter = {})`
62
+ - `placeholder(filter = {}, fallback = "")`
63
+ - `clearChip(chip = {})`
64
+ - `clearFilters()`
65
+
66
+ ### `src/client/components/CrudListRecordActionMenu.vue`
67
+ Exports
68
+ - None
69
+ Local functions
70
+ - `isRowActionLoading(action = {})`
71
+ - `isRowActionDisabled(action = {})`
72
+ - `runRowAction(action = {})`
73
+
74
+ ### `src/client/components/CrudListScreen.vue`
75
+ Exports
76
+ - None
77
+ Local functions
78
+ - `resolveListRecordTitle(record)`
79
+ - `formatListCardValue(value)`
80
+ - `resolveViewLocation(record)`
81
+ - `resolveEditLocation(record)`
82
+ - `hasRowActionsFor(record, index)`
83
+ - `isBulkRowSelected(row = {})`
84
+ - `setBulkRowSelected(row = {}, selected = true)`
85
+ - `allSelectableRowsSelected()`
86
+ - `someSelectableRowsSelected()`
87
+ - `setSelectableRowsSelected(selected = true)`
88
+
89
+ ### `src/client/components/CrudViewScreen.vue`
90
+ Exports
91
+ - None
92
+
93
+ ### `src/client/composables/crud/crudBindingSupport.js`
94
+ Exports
95
+ - `CRUD_BINDING_MODE_ROUTE`
96
+ - `CRUD_BINDING_MODE_MERGE`
97
+ - `CRUD_BINDING_MODE_EXPLICIT`
98
+ - `CRUD_BINDING_MODE_NONE`
99
+ - `normalizeCrudBindingMode(value = "")`
100
+ - `normalizeCrudBindingConfig(binding = {})`
101
+ - `resolveCrudBindingValues(values, context = {})`
102
+ - `resolveCrudBoundValues({ binding = {}, routeValues = {}, context = {} } = {})`
103
+
104
+ ### `src/client/composables/crud/crudHttpClientSupport.js`
105
+ Exports
106
+ - `CRUD_API_ACCESS_AUTHENTICATED`
107
+ - `CRUD_API_ACCESS_PUBLIC`
108
+ - `normalizeCrudApiAccess(value = "")`
109
+ - `resolveCrudHttpClient(resource = null, { client = null } = {})`
110
+
111
+ ### `src/client/composables/crud/crudJsonApiTransportSupport.js`
112
+ Exports
113
+ - `inferCrudJsonApiTransport(resource = null, { mode = "", operationName = "" } = {})`
114
+ - `inferCrudLookupJsonApiTransport({ namespace = "", apiPath = "" } = {})`
115
+ - `resolveCrudJsonApiTransport(transport = null, resource = null, options = {})`
116
+ - `resolveLookupFieldMap(resource = null)`
117
+ Local functions
118
+ - `isRecord(value)`
119
+ - `resolveSchemaFieldDefinitions(definition = null)`
120
+ - `isJsonApiResourceTransport(transport = null)`
121
+ - `resolveCrudJsonApiResourceType(resource = null)`
122
+
123
+ ### `src/client/composables/crud/crudLookupFieldLabelSupport.js`
124
+ Exports
125
+ - `resolveLookupItemLabel(item = {}, labelKey = "")`
126
+ - `resolveLookupFieldDisplayValue(record = {}, field = {}, relationKind = "", valueKey = "", labelKey = "")`
127
+ - `resolveRecordTitle(record = {}, { fallbackKey = "", defaultValue = DEFAULT_RECORD_TITLE } = {})`
128
+ Local functions
129
+ - `hasDisplayValue(value)`
130
+ - `resolveComposedLabel(source = {}, candidates = LOOKUP_LABEL_COMPOSITION_CANDIDATES)`
131
+ - `resolveLookupFieldDescriptor(field = {}, relationKind = "", valueKey = "", labelKey = "")`
132
+ - `resolveFallbackLookupKey(key = "")`
133
+
134
+ ### `src/client/composables/crud/crudLookupFieldRuntime.js`
135
+ Exports
136
+ - `createCrudLookupFieldRuntime({ formFields = [], adapter = null, recordIdParam = "recordId", queryKeyPrefix = [], placementSourcePrefix = "", lookupContainerKey = "lookups" } = {})`
137
+ Local functions
138
+ - `normalizeQueryKeyPrefix(value)`
139
+ - `isSameLookupValue(left, right)`
140
+ - `normalizeLookupValue(value)`
141
+ - `createSelectedLookupItem(selectedValue, selectedRecord = {}, entry = {})`
142
+
143
+ ### `src/client/composables/crud/crudSchemaFormHelpers.js`
144
+ Exports
145
+ - `normalizeCrudFormFields(fields = [])`
146
+ - `createCrudFormModel(fields = [])`
147
+ - `buildCrudFormPayload(fields = [], model = {})`
148
+ - `applyCrudPayloadToForm(fields = [], model = {}, payload = {})`
149
+ - `resolveCrudRouteBoundFieldValues(fields = [], routeParams = {})`
150
+ - `applyCrudRouteBoundFieldValues(fields = [], target = {}, routeParams = {})`
151
+ - `resolveCrudFieldErrors(fieldErrors = {}, fieldKey = "")`
152
+ Local functions
153
+ - `resolveStableFieldErrorList(fieldKey, message)`
154
+ - `resolveFormFieldType(field = {})`
155
+ - `resolveFormFieldFormat(field = {})`
156
+ - `isNullableFormField(field = {})`
157
+ - `isLookupFormField(field = {})`
158
+ - `padDateTimePart(value)`
159
+ - `normalizeTimeWhitespace(value)`
160
+ - `toTimeInputValue(value)`
161
+ - `toDateTimeLocalInputValue(value)`
162
+ - `toDateInputValue(value)`
163
+ - `applyDateTimePrecision(isoValue, temporalPrecision)`
164
+ - `toIsoUtcDateTimeValue(value, temporalPrecision)`
165
+ - `resolveFormFieldInitialValue(field = {})`
166
+ - `shouldSerializeClearedFieldAsNull(field = {})`
167
+
168
+ ### `src/client/composables/internal/crudListFilterLookupSupport.js`
169
+ Exports
170
+ - `normalizeLookupQueryKeyPrefix(value = [])`
171
+ - `normalizeLookupLabelResolverMap(value = {})`
172
+ - `normalizeLookupRequestQueryParamsMap(value = {})`
173
+ - `resolveLookupSelectedValues(filter = {}, rawValue = undefined)`
174
+ - `createLookupOptionsFromItems(items = [], filter = {}, labelResolver = null)`
175
+ - `mergeSelectedLookupOptions(options = [], selectedValues = [], cachedOptions = new Map())`
176
+ - `resolveLookupOptionLabel(options = [], cachedOptions = new Map(), value = "", fallback = "Option")`
177
+ Local functions
178
+ - `createLookupOptionFromItem(item = {}, filter = {}, labelResolver = null)`
179
+
180
+ ### `src/client/composables/internal/crudListParentTitleSupport.js`
181
+ Exports
182
+ - `resolveCrudListParentDescriptor({ resource = {}, route = null, recordIdParam = "recordId" } = {})`
183
+ - `resolveCrudListParentRecordTitle(record = {}, descriptor = null)`
184
+ - `resolveCrudListParentTitleFromItems(items = [], descriptor = null)`
185
+ Local functions
186
+ - `singularizeLabel(value = "")`
187
+ - `toTitleLabel(value = "")`
188
+ - `resolveEntityLabel(routeParamKey = "", relationNamespace = "")`
189
+ - `resolveLookupFieldMeta(resource = {}, fieldKey = "")`
190
+
191
+ ### `src/client/composables/internal/useOperationScope.js`
192
+ Exports
193
+ - `useOperationScope({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", placementSource = "http-web.operation", apiSuffix = "", model, readEnabled = true, queryKeyFactory = null, permissionSets = {}, realtime = null } = {})`
194
+ Local functions
195
+ - `normalizePermissionSets(permissionSets = {})`
196
+ - `hasAnyPermissions(permissionSets = {})`
197
+
198
+ ### `src/client/composables/records/useAddEdit.js`
199
+ Exports
200
+ - `useAddEdit({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", resource = null, apiSuffix = "", queryKeyFactory = null, viewPermissions = [], savePermissions = [], readMethod = "GET", readEnabled = true, writeMethod = "PATCH", client = null, transport = null, requestRecovery = null, requestRecoveryLabel = "Resource", placementSource = "http-web.add-edit", fallbackLoadError = "Unable to load resource.", fallbackSaveError = "Unable to save resource.", fieldErrorKeys = [], clearOnRouteChange = true, model, input, mapLoadedToModel, buildRawPayload, buildSavePayload, onSaveSuccess, requestQueryParams = null, recordIdParam = "recordId", routeParams = null, routeRecordId = null, apiUrlTemplate = "", viewUrlTemplate = "", listUrlTemplate = "", saveRecordIdSelector = null, messages = {}, realtime = null, adapter = null } = {})`
201
+
202
+ ### `src/client/composables/records/useCrudAddEdit.js`
203
+ Exports
204
+ - `useCrudAddEdit({ resource = null, operationName = "", formFields = [], addEditOptions = {}, saveSuccess = {}, fieldBinding = null, createModel = null, buildPayload = null, mapPayloadToModel = null, input = null } = {})`
205
+ Local functions
206
+ - `normalizeFieldErrorKeys(keys = [])`
207
+ - `normalizeSaveSuccessOptions(options = {})`
208
+
209
+ ### `src/client/composables/records/useCrudList.js`
210
+ Exports
211
+ - `useCrudList({ resource = null, requestQueryParams = null, parentBinding = null, recordIdParam = "recordId", route = null, realtime = undefined, ...listOptions } = {})`
212
+ Local functions
213
+ - `resolveRequestQueryParamsInput(requestQueryParams, context = {})`
214
+ - `resolveCrudParentRequestQueryParams({ resource = {}, route = null, recordIdParam = "recordId" } = {})`
215
+
216
+ ### `src/client/composables/records/useCrudView.js`
217
+ Exports
218
+ - `useCrudView({ resource = null, paramBinding = null, route = null, ...viewOptions } = {})`
219
+
220
+ ### `src/client/composables/records/useList.js`
221
+ Exports
222
+ - `useList({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", queryKeyFactory = null, viewPermissions = [], readEnabled = true, placementSource = "http-web.list", fallbackLoadError = "Unable to load list.", initialPageParam = null, getNextPageParam, selectItems, client = null, transport = null, requestOptions, queryOptions, requestRecovery, requestRecoveryLabel = "List", realtime = null, adapter = null, recordIdParam = "recordId", recordIdSelector = null, viewUrlTemplate = "", editUrlTemplate = "", search = null, queryParams = null, routeQueryValueResolvers = null, requestQueryParams = null, requestFieldsets = null, syncToRoute = false } = {})`
223
+
224
+ ### `src/client/composables/records/useView.js`
225
+ Exports
226
+ - `useView({ resource = null, ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", queryKeyFactory = null, viewPermissions = [], readMethod = "GET", readEnabled = true, client = null, transport = null, requestRecovery = null, requestRecoveryLabel = "Resource", placementSource = "http-web.view", fallbackLoadError = "Unable to load resource.", notFoundStatuses = [404], notFoundMessage = "Record not found.", model, mapLoadedToModel, requestQueryParams = null, requestFieldsets = null, recordIdParam = "recordId", routeParams = null, routeRecordId = null, apiUrlTemplate = "", listUrlTemplate = "", editUrlTemplate = "", includeRecordIdInQueryKey = false, realtime = undefined, adapter = null } = {})`
227
+
228
+ ### `src/client/composables/runtime/addEditUiRuntime.js`
229
+ Exports
230
+ - `createAddEditUiRuntime({ recordIdParam = "recordId", routeParams = null, routeParamNames = null, routePath = "", routeRecordId = null, apiUrlTemplate = "", viewUrlTemplate = "", listUrlTemplate = "", saveRecordIdSelector = null } = {})`
231
+ Local functions
232
+ - `toResolvedRecordId({ routeParams, recordIdParam, routeRecordId })`
233
+ - `resolveSavedRecordId(payload, saveRecordIdSelector)`
234
+
235
+ ### `src/client/composables/runtime/listUiRuntime.js`
236
+ Exports
237
+ - `createListUiRuntime({ items, isInitialLoading, recordIdParam = "recordId", recordIdSelector = null, routeParams = null, routeParamNames = null, routePath = "", viewUrlTemplate = "", editUrlTemplate = "" } = {})`
238
+ Local functions
239
+ - `resolveRecordId(record, recordIdSelector)`
240
+
241
+ ### `src/client/composables/runtime/modelStateHelpers.js`
242
+ Exports
243
+ - `captureModelSnapshot(model)`
244
+ - `restoreModelSnapshot(model, snapshot)`
245
+ - `watchResourceModelState({ resource, model, mapLoadedToModel, resolveMapContext = null } = {})`
246
+ Local functions
247
+ - `isObjectLike(value)`
248
+ - `deepClone(value)`
249
+
250
+ ### `src/client/composables/runtime/operationAdapters.js`
251
+ Exports
252
+ - `createWebOperationAdapter()`
253
+ - `resolveOperationAdapter(adapter, { context = "http-web operation adapter" } = {})`
254
+
255
+ ### `src/client/composables/runtime/operationUiHelpers.js`
256
+ Exports
257
+ - `setupRouteChangeCleanup({ enabled = true, route = null, feedback = null, fieldBag = null } = {})`
258
+ - `setupOperationErrorReporting({ enabled = true, source = "http-web.operation", loadError = null, notFoundError = null, loadActionFactory = null, notFoundActionFactory = null, loadChannel = "", notFoundChannel = "", loadSeverity = "error", notFoundSeverity = "warning", dedupeWindowMs = 2000 } = {})`
259
+ Local functions
260
+ - `normalizeMessage(value)`
261
+
262
+ ### `src/client/composables/runtime/operationValidationHelpers.js`
263
+ Exports
264
+ - `validateOperationInput({ input, rawPayload = {}, fieldBag = null, feedback = null, validationMessage = "Validation failed." } = {})`
265
+
266
+ ### `src/client/composables/runtime/useAddEditCore.js`
267
+ Exports
268
+ - `useAddEditCore({ model, resource, queryKey, canSave, fieldBag, feedback, input, mapLoadedToModel, buildRawPayload, buildSavePayload, onSaveSuccess, messages = {} } = {})`
269
+
270
+ ### `src/client/composables/runtime/useCommandCore.js`
271
+ Exports
272
+ - `useCommandCore({ model, resource, writeMethod = "POST", canRun, fieldBag, feedback, input, buildRawPayload, buildCommandPayload, buildCommandOptions, onRunSuccess, onRunError, suppressSuccessMessage = false, messages = {} } = {})`
273
+
274
+ ### `src/client/composables/runtime/useEndpointResource.js`
275
+ Exports
276
+ - `buildEndpointReadRequestOptions({ method = "GET", query = null, transport = null } = {})`
277
+ - `buildEndpointWriteRequestOptions({ method = "PATCH", body = undefined, options = null, transport = null } = {})`
278
+ - `useEndpointResource({ queryKey, path = "", enabled = true, client = null, readMethod = "GET", writeMethod = "PATCH", readQuery = null, transport = null, refreshOnPull = false, realtime = null, queryOptions = null, mutationOptions = null, requestRecovery = null, requestRecoveryLabel = "Request", fallbackLoadError = "Unable to load resource.", fallbackSaveError = "Unable to save resource." } = {})`
279
+ Local functions
280
+ - `resolveRequestQuery(value = null)`
281
+
282
+ ### `src/client/composables/runtime/useFieldErrorBag.js`
283
+ Exports
284
+ - `useFieldErrorBag(keys = [])`
285
+ Local functions
286
+ - `normalizeKeys(keys)`
287
+
288
+ ### `src/client/composables/runtime/useListCore.js`
289
+ Exports
290
+ - `buildListRequestOptions({ requestOptions = null, transport = null, pageParam = null } = {})`
291
+ - `useListCore({ queryKey, path = "", enabled = true, client = null, transport = null, initialPageParam = null, getNextPageParam, selectItems, requestOptions = null, queryOptions = null, requestRecovery = null, requestRecoveryLabel = "List", fallbackLoadError = "Unable to load list." } = {})`
292
+ Local functions
293
+ - `resolveRequestOptionsObject(value = null)`
294
+ - `resolveListRequestMethod(requestOptions = null)`
295
+
296
+ ### `src/client/composables/runtime/useUiFeedback.js`
297
+ Exports
298
+ - `useUiFeedback({ initialType = "success", source = "http-web.ui-feedback", successChannel = "", errorChannel = "", dedupeWindowMs = 2000 } = {})`
299
+
300
+ ### `src/client/composables/runtime/useViewCore.js`
301
+ Exports
302
+ - `useViewCore({ resource, model, canView, mapLoadedToModel, notFoundStatuses = [404], notFoundMessage = "Record not found." } = {})`
303
+ Local functions
304
+ - `normalizeStatusList(value)`
305
+
306
+ ### `src/client/composables/runtime/viewUiRuntime.js`
307
+ Exports
308
+ - `createViewUiRuntime({ recordIdParam = "recordId", routeParams = null, routeParamNames = null, routePath = "", routeRecordId = null, apiUrlTemplate = "", listUrlTemplate = "", editUrlTemplate = "" } = {})`
309
+ Local functions
310
+ - `resolveRecordId({ routeParams, recordIdParam, routeRecordId })`
311
+
312
+ ### `src/client/composables/support/errorMessageHelpers.js`
313
+ Exports
314
+ - `toQueryErrorMessage(error, fallbackMessage = "", defaultMessage = "Request failed.")`
315
+ - `toUiErrorMessage(error, fallbackMessage = "", defaultMessage = "Request failed.")`
316
+ Local functions
317
+ - `normalizeErrorStatus(error)`
318
+ - `isGenericTransportMessage(error)`
319
+
320
+ ### `src/client/composables/support/listQueryParamSupport.js`
321
+ Exports
322
+ - `normalizeListSyncToRouteConfig(syncToRoute = false, { defaultSearchParam = "q" } = {})`
323
+ - `resolveQueryParamDescriptors(queryParams, context = {}, { routeValueResolvers = null } = {})`
324
+ - `resolveActiveQueryParamEntries(descriptors = [])`
325
+ - `resolveWritableQueryParamBindings(descriptors = [])`
326
+ - `buildQueryParamEntriesToken(entries = [])`
327
+ - `parseRouteBindingValue(binding, routeQueryValue, context = {})`
328
+ - `areQueryParamBindingValuesEqual(left, right)`
329
+ - `buildRouteQueryCompareToken(query = {})`
330
+ - `mergeManagedQueryParamKeyHistory(history = [], keys = [])`
331
+ - `resolveRouteSyncManagedKeys({ searchEnabled = false, searchParam = "q", syncSearch = false, syncQueryParams = false, declaredKeys = [], keyHistory = [] } = {})`
332
+ Local functions
333
+ - `normalizeQueryParamKey(value)`
334
+ - `normalizeQueryParamValues(value)`
335
+ - `resolveQueryParamsInput(queryParams, context = {})`
336
+ - `resolveQueryParamBindingType(value)`
337
+ - `resolveArrayQueryParamItemType(values = [])`
338
+ - `createWritableQueryParamBinding({ source = {}, rawKey = "", rawValue = null, key = "", resolveRouteValue = null } = {})`
339
+ - `firstRouteQueryValue(value)`
340
+ - `normalizeRouteQueryValues(value)`
341
+ - `parseRouteBooleanValue(value, fallback = false)`
342
+ - `parseRouteNumberValue(value, fallback = null)`
343
+ - `parseRouteDateValue(value, fallback = null)`
344
+ - `parseRouteQueryItemValue(value, itemType = QUERY_PARAM_BINDING_TYPE_TEXT, fallback = null)`
345
+ - `areQueryParamBindingItemsEqual(left, right)`
346
+
347
+ ### `src/client/composables/support/listSearchSupport.js`
348
+ Exports
349
+ - `normalizeListSearchConfig(value = {})`
350
+ - `matchesLocalSearch(item = {}, query = "", searchFields = [])`
351
+ Local functions
352
+ - `normalizeSearchableValue(value)`
353
+
354
+ ### `src/client/composables/support/refValueHelpers.js`
355
+ Exports
356
+ - `resolveEnabledRef(value)`
357
+ - `resolveTextRef(value)`
358
+
359
+ ### `src/client/composables/support/requestQueryRuntimeSupport.js`
360
+ Exports
361
+ - `buildRequestQueryObject(entries = [], { fieldsets = null } = {})`
362
+ - `createRequestQueryRuntime({ requestQueryParams = null, requestFieldsets = null, context = null, sourceQueryKey = null } = {})`
363
+ Local functions
364
+ - `resolveRequestQueryContext(context = null)`
365
+ - `resolveRequestQueryBaseKey(sourceQueryKey = null)`
366
+ - `resolveRequestFieldsets(requestFieldsets = null, context = {})`
367
+ - `appendRequestQueryValue(target = {}, key = "", values = [])`
368
+
369
+ ### `src/client/composables/support/resourceLoadStateHelpers.js`
370
+ Exports
371
+ - `buildRequestRecoveryMeta(requestRecovery = null, defaults = {})`
372
+ - `hasResolvedQueryData({ query = null, data = null } = {})`
373
+ - `mergeQueryMeta(queryOptions = null, meta = {})`
374
+ - `mergeRequestRecoveryQueryMeta(queryOptions = null, requestRecovery = null, defaults = {})`
375
+ Local functions
376
+ - `normalizeText(value = "")`
377
+ - `firstNormalizedText(...values)`
378
+ - `firstNonNegativeFiniteNumber(...values)`
379
+ - `normalizePlainObject(value = null)`
380
+ - `normalizeRequestRecoveryInput(requestRecovery = null)`
381
+ - `normalizeRequestRecoveryMethod(value = "")`
382
+ - `isRequestRecoveryMetaDisabled(sourceJskitMeta = {})`
383
+ - `hasUsableMetaValue(source = {}, key = "")`
384
+ - `resolveRequestRecoveryDefaults(queryOptions = null, defaults = {})`
385
+
386
+ ### `src/client/composables/support/routeTemplateHelpers.js`
387
+ Exports
388
+ - `normalizeRouteParamName(value = "", { context = "http-web route param" } = {})`
389
+ - `toRouteParamValue(value)`
390
+ - `resolveRouteParamsSource(source = null)`
391
+ - `resolveRouteParamNamesSource(source = [])`
392
+ - `resolveRoutePathnameSource(source = "")`
393
+ - `resolveScopedRoutePathname({ currentPathname = "/", params = {}, orderedParamNames = [], anchorParamName = "", anchorParamValue = "", anchorMode = "at" } = {})`
394
+ - `resolveRouteTemplatePath(routeTemplate = "", params = {})`
395
+ - `resolveRouteTemplateLocation(routeTemplate = "", { params = {}, currentPathname = "/" } = {})`
396
+ - `extractRouteParamNames(pathTemplate = "")`
397
+ - `resolveRouteParamNamesInOrder(route = null)`
398
+ Local functions
399
+ - `resolveRouteSourceValue(source = null)`
400
+ - `normalizeRouteParamNameList(value = [])`
401
+ - `normalizeRoutePathname(value = "")`
402
+ - `segmentMatchesParamValue(segment = "", paramValue = "")`
403
+ - `findRouteParamSegmentIndex(segments = [], paramValue = "", fromIndex = 0)`
404
+ - `normalizePathPrefix(segments = [], endIndex = -1)`
405
+ - `resolveAnchorEndIndex(segmentIndex = -1, totalSegments = 0, anchorMode = "at")`
406
+
407
+ ### `src/client/composables/support/scopeHelpers.js`
408
+ Exports
409
+ - `asPlainObject(value)`
410
+ - `normalizePermissions(value)`
411
+ - `resolvePermissionAccess(access, normalizedPermissions = [])`
412
+ - `normalizeAccessMode(value = "auto")`
413
+ - `resolveAccessModeEnabled(accessMode = "auto", { hasPermissionRequirements = false } = {})`
414
+ - `ensureAccessModeCompatibility({ accessMode = "auto", hasPermissionRequirements = false, caller = "http-web" } = {})`
415
+ - `resolveApiSuffix(apiSuffix, context = {})`
416
+ - `resolveEnabled(value, context = {})`
417
+ - `normalizeOwnershipFilter(value = ROUTE_VISIBILITY_WORKSPACE)`
418
+ - `isScopedOwnershipFilter(ownershipFilter)`
419
+ - `resolveQueryKey(queryKeyFactory, { surfaceId = "", scopeParamValue = "", ownershipFilter = ROUTE_VISIBILITY_WORKSPACE } = {})`
420
+ - `resolveResourceMessages(resource, defaults = {})`
421
+
422
+ ### `src/client/composables/useAccess.js`
423
+ Exports
424
+ - `useAccess({ scopeParamValue = "", enabled = true, access = "always", hasPermissionRequirements = false } = {})`
425
+ Local functions
426
+ - `asPermissionList(value)`
427
+
428
+ ### `src/client/composables/useCommand.js`
429
+ Exports
430
+ - `useCommand({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", runPermissions = [], writeMethod = "POST", client = null, resource: commandResource = null, transport = null, placementSource = "http-web.command", fallbackRunError = "Unable to complete action.", fieldErrorKeys = [], clearOnRouteChange = true, model, input, buildRawPayload, buildCommandPayload, buildCommandOptions, onRunSuccess, onRunError, suppressSuccessMessage = false, messages = {}, realtime = null } = {})`
431
+
432
+ ### `src/client/composables/useCrudAddEditScreen.js`
433
+ Exports
434
+ - `useCrudAddEditScreen({ screen = null, mode = "new", title = "", subtitle = "", saveLabel = "Save", cancelTo = "", resource = null, operationName = "", formFields = [], addEditOptions = {}, saveSuccess = {}, fieldBinding = null, createModel = null, buildPayload = null, mapPayloadToModel = null, input = null, preserveCancelQuery = false } = {})`
435
+ Local functions
436
+ - `normalizeProvidedScreen(screen = null)`
437
+
438
+ ### `src/client/composables/useCrudDeleteAction.js`
439
+ Exports
440
+ - `requireCrudDeleteOperation(resource = null)`
441
+ - `resolveDeleteApiSuffix(screen, apiUrlTemplate = "")`
442
+ - `useCrudDeleteAction({ screen = null, resource = null, resourceNamespace = "", apiUrlTemplate = "", access = "auto", client = null, router: routerOverride = null, fallbackDeleteError = "Unable to delete record." } = {})`
443
+ Local functions
444
+ - `requireCrudViewScreen(screen = null)`
445
+ - `resolveListLocation(screen)`
446
+
447
+ ### `src/client/composables/useCrudListBulkActions.js`
448
+ Exports
449
+ - `useCrudListBulkActions(actions = [], { resolveRecordId = null, resolveContext = null } = {})`
450
+ Local functions
451
+ - `normalizeSelectedId(value = "")`
452
+ - `resolveActionKey(actionOrKey = "")`
453
+
454
+ ### `src/client/composables/useCrudListFilterLookups.js`
455
+ Exports
456
+ - `useCrudListFilterLookups(definitions = {}, { values = {}, adapter = null, recordIdParam = "recordId", queryKeyPrefix = [], placementSourcePrefix = "", requestQueryParams = {}, labelResolvers = {} } = {})`
457
+
458
+ ### `src/client/composables/useCrudListFilters.js`
459
+ Exports
460
+ - `useCrudListFilters(definitions = {}, { labelResolvers = {}, chipLabels = {}, presets = [] } = {})`
461
+ Local functions
462
+ - `normalizeFunctionMap(value = {})`
463
+ - `normalizePresetEntries(presets = [])`
464
+ - `resolvePresetValues(preset = {}, { values = {}, filters = {} } = {})`
465
+ - `createRuntimeFilterValue(filter = {})`
466
+ - `assignFilterValue(values, filter = {}, rawValue)`
467
+ - `resetFilterValue(values, filter = {})`
468
+ - `applyPresetFilterValue(values, filter = {}, rawValue)`
469
+ - `createQueryParams(values, filterEntries = [])`
470
+ - `resolveFilterRouteValue(filter, routeValue, { initial = false } = {})`
471
+ - `createRouteQueryValueResolvers(filterEntries = [])`
472
+ - `resolveAtomicValueLabel(filter = {}, value = "", labelResolvers = {})`
473
+ - `formatDefaultChipLabel(filter = {}, chipValue, labelResolvers = {})`
474
+
475
+ ### `src/client/composables/useCrudListParentTitle.js`
476
+ Exports
477
+ - `useCrudListParentTitle({ listRuntime = null, resource = {}, adapter = null, recordIdParam = "recordId", queryKeyPrefix = ["http-web", "crud-list-parent-title"], placementSource = "http-web.crud-list-parent-title", fallbackLoadError = "Unable to load parent record.", notFoundMessage = "Parent record not found.", route = null, viewRuntimeFactory = useView } = {})`
478
+ Local functions
479
+ - `normalizeQueryKeyPrefix(value = [])`
480
+
481
+ ### `src/client/composables/useCrudListRowActions.js`
482
+ Exports
483
+ - `useCrudListRowActions(actions = [], { resolveRecordId = null, resolveContext = null } = {})`
484
+ Local functions
485
+ - `normalizeRowActionKey(actionOrKey = "")`
486
+ - `normalizeRowId(value = "")`
487
+ - `createExecutionKey(actionKey = "", recordId = "", index = 0)`
488
+ - `asContextObject(value = null)`
489
+
490
+ ### `src/client/composables/useCrudListScreen.js`
491
+ Exports
492
+ - `__testables`
493
+ - `useCrudListScreen({ adapter = null, client = null, resource = null, resourceNamespace = "resource", apiSuffix = "", recordIdParam = "recordId", recordIdSelector = null, titleFallbackFieldKey = "", viewUrlTemplate = "", editUrlTemplate = "", newUrlTemplate = "", recordChangedEvents = [], listFilters = {}, listBulkActions = [], listRowActions = [], syntheticRows = null, routeQueryBlacklist = Object.freeze(["include", "cursor", "limit"]), requestQueryParams = null, requestFieldsets = null, readEnabled = true, requestRecoveryLabel = "Records", fallbackLoadError = "Unable to load records." } = {})`
494
+ Local functions
495
+ - `buildCrudListActionContext(records, client)`
496
+ - `formatCrudListCardValue(value)`
497
+ - `asList(value = [])`
498
+ - `hasSyntheticRowGroups(value = null)`
499
+ - `normalizeSyntheticDisplayRow(source = null, index = 0, placement = "prepend")`
500
+ - `normalizeSyntheticDisplayRows(value = [], placement = "prepend")`
501
+ - `normalizeSyntheticDisplayRowGroups(syntheticRows = null)`
502
+ - `createCrudListDisplayRow(record = {}, index = 0, records = {})`
503
+
504
+ ### `src/client/composables/useCrudViewScreen.js`
505
+ Exports
506
+ - `useCrudViewScreen({ adapter = null, resource = null, resourceNamespace = "resource", apiUrlTemplate = "", recordIdParam = "recordId", titleFallbackFieldKey = "", listUrlTemplate = "", editUrlTemplate = "", recordChangedEvent = "", requestQueryParams = null, requestFieldsets = null, readEnabled = true, queryKeyFactory = null, requestRecoveryLabel = "Record", fallbackLoadError = "Unable to load record.", notFoundMessage = "Record not found." } = {})`
507
+
508
+ ### `src/client/composables/usePagedCollection.js`
509
+ Exports
510
+ - `usePagedCollection({ queryKey, enabled = true, initialPageParam = null, queryFn, getNextPageParam = defaultGetNextPageParam, selectItems = defaultSelectItems, dedupeBy = null, queryOptions = null, fallbackLoadError = "Unable to load list." } = {})`
511
+ - `trimInfinitePagesToFirst(data = null)`
512
+ Local functions
513
+ - `defaultSelectItems(page)`
514
+ - `defaultGetNextPageParam(lastPage)`
515
+ - `normalizeQueryKeyValue(queryKey = null)`
516
+
517
+ ### `src/client/composables/useRealtimeQueryInvalidation.js`
518
+ Exports
519
+ - `resolveOperationRealtimeOptions({ realtime = undefined, fallbackRealtime = null } = {})`
520
+ - `useRealtimeQueryInvalidation({ event = "", enabled = true, matches = null, queryKey = null, onEvent = null } = {})`
521
+ - `useOperationRealtime({ realtime = null, queryKey = null, enabled = true } = {})`
522
+ Local functions
523
+ - `normalizeRealtimeOptions(value = {})`
524
+ - `hasRealtimeEventConfig(value = {})`
525
+ - `resolveEnabled(value)`
526
+ - `toQueryKeyList(value)`
527
+
528
+ ### `src/client/composables/useScopeRuntime.js`
529
+ Exports
530
+ - `useScopeRuntime({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", accessMode = "auto", hasPermissionRequirements = false, placementSource = "http-web.scope-runtime" } = {})`
531
+ Local functions
532
+ - `resolveScopedRouteParamNames(placementContext = null, surfaceId = "")`
533
+
534
+ ### `src/client/filters.js`
535
+ Exports
536
+ - `CRUD_LIST_FILTER_TYPE_FLAG`
537
+ - `CRUD_LIST_FILTER_TYPE_ENUM`
538
+ - `CRUD_LIST_FILTER_TYPE_ENUM_MANY`
539
+ - `CRUD_LIST_FILTER_TYPE_RECORD_ID`
540
+ - `CRUD_LIST_FILTER_TYPE_RECORD_ID_MANY`
541
+ - `CRUD_LIST_FILTER_TYPE_DATE`
542
+ - `CRUD_LIST_FILTER_TYPE_DATE_RANGE`
543
+ - `CRUD_LIST_FILTER_TYPE_NUMBER_RANGE`
544
+ - `CRUD_LIST_FILTER_TYPE_PRESENCE`
545
+ - `CRUD_LIST_FILTER_PRESENCE_PRESENT`
546
+ - `CRUD_LIST_FILTER_PRESENCE_MISSING`
547
+ - `CRUD_LIST_FILTER_PRESENCE_OPTIONS`
548
+ - `defineCrudListFilters`
549
+
550
+ ### `src/client/index.js`
551
+ Exports
552
+ - `CrudAddEditScreen`
553
+ - `CrudDeleteAction`
554
+ - `CrudListBulkActionSurface`
555
+ - `CrudListFilterSurface`
556
+ - `CrudListScreen`
557
+ - `CrudViewScreen`
558
+ - `defineCrudListBulkActions`
559
+ - `defineCrudListFilters`
560
+ - `defineCrudListRowActions`
561
+ - `useAddEdit`
562
+ - `useAccess`
563
+ - `useCommand`
564
+ - `useEndpointResource`
565
+ - `useList`
566
+ - `usePagedCollection`
567
+ - `useRealtimeQueryInvalidation`
568
+ - `useUiFeedback`
569
+ - `useView`
570
+ - `configureHttpWebClient`
571
+ - `createHttpWebClient`
572
+ - `getHttpWebClient`
573
+ - `httpWebClient`
574
+
575
+ ### `src/client/lib/httpClient.js`
576
+ Exports
577
+ - `configureHttpWebClient(optionsOrClient = {})`
578
+ - `createHttpWebClient(options = {})`
579
+ - `getHttpWebClient()`
580
+ - `resetHttpWebClientForTests()`
581
+ - `httpWebClient`
582
+ Local functions
583
+ - `normalizeOptions(value = null)`
584
+
585
+ ### `src/client/lib/permissions.js`
586
+ Exports
587
+ - `normalizePermissionList`
588
+ - `arePermissionListsEqual(left, right)`
589
+ - `hasPermission`
590
+ Local functions
591
+ - `toPermissionSet(values)`
592
+
593
+ ### `src/client/rowActions.js`
594
+ Exports
595
+ - `defineCrudListRowActions(actions = [])`
596
+ Local functions
597
+ - `normalizeCrudListRowAction(rawAction = {}, index = 0)`
598
+
599
+ ### `src/client/support/contractGuards.js`
600
+ Exports
601
+ - `requireRecord(value, label = "value", owner = "Contract")`
602
+ - `requireBoolean(value, label = "value", owner = "Contract")`
603
+ - `requireFunction(value, label = "value", owner = "Contract")`
604
+
605
+ ### `src/client/support/crudListDateFilterSupport.js`
606
+ Exports
607
+ - `parseDateOnlyValue(value = "")`
608
+ - `formatDateOnlyValue(value = null)`
609
+ - `formatDateOnlyDisplay(value = "", { locale = undefined } = {})`
610
+ - `formatCrudListDateFilterChipLabel(filter = {}, rawValue, { locale = undefined } = {})`
611
+
612
+ ### fixtures
613
+
614
+ ### `fixtures/crud-list-date-filters/App.vue`
615
+ Exports
616
+ - None
617
+
618
+ ### `fixtures/crud-list-date-filters/main.js`
619
+ Exports
620
+ - None
621
+
622
+ ### `fixtures/crud-list-date-filters/vite.config.mjs`
623
+ Exports
624
+ - None