@bisondesk/commons-sdk 1.0.669 → 1.0.671

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.
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-templates.js","sourceRoot":"/","sources":["pdf-templates.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * A branch and a language a built-in PDF template prints in: the branch's own language, then\n * every language the custom tree has a module for. A contract document lists only the branches\n * and languages it has text for.\n */\nexport type BuiltInPdfTemplateBranch = {\n branchId: string;\n branchName: string;\n language: string;\n};\n\n/**\n * A pdf-gen template group that is a built-in PDF template now: a layout in code rather than a\n * DOCX. `branches` lists what the custom tree dresses each branch with, per language; it is\n * empty when every branch prints the same (the transport ITR, the vehicle sticker). The leasing\n * groups are listed for tenants with the leasing module, a contract document only when a branch\n * has its text.\n */\nexport type BuiltInPdfTemplate = {\n groupId: string;\n branches: BuiltInPdfTemplateBranch[];\n};\n"]}
1
+ {"version":3,"file":"pdf-templates.js","sourceRoot":"/","sources":["pdf-templates.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * A branch and a language a built-in PDF template prints in: the branch's own language, then\n * every language the custom tree has a module for. A contract document lists only the branches\n * and languages it has text for.\n */\nexport type BuiltInPdfTemplateBranch = {\n branchId: string;\n branchName: string;\n language: string;\n};\n\n/**\n * A template group that is a built-in PDF template: a layout in code rather than a DOCX.\n * `branches` lists what the custom tree dresses each branch with, per language; it is\n * empty when every branch prints the same (the transport ITR, the vehicle sticker). The leasing\n * groups are listed for tenants with the leasing module, a contract document only when a branch\n * has its text.\n */\nexport type BuiltInPdfTemplate = {\n groupId: string;\n branches: BuiltInPdfTemplateBranch[];\n};\n"]}
package/lib/search.d.ts CHANGED
@@ -111,6 +111,19 @@ export type SortFilter = {
111
111
  fieldId: string;
112
112
  order: SortOrder;
113
113
  };
114
+ type FieldLeaf = string | number | boolean | bigint | symbol | null | undefined | Date;
115
+ export type FieldId<T, Depth extends unknown[] = []> = Depth['length'] extends 6 ? never : T extends FieldLeaf | readonly unknown[] ? never : {
116
+ [K in keyof T & string]: K | `${K}.${FieldId<T[K], [...Depth, unknown]>}`;
117
+ }[keyof T & string];
118
+ type FieldIdHead<P extends string> = P extends `${infer H}.${string}` ? H : P;
119
+ type FieldIdTail<P extends string, H extends string> = P extends `${H}.${infer R}` ? R : never;
120
+ type PickedField<T, P extends string, K extends keyof T & string> = K extends P ? T[K] : PickFieldIds<NonNullable<T[K]>, FieldIdTail<P, K>>;
121
+ type IsOptionalPick<T, P extends string, K extends keyof T & string> = {} extends Pick<T, K> ? true : {} extends PickedField<T, P, K> ? true : false;
122
+ export type PickFieldIds<T, P extends string> = {
123
+ [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true ? never : K]: PickedField<T, P, K>;
124
+ } & {
125
+ [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true ? K : never]?: PickedField<T, P, K>;
126
+ };
114
127
  export type BaseSearchRequest = {
115
128
  fullText?: string;
116
129
  limit: number;
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["search.ts"],"names":[],"mappings":"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"}
package/lib/search.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"/","sources":["search.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,0BAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAE/B,wCAAe,CAAA;IACf,+CAAsB,CAAA;IACtB,kCAAS,CAAA;IACT,yCAAgB,CAAA;IAEhB,mDAA0B,CAAA;IAC1B,2CAAkB,CAAA;IAClB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,4CAAmB,CAAA;IAEnB,8CAAqB,CAAA;IACrB,qDAA4B,CAAA;IAC5B,mDAA0B,CAAA;IAC1B,+CAAsB,CAAA;AACxB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAQD,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,4DAAgC,CAAA;IAChC,qDAAyB,CAAA;IACzB,mDAAuB,CAAA;AACzB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AA4FD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAsFD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds, SUPPORTED_LANGUAGES } from './constants.js';\nimport { FieldTypes, NumberMeta } from './fields.js';\nimport { MultiLangValue, PaginatedList } from './types.js';\n\nexport enum ConditionType {\n and = 'AND',\n or = 'OR',\n}\n\nexport enum ElasticsearchOperator {\n // all properties\n empty = 'EMPTY',\n notEmpty = 'NOT_EMPTY',\n is = 'IS',\n isNot = 'IS_NOT',\n // number, date properties\n greaterThanOrEqual = 'GTE',\n greaterThan = 'GT',\n lessThanEqual = 'LTE',\n lessThan = 'LT',\n between = 'BETWEEN',\n // string properties\n contains = 'CONTAINS',\n notContains = 'NOT_CONTAINS',\n startsWith = 'STARTS_WITH',\n endsWith = 'ENDS_WITH',\n}\n\nexport type Filter<OP = ElasticsearchOperator> = {\n data: string;\n fieldId: string;\n operator: OP;\n};\n\nexport enum ElasticsearchGeoOperator {\n boundingBox = 'geo_bounding_box',\n distance = 'geo_distance',\n polygon = 'geo_polygon',\n}\n\ntype ElasticSearchCoordinates =\n | {\n lat: number;\n lon: number;\n }\n | [lat: number, lon: number]\n | string;\n\ntype BoundingBoxCoordinates = {\n top_left: ElasticSearchCoordinates;\n bottom_right: ElasticSearchCoordinates;\n};\n\ntype BoundingBoxWKT = {\n wkt: `BBOX (${number}, ${number}, ${number}, ${number})`;\n};\n\ntype BoundingBoxVertices = {\n top: number;\n left: number;\n bottom: number;\n right: number;\n};\n\ntype GeoDistanceUnit = 'mi' | 'yd' | 'ft' | 'in' | 'km' | 'm' | 'cm' | 'mm' | 'nmi';\n\ntype GeoBoundingBoxFilter = {\n operator: ElasticsearchGeoOperator.boundingBox;\n data: BoundingBoxCoordinates | BoundingBoxWKT | BoundingBoxVertices;\n};\n\ntype GeoDistanceFilter = {\n operator: ElasticsearchGeoOperator.distance;\n data: {\n distance: `${number}${GeoDistanceUnit}`;\n coords: ElasticSearchCoordinates;\n };\n};\n\ntype GeoPolygonFilter = {\n operator: ElasticsearchGeoOperator.polygon;\n data: {\n points: ElasticSearchCoordinates[];\n };\n};\n\nexport type GeoFilter = { fieldId: string } & (\n | GeoBoundingBoxFilter\n | GeoDistanceFilter\n | GeoPolygonFilter\n);\n\nexport type ComplexFilter<OP = ElasticsearchOperator> = {\n condition: ConditionType;\n filters: Array<Filter<OP> | ComplexFilter<OP>>;\n};\n\nexport type SearchResponse<T = any> = {\n took: number;\n timed_out: boolean;\n _scroll_id?: string;\n _shards: unknown;\n hits: {\n total: {\n value: number;\n relation: 'eq' | 'gte';\n };\n max_score: number;\n hits: Array<{\n _index: string;\n _type: string;\n _id: string;\n _score: number;\n _source?: T;\n _version?: number;\n _explanation?: unknown;\n fields?: any;\n highlight?: any;\n inner_hits?: any;\n matched_queries?: string[];\n sort?: Array<string | number>;\n }>;\n };\n aggregations?: { [aggName: string]: object };\n};\n\n///////////////////////////////////////////////////////\n// Search\n///////////////////////////////////////////////////////\n\nexport const FILTER_RANGE_SEPARATOR = '__';\n\nexport enum SortOrder {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport type SortFilter = {\n fieldId: string;\n order: SortOrder;\n};\n\nexport type BaseSearchRequest = {\n fullText?: string;\n limit: number;\n query?: ComplexFilter<ElasticsearchOperator>;\n sortBy?: SortFilter[];\n};\n\ntype InfiniteSearchRequest = {\n infinite: true;\n nextToken?: string;\n};\n\ntype PaginatedSearchRequest = {\n infinite?: false;\n offset?: number;\n};\n\nexport type SearchRequest = {\n fullText?: string;\n limit: number;\n query?: ComplexFilter<ElasticsearchOperator>;\n geoFilters?: GeoFilter[];\n sortBy?: SortFilter[];\n} & (InfiniteSearchRequest | PaginatedSearchRequest);\nexport type GlobalSearchRequest = SearchRequest & {\n entityIds: BusinessEntityIds[];\n};\n\nexport type GlobalSearchResult = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n title: string;\n description: string;\n tags?: string[];\n meta?: Record<string, any>;\n};\n\nexport type GlobalSearchByIdRequest = {\n ids: {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n }[];\n};\n\nexport type MultiEntitySearchRequest = {\n requests: {\n businessEntityId: BusinessEntityIds;\n // TODO: How to paginate search if switch to multi entity search?\n request: SearchRequest;\n }[];\n};\n\nexport type MultiEntitySearchItem<T> = {\n businessEntityId: BusinessEntityIds;\n} & T;\n\nexport type MultiEntityGroupedSearchResponse<T = unknown> = {\n totalCount: number;\n groupedResults: Record<Partial<BusinessEntityIds>, PaginatedList<MultiEntitySearchItem<T>>>;\n};\n\nexport type PublicSearchRequest = {\n limit: number;\n offset?: number;\n query?: ComplexFilter;\n sortBy?: SortFilter[];\n};\n\n///////////////////////////////////////////////////////\n// Aggregations\n///////////////////////////////////////////////////////\n\nexport type AggFilterOperator =\n | ElasticsearchOperator.is\n | ElasticsearchOperator.greaterThan\n | ElasticsearchOperator.lessThan\n | ElasticsearchOperator.greaterThanOrEqual\n | ElasticsearchOperator.lessThanEqual;\n\nexport enum AggregationType {\n term = 'TERM',\n range = 'RANGE',\n}\n\nexport type TermAggregation = {\n titles: MultiLangValue;\n fieldId: string;\n type: AggregationType.term;\n\n orderBy?: 'count' | 'field';\n} & (\n | {\n fieldType: FieldTypes.picklist;\n picklistId: string;\n }\n | {\n fieldType: FieldTypes.number;\n meta?: NumberMeta;\n }\n | {\n fieldType: Exclude<FieldTypes, FieldTypes.picklist | FieldTypes.number>;\n }\n);\n\nexport type Range =\n | {\n start: number;\n end?: number;\n }\n | {\n start?: number;\n end: number;\n }\n | {\n start: number;\n end: number;\n };\n\nexport type RangeAggregation = {\n titles: MultiLangValue & { [local in (typeof SUPPORTED_LANGUAGES)[number]]: string };\n fieldId: string;\n type: AggregationType.range;\n step: number;\n ranges: Range[];\n showInputs?: boolean;\n format?: NumberMeta;\n};\n\nexport type Aggregation = TermAggregation | RangeAggregation;\n\nexport type AggregationRequest = {\n fullText?: string;\n filters: ComplexFilter<AggFilterOperator>[];\n geoFilters?: GeoFilter[];\n};\n\nexport type AggregationResult = {\n value: string;\n count: number;\n label?: string;\n from?: number;\n to?: number;\n};\n\nexport type AggregationResultSet = {\n [field: string]: AggregationResult[];\n};\n\nexport type AggregationResponse<M = {}> = {\n results: AggregationResultSet;\n meta: M;\n};\n"]}
1
+ {"version":3,"file":"search.js","sourceRoot":"/","sources":["search.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,0BAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAE/B,wCAAe,CAAA;IACf,+CAAsB,CAAA;IACtB,kCAAS,CAAA;IACT,yCAAgB,CAAA;IAEhB,mDAA0B,CAAA;IAC1B,2CAAkB,CAAA;IAClB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,4CAAmB,CAAA;IAEnB,8CAAqB,CAAA;IACrB,qDAA4B,CAAA;IAC5B,mDAA0B,CAAA;IAC1B,+CAAsB,CAAA;AACxB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAQD,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,4DAAgC,CAAA;IAChC,qDAAyB,CAAA;IACzB,mDAAuB,CAAA;AACzB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AA4FD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AA6HD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds, SUPPORTED_LANGUAGES } from './constants.js';\nimport { FieldTypes, NumberMeta } from './fields.js';\nimport { MultiLangValue, PaginatedList } from './types.js';\n\nexport enum ConditionType {\n and = 'AND',\n or = 'OR',\n}\n\nexport enum ElasticsearchOperator {\n // all properties\n empty = 'EMPTY',\n notEmpty = 'NOT_EMPTY',\n is = 'IS',\n isNot = 'IS_NOT',\n // number, date properties\n greaterThanOrEqual = 'GTE',\n greaterThan = 'GT',\n lessThanEqual = 'LTE',\n lessThan = 'LT',\n between = 'BETWEEN',\n // string properties\n contains = 'CONTAINS',\n notContains = 'NOT_CONTAINS',\n startsWith = 'STARTS_WITH',\n endsWith = 'ENDS_WITH',\n}\n\nexport type Filter<OP = ElasticsearchOperator> = {\n data: string;\n fieldId: string;\n operator: OP;\n};\n\nexport enum ElasticsearchGeoOperator {\n boundingBox = 'geo_bounding_box',\n distance = 'geo_distance',\n polygon = 'geo_polygon',\n}\n\ntype ElasticSearchCoordinates =\n | {\n lat: number;\n lon: number;\n }\n | [lat: number, lon: number]\n | string;\n\ntype BoundingBoxCoordinates = {\n top_left: ElasticSearchCoordinates;\n bottom_right: ElasticSearchCoordinates;\n};\n\ntype BoundingBoxWKT = {\n wkt: `BBOX (${number}, ${number}, ${number}, ${number})`;\n};\n\ntype BoundingBoxVertices = {\n top: number;\n left: number;\n bottom: number;\n right: number;\n};\n\ntype GeoDistanceUnit = 'mi' | 'yd' | 'ft' | 'in' | 'km' | 'm' | 'cm' | 'mm' | 'nmi';\n\ntype GeoBoundingBoxFilter = {\n operator: ElasticsearchGeoOperator.boundingBox;\n data: BoundingBoxCoordinates | BoundingBoxWKT | BoundingBoxVertices;\n};\n\ntype GeoDistanceFilter = {\n operator: ElasticsearchGeoOperator.distance;\n data: {\n distance: `${number}${GeoDistanceUnit}`;\n coords: ElasticSearchCoordinates;\n };\n};\n\ntype GeoPolygonFilter = {\n operator: ElasticsearchGeoOperator.polygon;\n data: {\n points: ElasticSearchCoordinates[];\n };\n};\n\nexport type GeoFilter = { fieldId: string } & (\n | GeoBoundingBoxFilter\n | GeoDistanceFilter\n | GeoPolygonFilter\n);\n\nexport type ComplexFilter<OP = ElasticsearchOperator> = {\n condition: ConditionType;\n filters: Array<Filter<OP> | ComplexFilter<OP>>;\n};\n\nexport type SearchResponse<T = any> = {\n took: number;\n timed_out: boolean;\n _scroll_id?: string;\n _shards: unknown;\n hits: {\n total: {\n value: number;\n relation: 'eq' | 'gte';\n };\n max_score: number;\n hits: Array<{\n _index: string;\n _type: string;\n _id: string;\n _score: number;\n _source?: T;\n _version?: number;\n _explanation?: unknown;\n fields?: any;\n highlight?: any;\n inner_hits?: any;\n matched_queries?: string[];\n sort?: Array<string | number>;\n }>;\n };\n aggregations?: { [aggName: string]: object };\n};\n\n///////////////////////////////////////////////////////\n// Search\n///////////////////////////////////////////////////////\n\nexport const FILTER_RANGE_SEPARATOR = '__';\n\nexport enum SortOrder {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport type SortFilter = {\n fieldId: string;\n order: SortOrder;\n};\n\ntype FieldLeaf = string | number | boolean | bigint | symbol | null | undefined | Date;\n\n/**\n * Every field id of a search document T: the dotted path to each of its fields, such as\n * 'vehicle.internal.description.title'. A path stops at arrays and dates.\n */\nexport type FieldId<T, Depth extends unknown[] = []> = Depth['length'] extends 6\n ? never\n : T extends FieldLeaf | readonly unknown[]\n ? never\n : {\n [K in keyof T & string]: K | `${K}.${FieldId<T[K], [...Depth, unknown]>}`;\n }[keyof T & string];\n\ntype FieldIdHead<P extends string> = P extends `${infer H}.${string}` ? H : P;\ntype FieldIdTail<P extends string, H extends string> = P extends `${H}.${infer R}` ? R : never;\n\ntype PickedField<T, P extends string, K extends keyof T & string> = K extends P\n ? T[K]\n : PickFieldIds<NonNullable<T[K]>, FieldIdTail<P, K>>;\n\ntype IsOptionalPick<T, P extends string, K extends keyof T & string> =\n {} extends Pick<T, K> ? true : {} extends PickedField<T, P, K> ? true : false;\n\n/**\n * A search document T as a search returns it when its `_source` lists the field ids P. A field\n * keeps its optionality. An object becomes optional when all its listed fields are optional,\n * because the search leaves out an object none of whose listed fields exist.\n */\nexport type PickFieldIds<T, P extends string> = {\n [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true\n ? never\n : K]: PickedField<T, P, K>;\n} & {\n [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true\n ? K\n : never]?: PickedField<T, P, K>;\n};\n\nexport type BaseSearchRequest = {\n fullText?: string;\n limit: number;\n query?: ComplexFilter<ElasticsearchOperator>;\n sortBy?: SortFilter[];\n};\n\ntype InfiniteSearchRequest = {\n infinite: true;\n nextToken?: string;\n};\n\ntype PaginatedSearchRequest = {\n infinite?: false;\n offset?: number;\n};\n\nexport type SearchRequest = {\n fullText?: string;\n limit: number;\n query?: ComplexFilter<ElasticsearchOperator>;\n geoFilters?: GeoFilter[];\n sortBy?: SortFilter[];\n} & (InfiniteSearchRequest | PaginatedSearchRequest);\nexport type GlobalSearchRequest = SearchRequest & {\n entityIds: BusinessEntityIds[];\n};\n\nexport type GlobalSearchResult = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n title: string;\n description: string;\n tags?: string[];\n meta?: Record<string, any>;\n};\n\nexport type GlobalSearchByIdRequest = {\n ids: {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n }[];\n};\n\nexport type MultiEntitySearchRequest = {\n requests: {\n businessEntityId: BusinessEntityIds;\n // TODO: How to paginate search if switch to multi entity search?\n request: SearchRequest;\n }[];\n};\n\nexport type MultiEntitySearchItem<T> = {\n businessEntityId: BusinessEntityIds;\n} & T;\n\nexport type MultiEntityGroupedSearchResponse<T = unknown> = {\n totalCount: number;\n groupedResults: Record<Partial<BusinessEntityIds>, PaginatedList<MultiEntitySearchItem<T>>>;\n};\n\nexport type PublicSearchRequest = {\n limit: number;\n offset?: number;\n query?: ComplexFilter;\n sortBy?: SortFilter[];\n};\n\n///////////////////////////////////////////////////////\n// Aggregations\n///////////////////////////////////////////////////////\n\nexport type AggFilterOperator =\n | ElasticsearchOperator.is\n | ElasticsearchOperator.greaterThan\n | ElasticsearchOperator.lessThan\n | ElasticsearchOperator.greaterThanOrEqual\n | ElasticsearchOperator.lessThanEqual;\n\nexport enum AggregationType {\n term = 'TERM',\n range = 'RANGE',\n}\n\nexport type TermAggregation = {\n titles: MultiLangValue;\n fieldId: string;\n type: AggregationType.term;\n\n orderBy?: 'count' | 'field';\n} & (\n | {\n fieldType: FieldTypes.picklist;\n picklistId: string;\n }\n | {\n fieldType: FieldTypes.number;\n meta?: NumberMeta;\n }\n | {\n fieldType: Exclude<FieldTypes, FieldTypes.picklist | FieldTypes.number>;\n }\n);\n\nexport type Range =\n | {\n start: number;\n end?: number;\n }\n | {\n start?: number;\n end: number;\n }\n | {\n start: number;\n end: number;\n };\n\nexport type RangeAggregation = {\n titles: MultiLangValue & { [local in (typeof SUPPORTED_LANGUAGES)[number]]: string };\n fieldId: string;\n type: AggregationType.range;\n step: number;\n ranges: Range[];\n showInputs?: boolean;\n format?: NumberMeta;\n};\n\nexport type Aggregation = TermAggregation | RangeAggregation;\n\nexport type AggregationRequest = {\n fullText?: string;\n filters: ComplexFilter<AggFilterOperator>[];\n geoFilters?: GeoFilter[];\n};\n\nexport type AggregationResult = {\n value: string;\n count: number;\n label?: string;\n from?: number;\n to?: number;\n};\n\nexport type AggregationResultSet = {\n [field: string]: AggregationResult[];\n};\n\nexport type AggregationResponse<M = {}> = {\n results: AggregationResultSet;\n meta: M;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"servers.d.ts","sourceRoot":"/","sources":["servers.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,gBAAgB,IAAA;IAChB,IAAI,IAAA;IACJ,mBAAmB,IAAA;IACnB,UAAU,IAAA;IACV,aAAa,IAAA;IACb,WAAW,IAAA;IACX,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,eAAe,IAAA;IACf,KAAK,IAAA;IACL,OAAO,KAAA;IACP,MAAM,KAAA;IACN,eAAe,KAAA;IACf,KAAK,KAAA;CACN;AAED,eAAO,MAAM,aAAa,WAAY,YAAY,KAAG,MAIjC,CAAC"}
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"/","sources":["servers.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,gBAAgB,IAAA;IAChB,IAAI,IAAA;IACJ,mBAAmB,IAAA;IACnB,UAAU,IAAA;IACV,aAAa,IAAA;IACb,WAAW,IAAA;IAEX,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,eAAe,IAAA;IACf,KAAK,IAAA;IACL,OAAO,KAAA;IACP,MAAM,KAAA;IACN,eAAe,KAAA;IACf,KAAK,KAAA;CACN;AAED,eAAO,MAAM,aAAa,WAAY,YAAY,KAAG,MAIjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"servers.js","sourceRoot":"/","sources":["servers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAeX;AAfD,WAAY,YAAY;IACtB,uEAAgB,CAAA;IAChB,+CAAI,CAAA;IACJ,6EAAmB,CAAA;IACnB,2DAAU,CAAA;IACV,iEAAa,CAAA;IACb,6DAAW,CAAA;IACX,qDAAO,CAAA;IACP,uDAAQ,CAAA;IACR,qEAAe,CAAA;IACf,iDAAK,CAAA;IACL,sDAAO,CAAA;IACP,oDAAM,CAAA;IACN,sEAAe,CAAA;IACf,kDAAK,CAAA;AACP,CAAC,EAfW,YAAY,KAAZ,YAAY,QAevB;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAU,EAAE,CAC5D,IAAI;IACJ,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACpC,OAAO,CAAC,MAAM,CAAC,CAAC","sourcesContent":["export enum LambdaServer {\n HYPERPORTAL_SYNC,\n CORE,\n CUSTOMER_MANAGEMENT,\n MIGRATIONS,\n NOTIFICATIONS,\n DISCUSSIONS,\n PDF_GEN,\n MACHINES,\n INSURANCE_CHECK,\n EXACT,\n STORAGE,\n BECRIS,\n TRACK_AND_TRACE,\n TASKS,\n}\n\nexport const getServerPort = (server: LambdaServer): number =>\n 2000 +\n Object.values(LambdaServer)\n .filter((v) => typeof v === 'number')\n .indexOf(server);\n"]}
1
+ {"version":3,"file":"servers.js","sourceRoot":"/","sources":["servers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACtB,uEAAgB,CAAA;IAChB,+CAAI,CAAA;IACJ,6EAAmB,CAAA;IACnB,2DAAU,CAAA;IACV,iEAAa,CAAA;IACb,6DAAW,CAAA;IAEX,qDAAO,CAAA;IACP,uDAAQ,CAAA;IACR,qEAAe,CAAA;IACf,iDAAK,CAAA;IACL,sDAAO,CAAA;IACP,oDAAM,CAAA;IACN,sEAAe,CAAA;IACf,kDAAK,CAAA;AACP,CAAC,EAhBW,YAAY,KAAZ,YAAY,QAgBvB;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAU,EAAE,CAC5D,IAAI;IACJ,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACpC,OAAO,CAAC,MAAM,CAAC,CAAC","sourcesContent":["export enum LambdaServer {\n HYPERPORTAL_SYNC,\n CORE,\n CUSTOMER_MANAGEMENT,\n MIGRATIONS,\n NOTIFICATIONS,\n DISCUSSIONS,\n /** pdf-gen was removed; its slot stays so the services after it keep their ports. */\n PDF_GEN,\n MACHINES,\n INSURANCE_CHECK,\n EXACT,\n STORAGE,\n BECRIS,\n TRACK_AND_TRACE,\n TASKS,\n}\n\nexport const getServerPort = (server: LambdaServer): number =>\n 2000 +\n Object.values(LambdaServer)\n .filter((v) => typeof v === 'number')\n .indexOf(server);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bisondesk/commons-sdk",
3
- "version": "1.0.669",
3
+ "version": "1.0.671",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@date-fns/utc": "2.1.1",
@@ -10,8 +10,8 @@ export type BuiltInPdfTemplateBranch = {
10
10
  };
11
11
 
12
12
  /**
13
- * A pdf-gen template group that is a built-in PDF template now: a layout in code rather than a
14
- * DOCX. `branches` lists what the custom tree dresses each branch with, per language; it is
13
+ * A template group that is a built-in PDF template: a layout in code rather than a DOCX.
14
+ * `branches` lists what the custom tree dresses each branch with, per language; it is
15
15
  * empty when every branch prints the same (the transport ITR, the vehicle sticker). The leasing
16
16
  * groups are listed for tenants with the leasing module, a contract document only when a branch
17
17
  * has its text.
package/src/search.ts CHANGED
@@ -140,6 +140,45 @@ export type SortFilter = {
140
140
  order: SortOrder;
141
141
  };
142
142
 
143
+ type FieldLeaf = string | number | boolean | bigint | symbol | null | undefined | Date;
144
+
145
+ /**
146
+ * Every field id of a search document T: the dotted path to each of its fields, such as
147
+ * 'vehicle.internal.description.title'. A path stops at arrays and dates.
148
+ */
149
+ export type FieldId<T, Depth extends unknown[] = []> = Depth['length'] extends 6
150
+ ? never
151
+ : T extends FieldLeaf | readonly unknown[]
152
+ ? never
153
+ : {
154
+ [K in keyof T & string]: K | `${K}.${FieldId<T[K], [...Depth, unknown]>}`;
155
+ }[keyof T & string];
156
+
157
+ type FieldIdHead<P extends string> = P extends `${infer H}.${string}` ? H : P;
158
+ type FieldIdTail<P extends string, H extends string> = P extends `${H}.${infer R}` ? R : never;
159
+
160
+ type PickedField<T, P extends string, K extends keyof T & string> = K extends P
161
+ ? T[K]
162
+ : PickFieldIds<NonNullable<T[K]>, FieldIdTail<P, K>>;
163
+
164
+ type IsOptionalPick<T, P extends string, K extends keyof T & string> =
165
+ {} extends Pick<T, K> ? true : {} extends PickedField<T, P, K> ? true : false;
166
+
167
+ /**
168
+ * A search document T as a search returns it when its `_source` lists the field ids P. A field
169
+ * keeps its optionality. An object becomes optional when all its listed fields are optional,
170
+ * because the search leaves out an object none of whose listed fields exist.
171
+ */
172
+ export type PickFieldIds<T, P extends string> = {
173
+ [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true
174
+ ? never
175
+ : K]: PickedField<T, P, K>;
176
+ } & {
177
+ [K in keyof T & FieldIdHead<P> & string as IsOptionalPick<T, P, K> extends true
178
+ ? K
179
+ : never]?: PickedField<T, P, K>;
180
+ };
181
+
143
182
  export type BaseSearchRequest = {
144
183
  fullText?: string;
145
184
  limit: number;
package/src/servers.ts CHANGED
@@ -5,6 +5,7 @@ export enum LambdaServer {
5
5
  MIGRATIONS,
6
6
  NOTIFICATIONS,
7
7
  DISCUSSIONS,
8
+ /** pdf-gen was removed; its slot stays so the services after it keep their ports. */
8
9
  PDF_GEN,
9
10
  MACHINES,
10
11
  INSURANCE_CHECK,