@bjornharrtell/json-api 2.0.4 → 4.0.2

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.
Files changed (39) hide show
  1. package/README.md +27 -23
  2. package/dist/lib.d.ts +26 -39
  3. package/dist/lib.js +152 -140
  4. package/dist/lib.js.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/docs/.nojekyll +0 -1
  7. package/dist/docs/assets/hierarchy.js +0 -1
  8. package/dist/docs/assets/highlight.css +0 -85
  9. package/dist/docs/assets/icons.js +0 -18
  10. package/dist/docs/assets/icons.svg +0 -1
  11. package/dist/docs/assets/main.js +0 -60
  12. package/dist/docs/assets/navigation.js +0 -1
  13. package/dist/docs/assets/search.js +0 -1
  14. package/dist/docs/assets/style.css +0 -1633
  15. package/dist/docs/classes/Model.html +0 -4
  16. package/dist/docs/enums/RelationshipType.html +0 -3
  17. package/dist/docs/functions/camel.html +0 -2
  18. package/dist/docs/functions/useJsonApi.html +0 -1
  19. package/dist/docs/hierarchy.html +0 -1
  20. package/dist/docs/index.html +0 -11
  21. package/dist/docs/interfaces/FetchOptions.html +0 -7
  22. package/dist/docs/interfaces/FetchParams.html +0 -1
  23. package/dist/docs/interfaces/JsonApiDocument.html +0 -6
  24. package/dist/docs/interfaces/JsonApiError.html +0 -7
  25. package/dist/docs/interfaces/JsonApiFetcher.html +0 -7
  26. package/dist/docs/interfaces/JsonApiLinkObject.html +0 -8
  27. package/dist/docs/interfaces/JsonApiLinks.html +0 -8
  28. package/dist/docs/interfaces/JsonApiMeta.html +0 -8
  29. package/dist/docs/interfaces/JsonApiRelationship.html +0 -2
  30. package/dist/docs/interfaces/JsonApiResource.html +0 -5
  31. package/dist/docs/interfaces/JsonApiResourceIdentifier.html +0 -3
  32. package/dist/docs/interfaces/JsonApiStore.html +0 -14
  33. package/dist/docs/interfaces/JsonApiStoreConfig.html +0 -7
  34. package/dist/docs/interfaces/ModelDefinition.html +0 -7
  35. package/dist/docs/interfaces/PageOption.html +0 -3
  36. package/dist/docs/interfaces/Relationship.html +0 -4
  37. package/dist/docs/modules.html +0 -1
  38. package/dist/docs/types/JsonApiLink.html +0 -1
  39. package/dist/docs/types/JsonApiStoreUseFunction.html +0 -1
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sources":["../src/json-api-fetcher.ts","../src/util.ts","../src/json-api.ts"],"sourcesContent":["import type { JsonApiDocument, JsonApiResource } from './json-api.ts'\n\nfunction resolvePath(...segments: string[]): string {\n return new URL(segments.join('/')).href\n}\n\nexport interface PageOption {\n size?: number\n number?: number\n}\n\nexport interface FetchOptions {\n fields?: Record<string, string[]>\n page?: PageOption\n include?: string[]\n filter?: string\n headers?: HeadersInit\n signal?: AbortSignal\n}\n\nexport interface FetchParams {\n [key: string]: string\n}\n\nexport interface JsonApiFetcher {\n fetchDocument(type: string, id?: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiDocument>\n fetchOne(type: string, id: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiResource>\n fetchAll(type: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiResource[]>\n fetchHasMany(\n type: string,\n id: string,\n name: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<JsonApiDocument>\n fetchBelongsTo(\n type: string,\n id: string,\n name: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<JsonApiDocument>\n post(data: JsonApiResource): Promise<JsonApiDocument>\n}\n\ninterface Options {\n searchParams: URLSearchParams\n headers: Headers\n method?: string\n body?: BodyInit\n signal?: AbortSignal\n}\n\nasync function req(url: string, options: Options) {\n const { headers, searchParams, method, signal, body } = options\n const textSearchParams = `?${searchParams}`\n const finalUrl = url.replace(/(?:\\?.*?)?(?=#|$)/, textSearchParams)\n const response = await fetch(finalUrl, {\n method,\n headers,\n signal,\n body,\n })\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status} ${response.statusText}`)\n const data = (await response.json()) as JsonApiDocument\n return data\n}\n\nexport class JsonApiFetcherImpl implements JsonApiFetcher {\n constructor(private endpoint: string) {}\n createOptions(options: FetchOptions = {}, params: FetchParams = {}, post = false, body?: BodyInit): Options {\n const searchParams = new URLSearchParams()\n const headers = new Headers(options.headers)\n headers.append('Accept', 'application/vnd.api+json')\n if (post) headers.append('Content-Type', 'application/vnd.api+json')\n const requestOptions = { searchParams, headers, body }\n if (options.fields)\n for (const [key, value] of Object.entries(options.fields)) searchParams.append(`fields[${key}]`, value.join(','))\n if (options.page?.size) searchParams.append('page[size]', options.page.size.toString())\n if (options.page?.number) searchParams.append('page[number]', options.page.number.toString())\n if (options.include) searchParams.append('include', options.include.join(','))\n if (options.filter) searchParams.append('filter', options.filter)\n for (const [key, value] of Object.entries(params)) searchParams.append(key, value)\n return requestOptions\n }\n async fetchDocument(type: string, id?: string, options?: FetchOptions, params?: FetchParams) {\n const segments = [this.endpoint, type]\n if (id) segments.push(id)\n const url = resolvePath(...segments)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async fetchAll(type: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type)\n const doc = await req(url, this.createOptions(options, params))\n const resources = doc.data as JsonApiResource[]\n return resources\n }\n async fetchOne(type: string, id: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id)\n const doc = await req(url, this.createOptions(options, params))\n const resource = doc.data as JsonApiResource\n return resource\n }\n async fetchHasMany(type: string, id: string, name: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id, name)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async fetchBelongsTo(type: string, id: string, name: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id, name)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async post(resource: JsonApiResource) {\n const url = resolvePath(this.endpoint, resource.type)\n const postDoc: JsonApiDocument = {\n data: resource,\n }\n const body = JSON.stringify(postDoc)\n const options = this.createOptions({}, {}, true, body)\n const doc = await req(url, options)\n return doc\n }\n}\n","/**\n * Convert str from kebab-case to camelCase\n */\nexport function camel(str: string) {\n return str.replace(/[-][a-z\\u00E0-\\u00F6\\u00F8-\\u00FE]/g, (match) => match.slice(1).toUpperCase())\n}\n","import { type FetchOptions, type FetchParams, type JsonApiFetcher, JsonApiFetcherImpl } from './json-api-fetcher.ts'\nimport { camel } from './util.ts'\n\nexport interface JsonApiResourceIdentifier {\n id: string\n type: string\n}\n\nexport interface JsonApiRelationship {\n data: null | [] | JsonApiResourceIdentifier | JsonApiResourceIdentifier[]\n}\n\nexport interface JsonApiResource {\n id: string\n type: string\n attributes: Record<string, unknown>\n relationships?: Record<string, JsonApiRelationship>\n}\n\nexport interface JsonApiMeta {\n // Pagination\n totalPages?: number\n totalItems?: number\n currentPage?: number\n itemsPerPage?: number\n\n // Common metadata\n timestamp?: string | number\n version?: string\n copyright?: string\n\n // Allow additional custom properties\n [key: string]: unknown\n}\n\nexport interface JsonApiLinkObject {\n href: string\n rel?: string\n describedby?: JsonApiLink\n title?: string\n type?: string\n hreflang?: string | string[]\n meta?: JsonApiMeta\n}\n\nexport type JsonApiLink = null | string | JsonApiLinkObject\n\nexport interface JsonApiLinks {\n self?: JsonApiLink\n related?: JsonApiLink\n describedby?: JsonApiLink\n first?: JsonApiLink\n last?: JsonApiLink\n prev?: JsonApiLink\n next?: JsonApiLink\n}\n\nexport interface JsonApiDocument {\n links?: JsonApiLinks\n data?: JsonApiResource | JsonApiResource[]\n errors?: JsonApiError[]\n included?: JsonApiResource[]\n meta?: JsonApiMeta\n}\n\nexport interface JsonApiError {\n id: string\n status: string\n code?: string\n title: string\n detail?: string\n meta?: JsonApiMeta\n}\n\n/**\n * Base class for models\n */\nexport class Model {\n constructor(public id: string) {\n this.id = id\n }\n [key: string]: unknown\n}\n\nexport interface ModelDefinition {\n /**\n * The JSON:API type for the model\n */\n type: string\n /**\n * The model constructor\n */\n ctor: typeof Model\n /**\n * Relationships for the model\n */\n rels?: Record<string, Relationship>\n}\n\nexport interface JsonApiConfig {\n /**\n * The URL for the JSON:API endpoint\n */\n endpoint: string\n /**\n * Model definitions for the store\n */\n modelDefinitions: ModelDefinition[]\n /**\n * Whether to convert kebab-case names from JSON:API (older convention) to camelCase\n */\n kebabCase?: boolean\n}\n\nexport enum RelationshipType {\n HasMany = 0,\n BelongsTo = 1,\n}\n\n/**\n * Relationship definition\n */\nexport interface Relationship {\n ctor: typeof Model\n type: RelationshipType\n}\n\nexport interface JsonApi {\n /**\n * Models registered with this store\n */\n modelRegistry: Map<typeof Model, string>\n /**\n * Relationships registered with this store\n */\n relRegistry: Map<typeof Model, Record<string, Relationship>>\n /**\n * @internal\n */\n createRecord<T extends typeof Model>(ctor: T, properties: Partial<InstanceType<T>> & { id?: string }): InstanceType<T>\n /**\n * Find all records of a given type\n * @returns the JSON API document that was fetched and the records that were found\n */\n findAll<T extends typeof Model>(\n ctor: T,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<{ doc: JsonApiDocument; records: InstanceType<T>[] }>\n /**\n * Find a single record by id\n * @returns the record that was found\n */\n findRecord<T extends typeof Model>(\n ctor: T,\n id: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<InstanceType<T>>\n /**\n * Find related records for a given record and relationship name\n * @returns the JSON API document that was fetched\n */\n findRelated(record: Model, name: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiDocument>\n}\n\nexport type JsonApiUseFunction = () => JsonApi\n\nexport function useJsonApi(config: JsonApiConfig, fetcher?: JsonApiFetcher) {\n const _fetcher = fetcher ?? new JsonApiFetcherImpl(config.endpoint)\n\n const modelRegistry = new Map<typeof Model, string>()\n const modelsByType = new Map<string, typeof Model>()\n const relsRegistry = new Map<typeof Model, Record<string, Relationship>>()\n\n for (const modelDef of config.modelDefinitions) {\n const ctor = modelDef.ctor\n modelRegistry.set(ctor, modelDef.type)\n modelsByType.set(modelDef.type, ctor)\n if (modelDef.rels) relsRegistry.set(ctor, modelDef.rels)\n }\n\n function normalize(str: string) {\n return config.kebabCase ? camel(str) : str\n }\n\n function internalCreateRecord<T extends typeof Model>(ctor: T, id: string, properties?: Partial<InstanceType<T>>) {\n const record = new ctor(id)\n if (properties)\n for (const [key, value] of Object.entries(properties)) if (value !== undefined) record[normalize(key)] = value\n return record as InstanceType<T>\n }\n\n function getModelType(ctor: typeof Model) {\n const type = modelRegistry.get(ctor)\n if (!type) throw new Error(`Model ${ctor.name} not defined`)\n return type\n }\n\n function getModel(type: string) {\n const ctor = modelsByType.get(type)\n if (!ctor) throw new Error(`Model with name ${type} not defined`)\n return ctor\n }\n\n function resourcesToRecords<T extends typeof Model>(\n ctor: T,\n resources: JsonApiResource[],\n included?: JsonApiResource[],\n ) {\n function createRecord<T extends typeof Model>(resource: JsonApiResource) {\n return internalCreateRecord<T>(\n getModel(resource.type) as T,\n resource.id,\n resource.attributes as Partial<InstanceType<T>>,\n )\n }\n // create records for included resources\n const includedMap = new Map<string, InstanceType<typeof Model>>()\n if (included) for (const resource of included) includedMap.set(resource.id, createRecord(resource))\n // create records for main resources\n const records = resources.map((r) => internalCreateRecord<T>(ctor, r.id, r.attributes as Partial<InstanceType<T>>))\n const recordsMap = new Map<string, InstanceType<typeof Model>>()\n for (const r of records) recordsMap.set(r.id, r)\n // populate relationships\n function populateRelationships(resource: JsonApiResource) {\n const record = recordsMap.get(resource.id) ?? includedMap.get(resource.id)\n if (!record) throw new Error('Unexpected not found record')\n const recordCtor = getModel(resource.type)\n if (!resource.relationships) return\n for (const [name, reldoc] of Object.entries(resource.relationships)) {\n const rels = relsRegistry.get(recordCtor)\n // NOTE: if relationship is not defined but exists in data, it is ignored\n if (!rels) continue\n const normalizedName = normalize(name)\n const rel = rels[normalizedName]\n if (!rel) throw new Error(`Relationship ${normalizedName} not defined`)\n const relType = getModelType(rel.ctor)\n const rids =\n rel.type === RelationshipType.HasMany\n ? (reldoc.data as JsonApiResourceIdentifier[])\n : [reldoc.data as JsonApiResourceIdentifier]\n const relIncludedRecords = rids\n .filter((d) => d && includedMap.has(d.id) && d.type === relType)\n .map((d) => includedMap.get(d.id))\n const relRecords = rids\n .filter((d) => d && recordsMap.has(d.id) && d.type === relType)\n .map((d) => recordsMap.get(d.id))\n relRecords.push(...relIncludedRecords)\n record[normalizedName] = rel.type === RelationshipType.HasMany ? relRecords : relRecords[0]\n }\n }\n if (included) {\n resources.map(populateRelationships)\n included.map(populateRelationships)\n }\n return records as InstanceType<T>[]\n }\n\n async function findAll<T extends typeof Model>(ctor: T, options?: FetchOptions, params?: FetchParams) {\n const type = getModelType(ctor)\n const doc = await _fetcher.fetchDocument(type, undefined, options, params)\n const resources = doc.data as JsonApiResource[]\n const records = resourcesToRecords(ctor, resources, doc.included)\n return { doc, records }\n }\n\n async function findRecord<T extends typeof Model>(ctor: T, id: string, options?: FetchOptions, params?: FetchParams) {\n const type = getModelType(ctor)\n const doc = await _fetcher.fetchDocument(type, id, options, params)\n const resource = doc.data as JsonApiResource\n const records = resourcesToRecords(ctor, [resource], doc.included)\n const record = records[0]\n if (!record) throw new Error(`Record with id ${id} not found`)\n return record as InstanceType<T>\n }\n\n async function findRelated(record: Model, name: string, options?: FetchOptions, params?: FetchParams) {\n const ctor = record.constructor as typeof Model\n const type = getModelType(ctor)\n const rels = relsRegistry.get(ctor)\n if (!rels) throw new Error(`Model ${ctor.name} has no relationships`)\n const rel = rels[name]\n if (!rel) throw new Error(`Has many relationship ${name} not defined`)\n if (rel.type === RelationshipType.BelongsTo) {\n const doc = await _fetcher.fetchBelongsTo(type, record.id, name, options, params)\n const related = doc.data as JsonApiResource\n const relatedRecord = internalCreateRecord(rel.ctor, related.id, related.attributes)\n record[name] = relatedRecord\n return doc\n }\n const doc = await _fetcher.fetchHasMany(type, record.id, name, options, params)\n const related =\n rel.type === RelationshipType.HasMany ? (doc.data as JsonApiResource[]) : [doc.data as JsonApiResource]\n const relatedRecords = related.map((r) => internalCreateRecord(rel.ctor, r.id, r.attributes))\n record[name] = rel.type === RelationshipType.HasMany ? relatedRecords : relatedRecords[0]\n return doc\n }\n\n async function saveRecord(record: Model) {\n const type = getModelType(record.constructor as typeof Model)\n const resource: JsonApiResource = {\n id: record.id,\n type,\n attributes: record,\n }\n await _fetcher.post(resource)\n }\n\n return {\n modelRegistry,\n relsRegistry,\n findAll,\n findRecord,\n findRelated,\n saveRecord,\n }\n}\n"],"names":["resolvePath","segments","req","url","options","headers","searchParams","method","signal","body","textSearchParams","finalUrl","response","JsonApiFetcherImpl","endpoint","params","post","requestOptions","key","value","type","id","name","resource","camel","str","match","Model","RelationshipType","useJsonApi","config","fetcher","_fetcher","modelRegistry","modelsByType","relsRegistry","modelDef","ctor","normalize","internalCreateRecord","properties","record","getModelType","getModel","resourcesToRecords","resources","included","createRecord","includedMap","records","r","recordsMap","populateRelationships","recordCtor","reldoc","rels","normalizedName","rel","relType","rids","relIncludedRecords","d","relRecords","findAll","doc","findRecord","findRelated","related","relatedRecord","relatedRecords","saveRecord"],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sources":["../src/json-api-fetcher.ts","../src/util.ts","../src/json-api.ts"],"sourcesContent":["import type { JsonApiDocument, JsonApiResource } from './json-api.ts'\n\nfunction resolvePath(...segments: string[]): string {\n return new URL(segments.join('/')).href\n}\n\nexport interface PageOption {\n size?: number\n number?: number\n}\n\nexport interface FetchOptions {\n fields?: Record<string, string[]>\n page?: PageOption\n include?: string[]\n filter?: string\n headers?: HeadersInit\n signal?: AbortSignal\n}\n\nexport interface FetchParams {\n [key: string]: string\n}\n\nexport interface JsonApiFetcher {\n fetchDocument(type: string, id?: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiDocument>\n fetchOne(type: string, id: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiResource>\n fetchAll(type: string, options?: FetchOptions, params?: FetchParams): Promise<JsonApiResource[]>\n fetchHasMany(\n type: string,\n id: string,\n name: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<JsonApiDocument>\n fetchBelongsTo(\n type: string,\n id: string,\n name: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<JsonApiDocument>\n post(data: JsonApiResource): Promise<JsonApiDocument>\n}\n\ninterface Options {\n searchParams: URLSearchParams\n headers: Headers\n method?: string\n body?: BodyInit\n signal?: AbortSignal\n}\n\nasync function req(url: string, options: Options) {\n const { headers, searchParams, method, signal, body } = options\n const textSearchParams = `?${searchParams}`\n const finalUrl = url.replace(/(?:\\?.*?)?(?=#|$)/, textSearchParams)\n const response = await fetch(finalUrl, {\n method,\n headers,\n signal,\n body,\n })\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status} ${response.statusText}`)\n const data = (await response.json()) as JsonApiDocument\n return data\n}\n\nexport class JsonApiFetcherImpl implements JsonApiFetcher {\n constructor(private endpoint: string) {}\n createOptions(options: FetchOptions = {}, params: FetchParams = {}, post = false, body?: BodyInit): Options {\n const searchParams = new URLSearchParams()\n const headers = new Headers(options.headers)\n headers.append('Accept', 'application/vnd.api+json')\n if (post) headers.append('Content-Type', 'application/vnd.api+json')\n const requestOptions = { searchParams, headers, body }\n if (options.fields)\n for (const [key, value] of Object.entries(options.fields)) searchParams.append(`fields[${key}]`, value.join(','))\n if (options.page?.size) searchParams.append('page[size]', options.page.size.toString())\n if (options.page?.number) searchParams.append('page[number]', options.page.number.toString())\n if (options.include) searchParams.append('include', options.include.join(','))\n if (options.filter) searchParams.append('filter', options.filter)\n for (const [key, value] of Object.entries(params)) searchParams.append(key, value)\n return requestOptions\n }\n async fetchDocument(type: string, id?: string, options?: FetchOptions, params?: FetchParams) {\n const segments = [this.endpoint, type]\n if (id) segments.push(id)\n const url = resolvePath(...segments)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async fetchAll(type: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type)\n const doc = await req(url, this.createOptions(options, params))\n const resources = doc.data as JsonApiResource[]\n return resources\n }\n async fetchOne(type: string, id: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id)\n const doc = await req(url, this.createOptions(options, params))\n const resource = doc.data as JsonApiResource\n return resource\n }\n async fetchHasMany(type: string, id: string, name: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id, name)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async fetchBelongsTo(type: string, id: string, name: string, options?: FetchOptions, params?: FetchParams) {\n const url = resolvePath(this.endpoint, type, id, name)\n const doc = await req(url, this.createOptions(options, params))\n return doc\n }\n async post(resource: JsonApiResource) {\n const url = resolvePath(this.endpoint, resource.type)\n const postDoc: JsonApiDocument = {\n data: resource,\n }\n const body = JSON.stringify(postDoc)\n const options = this.createOptions({}, {}, true, body)\n const doc = await req(url, options)\n return doc\n }\n}\n","/**\n * Convert str from kebab-case to camelCase\n */\nexport function camel(str: string) {\n return str.replace(/[-][a-z\\u00E0-\\u00F6\\u00F8-\\u00FE]/g, (match) => match.slice(1).toUpperCase())\n}\n","import { type FetchOptions, type FetchParams, type JsonApiFetcher, JsonApiFetcherImpl } from './json-api-fetcher.ts'\nimport { camel } from './util.ts'\n\nexport interface JsonApiResourceIdentifier {\n id: string\n type: string\n}\n\nexport interface JsonApiRelationship {\n data: null | [] | JsonApiResourceIdentifier | JsonApiResourceIdentifier[]\n}\n\nexport interface JsonApiResource {\n id: string\n type: string\n attributes: Record<string, unknown>\n relationships?: Record<string, JsonApiRelationship>\n}\n\nexport interface JsonApiMeta {\n // Pagination\n totalPages?: number\n totalItems?: number\n currentPage?: number\n itemsPerPage?: number\n\n // Common metadata\n timestamp?: string | number\n version?: string\n copyright?: string\n\n // Allow additional custom properties\n [key: string]: unknown\n}\n\nexport interface JsonApiLinkObject {\n href: string\n rel?: string\n describedby?: JsonApiLink\n title?: string\n type?: string\n hreflang?: string | string[]\n meta?: JsonApiMeta\n}\n\nexport type JsonApiLink = null | string | JsonApiLinkObject\n\nexport interface JsonApiLinks {\n self?: JsonApiLink\n related?: JsonApiLink\n describedby?: JsonApiLink\n first?: JsonApiLink\n last?: JsonApiLink\n prev?: JsonApiLink\n next?: JsonApiLink\n}\n\nexport interface JsonApiDocument {\n links?: JsonApiLinks\n data?: JsonApiResource | JsonApiResource[]\n errors?: JsonApiError[]\n included?: JsonApiResource[]\n meta?: JsonApiMeta\n}\n\nexport interface JsonApiError {\n id: string\n status: string\n code?: string\n title: string\n detail?: string\n meta?: JsonApiMeta\n}\n\n/**\n * Symbol for storing the JSON:API type on records\n * @public\n */\nexport const JSON_API_TYPE = Symbol('jsonApiType')\n\n/**\n * Helper type for records with the JSON:API type symbol\n */\ntype RecordWithType = BaseRecord & {\n [JSON_API_TYPE]: string\n}\n\n/**\n * Type-safe helper to set the JSON:API type on a record\n */\nfunction setRecordType<T extends BaseRecord>(record: T, type: string): T {\n (record as RecordWithType)[JSON_API_TYPE] = type\n return record\n}\n\n/**\n * Type-safe helper to get the JSON:API type from a record\n */\nfunction getRecordType(record: BaseRecord): string | undefined {\n return (record as RecordWithType)[JSON_API_TYPE]\n}\n\n/**\n * Type-safe helper to set a relationship on a record\n */\nfunction setRelationship(record: BaseRecord, name: string, value: unknown): void {\n (record as Record<string, unknown>)[name] = value\n}\n\nexport interface BaseEntity {\n id: string\n}\n\n/**\n * Base interface for records\n */\nexport interface BaseRecord extends BaseEntity {\n [JSON_API_TYPE]?: string\n [key: string]: unknown\n}\n\n/**\n * Model definition\n */\nexport interface ModelDefinition {\n /**\n * The JSON:API type for the model\n */\n type: string\n /**\n * Optional relationships for the model\n */\n relationships?: Record<string, Relationship>\n}\n\nexport interface JsonApiConfig {\n /**\n * The URL for the JSON:API endpoint\n */\n endpoint: string\n /**\n * Model definitions for the store\n */\n modelDefinitions: ModelDefinition[]\n /**\n * Whether to convert kebab-case names from JSON:API (older convention) to camelCase\n */\n kebabCase?: boolean\n}\n\nexport enum RelationshipType {\n HasMany = 0,\n BelongsTo = 1,\n}\n\n/**\n * Relationship definition\n */\nexport interface Relationship {\n /** The JSON:API type name of the related model */\n type: string\n /** The relationship type */\n relationshipType: RelationshipType\n}\n\nexport interface JsonApi {\n /**\n * Find all records of a given type\n * @returns the JSON API document that was fetched and the records that were found\n */\n findAll<T extends BaseEntity>(\n type: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<{ doc: JsonApiDocument; records: T[] }>\n\n /**\n * Find a single record by id\n * @returns the record that was found\n */\n findRecord<T extends BaseEntity>(\n type: string,\n id: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<T>\n\n /**\n * Find related records for a given record and relationship name\n * @returns the JSON API document that was fetched\n */\n findRelated<T extends BaseEntity>(\n record: T, \n relationshipName: string, \n options?: FetchOptions, \n params?: FetchParams\n ): Promise<JsonApiDocument>\n\n /**\n * Create a new record instance\n */\n createRecord<T extends BaseEntity>(type: string, properties: Partial<T> & { id?: string }): T\n\n /**\n * Save a record\n */\n saveRecord<T extends BaseEntity>(record: T): Promise<void>\n}\n\nexport type JsonApiUseFunction = () => JsonApi\n\nexport function useJsonApi(config: JsonApiConfig, fetcher?: JsonApiFetcher): JsonApi {\n const _fetcher = fetcher ?? new JsonApiFetcherImpl(config.endpoint)\n\n // Map type names to their definitions\n const modelDefinitions = new Map<string, ModelDefinition>()\n const relationshipDefinitions = new Map<string, Record<string, Relationship>>()\n\n for (const modelDef of config.modelDefinitions) {\n modelDefinitions.set(modelDef.type, modelDef)\n if (modelDef.relationships) {\n relationshipDefinitions.set(modelDef.type, modelDef.relationships)\n }\n }\n\n function normalize(str: string) {\n return config.kebabCase ? camel(str) : str\n }\n\n function createRecord<T extends BaseEntity>(type: string, properties: Partial<T> & { id?: string }): T {\n const modelDef = modelDefinitions.get(type)\n if (!modelDef) throw new Error(`Model type ${type} not defined`)\n\n const id = properties.id ?? crypto.randomUUID()\n\n const record = { id, ...properties } as T & BaseRecord\n setRecordType(record, type)\n \n // Normalize property keys if needed\n if (config.kebabCase) {\n const normalizedRecord = { id } as Record<string, unknown> & BaseRecord\n setRecordType(normalizedRecord as BaseRecord, type)\n for (const [key, value] of Object.entries(properties)) {\n if (key !== 'id' && value !== undefined) {\n normalizedRecord[normalize(key)] = value\n }\n }\n return normalizedRecord as T\n }\n \n return record as T\n }\n\n function resourcesToRecords<T extends BaseEntity>(\n type: string,\n resources: JsonApiResource[],\n included?: JsonApiResource[],\n ): T[] {\n // Create records for included resources\n const includedMap = new Map<string, BaseRecord>()\n if (included) {\n for (const resource of included) {\n const record = createRecord<BaseEntity>(resource.type, {\n id: resource.id,\n ...(resource.attributes as Record<string, unknown>),\n }) as BaseRecord\n includedMap.set(resource.id, record)\n }\n }\n\n // Create records for main resources\n const records = resources.map(resource => \n createRecord<T>(type, {\n id: resource.id,\n ...(resource.attributes as Partial<T>),\n })\n )\n\n const recordsMap = new Map<string, BaseRecord>()\n for (const record of records) {\n recordsMap.set(record.id, record as unknown as BaseRecord)\n }\n\n // Populate relationships\n function populateRelationships(resource: JsonApiResource) {\n const record = recordsMap.get(resource.id) ?? includedMap.get(resource.id)\n if (!record) throw new Error('Unexpected not found record')\n \n if (!resource.relationships) return\n\n const rels = relationshipDefinitions.get(resource.type)\n if (!rels) return\n\n for (const [name, reldoc] of Object.entries(resource.relationships)) {\n const normalizedName = normalize(name)\n const rel = rels[normalizedName]\n if (!rel) continue // Ignore undefined relationships\n\n const rids = rel.relationshipType === RelationshipType.HasMany\n ? (reldoc.data as JsonApiResourceIdentifier[])\n : [reldoc.data as JsonApiResourceIdentifier]\n\n const relatedRecords = rids\n .filter(d => d && d.type === rel.type)\n .map(d => includedMap.get(d.id) || recordsMap.get(d.id))\n .filter(Boolean)\n\n setRelationship(record, normalizedName, rel.relationshipType === RelationshipType.HasMany \n ? relatedRecords \n : relatedRecords[0])\n }\n }\n\n if (included) {\n resources.forEach(populateRelationships)\n included.forEach(populateRelationships)\n }\n\n return records\n }\n\n async function findAll<T extends BaseEntity>(\n type: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<{ doc: JsonApiDocument; records: T[] }> {\n const doc = await _fetcher.fetchDocument(type, undefined, options, params)\n const resources = doc.data as JsonApiResource[]\n const records = resourcesToRecords<T>(type, resources, doc.included)\n return { doc, records }\n }\n\n async function findRecord<T extends BaseEntity>(\n type: string,\n id: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<T> {\n const doc = await _fetcher.fetchDocument(type, id, options, params)\n const resource = doc.data as JsonApiResource\n const records = resourcesToRecords<T>(type, [resource], doc.included)\n const record = records[0]\n if (!record) throw new Error(`Record with id ${id} not found`)\n return record\n }\n\n async function findRelated<T extends BaseEntity>(\n record: T,\n relationshipName: string,\n options?: FetchOptions,\n params?: FetchParams,\n ): Promise<JsonApiDocument> {\n // Get the type from the symbol\n const recordType = getRecordType(record as unknown as BaseRecord)\n if (!recordType) throw new Error('Record type not found - ensure records are created via createRecord')\n \n const rels = relationshipDefinitions.get(recordType)\n if (!rels) throw new Error(`Model ${recordType} has no relationships`)\n \n const rel = rels[relationshipName]\n if (!rel) throw new Error(`Relationship ${relationshipName} not defined`)\n\n if (rel.relationshipType === RelationshipType.BelongsTo) {\n const doc = await _fetcher.fetchBelongsTo(recordType, record.id, relationshipName, options, params)\n const related = doc.data as JsonApiResource\n const relatedRecord = createRecord(rel.type, {\n id: related.id,\n ...(related.attributes as Record<string, unknown>),\n })\n setRelationship(record as unknown as BaseRecord, relationshipName, relatedRecord)\n return doc\n }\n\n const doc = await _fetcher.fetchHasMany(recordType, record.id, relationshipName, options, params)\n const related = rel.relationshipType === RelationshipType.HasMany\n ? (doc.data as JsonApiResource[])\n : [doc.data as JsonApiResource]\n \n const relatedRecords = related.map(r => createRecord(rel.type, {\n id: r.id,\n ...(r.attributes as Record<string, unknown>),\n }))\n \n setRelationship(record as unknown as BaseRecord, relationshipName, rel.relationshipType === RelationshipType.HasMany \n ? relatedRecords \n : relatedRecords[0])\n \n return doc\n }\n\n async function saveRecord<T extends BaseEntity>(record: T): Promise<void> {\n // Get the type from the symbol\n const recordType = getRecordType(record as unknown as BaseRecord)\n if (!recordType) throw new Error('Record type not found - ensure records are created via createRecord')\n \n const resource: JsonApiResource = {\n id: record.id,\n type: recordType,\n attributes: record as Record<string, unknown>,\n }\n await _fetcher.post(resource)\n }\n\n return {\n findAll,\n findRecord,\n findRelated,\n createRecord,\n saveRecord,\n }\n}\n"],"names":["resolvePath","segments","req","url","options","headers","searchParams","method","signal","body","textSearchParams","finalUrl","response","JsonApiFetcherImpl","endpoint","params","post","requestOptions","key","value","type","id","name","resource","camel","str","match","JSON_API_TYPE","setRecordType","record","getRecordType","setRelationship","RelationshipType","useJsonApi","config","fetcher","_fetcher","modelDefinitions","relationshipDefinitions","modelDef","normalize","createRecord","properties","normalizedRecord","resourcesToRecords","resources","included","includedMap","records","recordsMap","populateRelationships","rels","reldoc","normalizedName","rel","relatedRecords","d","findAll","doc","findRecord","findRelated","relationshipName","recordType","related","relatedRecord","r","saveRecord"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bjornharrtell/json-api",
3
- "version": "2.0.4",
3
+ "version": "4.0.2",
4
4
  "type": "module",
5
5
  "main": "./dist/lib.js",
6
6
  "module": "./dist/lib.js",
@@ -1 +0,0 @@
1
- TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
@@ -1 +0,0 @@
1
- window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg=="
@@ -1,85 +0,0 @@
1
- :root {
2
- --light-hl-0: #AF00DB;
3
- --dark-hl-0: #C586C0;
4
- --light-hl-1: #000000;
5
- --dark-hl-1: #D4D4D4;
6
- --light-hl-2: #001080;
7
- --dark-hl-2: #9CDCFE;
8
- --light-hl-3: #A31515;
9
- --dark-hl-3: #CE9178;
10
- --light-hl-4: #0000FF;
11
- --dark-hl-4: #569CD6;
12
- --light-hl-5: #267F99;
13
- --dark-hl-5: #4EC9B0;
14
- --light-hl-6: #0070C1;
15
- --dark-hl-6: #4FC1FF;
16
- --light-hl-7: #795E26;
17
- --dark-hl-7: #DCDCAA;
18
- --light-hl-8: #098658;
19
- --dark-hl-8: #B5CEA8;
20
- --light-code-background: #FFFFFF;
21
- --dark-code-background: #1E1E1E;
22
- }
23
-
24
- @media (prefers-color-scheme: light) { :root {
25
- --hl-0: var(--light-hl-0);
26
- --hl-1: var(--light-hl-1);
27
- --hl-2: var(--light-hl-2);
28
- --hl-3: var(--light-hl-3);
29
- --hl-4: var(--light-hl-4);
30
- --hl-5: var(--light-hl-5);
31
- --hl-6: var(--light-hl-6);
32
- --hl-7: var(--light-hl-7);
33
- --hl-8: var(--light-hl-8);
34
- --code-background: var(--light-code-background);
35
- } }
36
-
37
- @media (prefers-color-scheme: dark) { :root {
38
- --hl-0: var(--dark-hl-0);
39
- --hl-1: var(--dark-hl-1);
40
- --hl-2: var(--dark-hl-2);
41
- --hl-3: var(--dark-hl-3);
42
- --hl-4: var(--dark-hl-4);
43
- --hl-5: var(--dark-hl-5);
44
- --hl-6: var(--dark-hl-6);
45
- --hl-7: var(--dark-hl-7);
46
- --hl-8: var(--dark-hl-8);
47
- --code-background: var(--dark-code-background);
48
- } }
49
-
50
- :root[data-theme='light'] {
51
- --hl-0: var(--light-hl-0);
52
- --hl-1: var(--light-hl-1);
53
- --hl-2: var(--light-hl-2);
54
- --hl-3: var(--light-hl-3);
55
- --hl-4: var(--light-hl-4);
56
- --hl-5: var(--light-hl-5);
57
- --hl-6: var(--light-hl-6);
58
- --hl-7: var(--light-hl-7);
59
- --hl-8: var(--light-hl-8);
60
- --code-background: var(--light-code-background);
61
- }
62
-
63
- :root[data-theme='dark'] {
64
- --hl-0: var(--dark-hl-0);
65
- --hl-1: var(--dark-hl-1);
66
- --hl-2: var(--dark-hl-2);
67
- --hl-3: var(--dark-hl-3);
68
- --hl-4: var(--dark-hl-4);
69
- --hl-5: var(--dark-hl-5);
70
- --hl-6: var(--dark-hl-6);
71
- --hl-7: var(--dark-hl-7);
72
- --hl-8: var(--dark-hl-8);
73
- --code-background: var(--dark-code-background);
74
- }
75
-
76
- .hl-0 { color: var(--hl-0); }
77
- .hl-1 { color: var(--hl-1); }
78
- .hl-2 { color: var(--hl-2); }
79
- .hl-3 { color: var(--hl-3); }
80
- .hl-4 { color: var(--hl-4); }
81
- .hl-5 { color: var(--hl-5); }
82
- .hl-6 { color: var(--hl-6); }
83
- .hl-7 { color: var(--hl-7); }
84
- .hl-8 { color: var(--hl-8); }
85
- pre, code { background: var(--code-background); }
@@ -1,18 +0,0 @@
1
- (function() {
2
- addIcons();
3
- function addIcons() {
4
- if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
5
- const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
6
- svg.innerHTML = `<g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g><g id="icon-alertNote" class="tsd-no-select"><path fill="var(--color-alert-note)" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g><g id="icon-alertTip" class="tsd-no-select"><path fill="var(--color-alert-tip)" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></g><g id="icon-alertImportant" class="tsd-no-select"><path fill="var(--color-alert-important)" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertWarning" class="tsd-no-select"><path fill="var(--color-alert-warning)" d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertCaution" class="tsd-no-select"><path fill="var(--color-alert-caution)" d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g>`;
7
- svg.style.display = "none";
8
- if (location.protocol === "file:") updateUseElements();
9
- }
10
-
11
- function updateUseElements() {
12
- document.querySelectorAll("use").forEach(el => {
13
- if (el.getAttribute("href").includes("#icon-")) {
14
- el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
15
- }
16
- });
17
- }
18
- })()
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"><g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g><g id="icon-alertNote" class="tsd-no-select"><path fill="var(--color-alert-note)" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g><g id="icon-alertTip" class="tsd-no-select"><path fill="var(--color-alert-tip)" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></g><g id="icon-alertImportant" class="tsd-no-select"><path fill="var(--color-alert-important)" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertWarning" class="tsd-no-select"><path fill="var(--color-alert-warning)" d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertCaution" class="tsd-no-select"><path fill="var(--color-alert-caution)" d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g></svg>
@@ -1,60 +0,0 @@
1
- "use strict";
2
- window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"};
3
- "use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(f){return new t.Token(t.utils.asString(f).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var c=r.charAt(o),l=o-a;if(c.match(t.tokenizer.separator)||o==i){if(l>0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
4
- `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var c=0;c<a.length;c++)s.push(a[c]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,c=0,l=0,d=0;l<s&&d<o;)a=r[l],c=i[d],a<c?l+=2:a>c?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=(function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,c="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,f=new RegExp(a),p=new RegExp(l),v=new RegExp(c),x=new RegExp(d),w=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,T=/^(.+?)(ed|ing)$/,L=/.$/,C=/(at|bl|iz)$/,O=new RegExp("([^aeiouylsz])\\1$"),j=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,W=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,B=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,z=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,U=/ll$/,J=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=function(u){var y,P,k,h,E,Q,H;if(u.length<3)return u;if(k=u.substr(0,1),k=="y"&&(u=k.toUpperCase()+u.substr(1)),h=w,E=m,h.test(u)?u=u.replace(h,"$1$2"):E.test(u)&&(u=u.replace(E,"$1$2")),h=g,E=T,h.test(u)){var b=h.exec(u);h=f,h.test(b[1])&&(h=L,u=u.replace(h,""))}else if(E.test(u)){var b=E.exec(u);y=b[1],E=x,E.test(y)&&(u=y,E=C,Q=O,H=j,E.test(u)?u=u+"e":Q.test(u)?(h=L,u=u.replace(h,"")):H.test(u)&&(u=u+"e"))}if(h=N,h.test(u)){var b=h.exec(u);y=b[1],u=y+"i"}if(h=q,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+e[P])}if(h=W,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+n[P])}if(h=B,E=z,h.test(u)){var b=h.exec(u);y=b[1],h=p,h.test(y)&&(u=y)}else if(E.test(u)){var b=E.exec(u);y=b[1]+b[2],E=p,E.test(y)&&(u=y)}if(h=_,h.test(u)){var b=h.exec(u);y=b[1],h=p,E=v,Q=J,(h.test(y)||E.test(y)&&!Q.test(y))&&(u=y)}return h=U,E=p,h.test(u)&&E.test(u)&&(h=L,u=u.replace(h,"")),k=="y"&&(u=k.toLowerCase()+u.substr(1)),u};return function(A){return A.update(V)}})(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var c=new t.TokenSet;c.final=a,n.edges[o]=c,n=c}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),c=a.length,l=0;l<o;l++)for(var d=s[l],f=0;f<c;f++){var p=a[f];if(p==d||d=="*"){var v=r.node.edges[p],x=r.qNode.edges[d],w=v.final&&x.final,m=void 0;p in r.output.edges?(m=r.output.edges[p],m.final=m.final||w):(m=new t.TokenSet,m.final=w,r.output.edges[p]=m),i.push({qNode:x,output:m,node:v})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c<this.fields.length;c++)i[this.fields[c]]=new t.Vector;e.call(n,n);for(var c=0;c<n.clauses.length;c++){var l=n.clauses[c],d=null,f=t.Set.empty;l.usePipeline?d=this.pipeline.runString(l.term,{fields:l.fields}):d=[l.term];for(var p=0;p<d.length;p++){var v=d[p];l.term=v;var x=t.TokenSet.fromClause(l),w=this.tokenSet.intersect(x).toArray();if(w.length===0&&l.presence===t.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=t.Set.empty}break}for(var T=0;T<w.length;T++)for(var L=w[T],C=this.invertedIndex[L],O=C._index,m=0;m<l.fields.length;m++){var g=l.fields[m],j=C[g],N=Object.keys(j),q=L+"/"+g,W=new t.Set(N);if(l.presence==t.Query.presence.REQUIRED&&(f=f.union(W),o[g]===void 0&&(o[g]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[g]===void 0&&(a[g]=t.Set.empty),a[g]=a[g].union(W);continue}if(i[g].upsert(O,l.boost,function(Ue,Je){return Ue+Je}),!s[q]){for(var B=0;B<N.length;B++){var z=N[B],_=new t.FieldRef(z,g),U=j[z],J;(J=r[_])===void 0?r[_]=new t.MatchData(L,g,U):J.add(L,g,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=o[g].intersect(f)}}for(var V=t.Set.complete,A=t.Set.empty,c=0;c<this.fields.length;c++){var g=this.fields[c];o[g]&&(V=V.intersect(o[g])),a[g]&&(A=A.union(a[g]))}var u=Object.keys(r),y=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var c=0;c<u.length;c++){var _=u[c],k=t.FieldRef.fromString(_);r[_]=new t.MatchData}}for(var c=0;c<u.length;c++){var k=t.FieldRef.fromString(u[c]),h=k.docRef;if(V.contains(h)&&!A.contains(h)){var E=this.fieldVectors[k],Q=i[k.fieldName].similarity(E),H;if((H=P[h])!==void 0)H.score+=Q,H.matchData.combine(r[k]);else{var b={ref:h,score:Q,matchData:r[k]};P[h]=b,y.push(b)}}}return y.sort(function(We,ze){return ze.score-We.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,c=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var d=i[l],f=d[0],p=d[1];r[f]=new t.Vector(p)}for(var l=0;l<o.length;l++){var d=o[l],v=d[0],x=d[1];a.insert(v),s[v]=x}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=c,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,c=a?a(e):e[o],l=this.tokenizer(c,{fields:[o]}),d=this.pipeline.run(l),f=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[f]=p,this.fieldLengths[f]=0,this.fieldLengths[f]+=d.length;for(var v=0;v<d.length;v++){var x=d[v];if(p[x]==null&&(p[x]=0),p[x]+=1,this.invertedIndex[x]==null){var w=Object.create(null);w._index=this.termIndex,this.termIndex+=1;for(var m=0;m<i.length;m++)w[i[m]]=Object.create(null);this.invertedIndex[x]=w}this.invertedIndex[x][o][r]==null&&(this.invertedIndex[x][o][r]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var T=this.metadataWhitelist[g],L=x.metadata[T];this.invertedIndex[x][o][r][T]==null&&(this.invertedIndex[x][o][r][T]=[]),this.invertedIndex[x][o][r][T].push(L)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var c=Object.keys(this._fields),s=0;s<c.length;s++){var l=c[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,c=this.fieldLengths[o],l=new t.Vector,d=this.fieldTermFrequencies[o],f=Object.keys(d),p=f.length,v=this._fields[a].boost||1,x=this._documents[o.docRef].boost||1,w=0;w<p;w++){var m=f[w],g=d[m],T=this.invertedIndex[m]._index,L,C,O;i[m]===void 0?(L=t.idf(this.invertedIndex[m],this.documentCount),i[m]=L):L=i[m],C=L*((this._k1+1)*g)/(this._k1*(1-this._b+this._b*(c/this.averageFieldLength[a]))+g),C*=v,C*=x,O=Math.round(C*1e3)/1e3,l.insert(T,O)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],c=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<c.length;l++){var d=c[l];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
5
- `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "<strong>${te(i)}</strong>" `);Pe(n,a);return}for(let a=0;a<s.length;a++){let c=s[a],l=r.data.rows[Number(c.ref)],d=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(d*=10/(1+Math.abs(l.name.length-i.length))),c.score*=d}s.sort((a,c)=>c.score-a.score);let o=Math.min(10,s.length);for(let a=0;a<o;a++){let c=r.data.rows[Number(s[a].ref)],d=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${window.translations[`kind_${c.kind}`].replaceAll('"',"&quot;")}"><use href="#icon-${c.icon||c.kind}"></use></svg>`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=`<span class="parent">
6
- ${Ce(c.parent,i)}.</span>${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`<span class="text">${f}</span>`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`<mark>${te(t.substring(o,o+r.length))}</mark>`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`<div>${e}</div>`:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-${t.icon||t.kind}"></use></svg>`}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-folder"></use></svg>`,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r<n.length;++r)r!==0&&e.appendChild(document.createElement("wbr")),e.appendChild(document.createTextNode(n[r]));return e}var oe=document.documentElement.dataset.base;oe.endsWith("/")||(oe+="/");function $e(){document.querySelector(".tsd-full-hierarchy")?ht():document.querySelector(".tsd-hierarchy")&&pt()}function ht(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='<use href="#icon-chevronDown"></use>',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})();
7
- /*! Bundled license information:
8
-
9
- lunr/lunr.js:
10
- (**
11
- * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
12
- * Copyright (C) 2020 Oliver Nightingale
13
- * @license MIT
14
- *)
15
- (*!
16
- * lunr.utils
17
- * Copyright (C) 2020 Oliver Nightingale
18
- *)
19
- (*!
20
- * lunr.Set
21
- * Copyright (C) 2020 Oliver Nightingale
22
- *)
23
- (*!
24
- * lunr.tokenizer
25
- * Copyright (C) 2020 Oliver Nightingale
26
- *)
27
- (*!
28
- * lunr.Pipeline
29
- * Copyright (C) 2020 Oliver Nightingale
30
- *)
31
- (*!
32
- * lunr.Vector
33
- * Copyright (C) 2020 Oliver Nightingale
34
- *)
35
- (*!
36
- * lunr.stemmer
37
- * Copyright (C) 2020 Oliver Nightingale
38
- * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
39
- *)
40
- (*!
41
- * lunr.stopWordFilter
42
- * Copyright (C) 2020 Oliver Nightingale
43
- *)
44
- (*!
45
- * lunr.trimmer
46
- * Copyright (C) 2020 Oliver Nightingale
47
- *)
48
- (*!
49
- * lunr.TokenSet
50
- * Copyright (C) 2020 Oliver Nightingale
51
- *)
52
- (*!
53
- * lunr.Index
54
- * Copyright (C) 2020 Oliver Nightingale
55
- *)
56
- (*!
57
- * lunr.Builder
58
- * Copyright (C) 2020 Oliver Nightingale
59
- *)
60
- */
@@ -1 +0,0 @@
1
- window.navigationData = "eJyV1F1PgzAUBuD/0msijrip3BnnEo3LFj+ujBe1HEYdtKQtiYvxvxsKkcLw0N1y3vOUlkPfvomBL0Ni8gQ5NVwKnfHy5VACCUhJTUZiAqIqdDisn2WmyElA9lwkJL76Cf6ktUwg79pZTrUGHdrH/a5Z5PatwLBsU9pFunYuDKiUMtChG+hD0XwxhLZU0QJxmjrGPGgpbkq+lKwqQJhRapDx4O6UkgqzbMADsrsAlGojHtgjF/vNxycwdJtdypMcP3834AGtwVDMqesejDvAGOfmvFgtK8UAJ5vMCdx9AsLwlOMf+DjtscSzkQp9XRvwhW6lSPlukmtiGGrvhyWkXPD6+EfFQQbjtnQHzV0xKnVlDJmcmROHpR75zjGHsv83DITz68vZPPrn3F81rCrB+hvsicPYlM5o4d7badumQ1vody8unMZKQ7vkWHdXPSLefwGGRDsw"
@@ -1 +0,0 @@
1
- window.searchData = "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";