@rcsb/rcsb-search-tools 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import { SearchRequest } from "@rcsb/rcsb-api-tools/build/RcsbSearch/SearchRequest";
2
+ export declare class SearchClient {
3
+ private static client;
4
+ static get(): SearchRequest;
5
+ static set(client: SearchRequest): void;
6
+ }
@@ -0,0 +1,49 @@
1
+ import { CardinalityFacet, DateHistogramFacet, DateRangeFacet, FilterFacet, FilterQueryGroupNode, FilterQueryTerminalNode, HistogramFacet, RangeFacet, TermsFacet } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
2
+ import { RcsbSearchAttributeType } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchMetadata";
3
+ type TermsFacetType = Omit<TermsFacet, "attribute" | "facets"> & {
4
+ attribute: RcsbSearchAttributeType;
5
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
6
+ };
7
+ type HistogramFacetType = Omit<HistogramFacet, "attribute" | "facets"> & {
8
+ attribute: RcsbSearchAttributeType;
9
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
10
+ };
11
+ type DateHistogramFacetType = Omit<DateHistogramFacet, "attribute" | "facets"> & {
12
+ attribute: RcsbSearchAttributeType;
13
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
14
+ };
15
+ type RangeFacetType = Omit<RangeFacet, "attribute" | "facets"> & {
16
+ attribute: RcsbSearchAttributeType;
17
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
18
+ };
19
+ type DateRangeFacetType = Omit<DateRangeFacet, "attribute" | "facets"> & {
20
+ attribute: RcsbSearchAttributeType;
21
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
22
+ };
23
+ type CardinalityFacetType = Omit<CardinalityFacet, "attribute" | "facets"> & {
24
+ attribute: RcsbSearchAttributeType;
25
+ facets?: [(AttributeFacetType | FilterFacetType), ...(AttributeFacetType | FilterFacetType)[]];
26
+ };
27
+ export type AttributeFacetType = TermsFacetType | HistogramFacetType | DateHistogramFacetType | RangeFacetType | DateRangeFacetType | CardinalityFacetType;
28
+ type FilterQueryTerminalNodeType = Omit<FilterQueryTerminalNode, "parameters"> & {
29
+ parameters: Omit<FilterQueryTerminalNode["parameters"], "attribute"> & {
30
+ attribute: RcsbSearchAttributeType;
31
+ };
32
+ };
33
+ type FilterQueryGroupNodeType = Omit<FilterQueryGroupNode, "nodes"> & {
34
+ nodes: [FilterQueryTerminalNodeType | FilterQueryGroupNodeType, ...(FilterQueryTerminalNodeType | FilterQueryGroupNodeType)[]];
35
+ };
36
+ export type FilterFacetType = Omit<FilterFacet, "facets"> & {
37
+ facets: [AttributeFacetType | FilterFacetType, ...(AttributeFacetType | FilterFacetType)[]];
38
+ filter: FilterQueryGroupNodeType | FilterQueryTerminalNodeType;
39
+ };
40
+ export type BucketDataType = {
41
+ label: string | number;
42
+ population: number;
43
+ };
44
+ export type SearchBucketFacetType = {
45
+ name: string;
46
+ data: BucketDataType[];
47
+ labelPath: string[];
48
+ };
49
+ export {};
@@ -0,0 +1,3 @@
1
+ import { SearchBucketFacetType } from "./SearchFacetInterface";
2
+ import { QueryResult } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchResultInterface";
3
+ export declare function getFacetsFromSearch(searchResult: QueryResult): SearchBucketFacetType[];
@@ -0,0 +1,18 @@
1
+ import { RcsbSearchAttributeType } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchMetadata";
2
+ import { AttributeTextQueryParameters, GroupNode, RequestOptions, SearchQuery, TerminalNode } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
3
+ import { Service } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums";
4
+ import { AttributeFacetType, FilterFacetType } from "../SearchParseTools/SearchFacetInterface";
5
+ export interface SearchAttributeInterface {
6
+ attribute: RcsbSearchAttributeType;
7
+ value: AttributeTextQueryParameters['value'];
8
+ operator: AttributeTextQueryParameters["operator"];
9
+ service: Service.Text | Service.TextChem;
10
+ negation?: boolean;
11
+ }
12
+ export type SearchQueryType = GroupNode | TerminalNode;
13
+ export type SearchRequestType = Omit<SearchQuery, "request_options"> & {
14
+ request_options?: RequestOptionsType;
15
+ };
16
+ export type RequestOptionsType = Omit<RequestOptions, "facets"> & {
17
+ facets: [(FilterFacetType | AttributeFacetType), ...(FilterFacetType | AttributeFacetType)[]];
18
+ };
@@ -0,0 +1,11 @@
1
+ import { LogicalOperator, ReturnType } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums";
2
+ import { RequestOptionsType, SearchAttributeInterface, SearchQueryType, SearchRequestType } from "./SearchQueryInterfaces";
3
+ import { AttributeFacetType, FilterFacetType } from "../SearchParseTools/SearchFacetInterface";
4
+ export declare function buildRequestFromAttribute(searchAttribute: SearchAttributeInterface, returnType: ReturnType, requestOptions?: RequestOptionsType): SearchRequestType;
5
+ export declare function buildRequestFromAttributeAndSearchQuery(searchAttribute: SearchAttributeInterface, searchQuery: SearchQueryType, returnType: ReturnType, logicalOperator?: LogicalOperator, requestOptions?: RequestOptionsType): SearchRequestType;
6
+ export declare function buildRequestFromCombinedSearchQuery(additionalSearchQuery: SearchQueryType, searchQuery: SearchQueryType, returnType: ReturnType, logicalOperator?: LogicalOperator, requestOptions?: RequestOptionsType): SearchRequestType;
7
+ export declare function buildRequestFromSearchQuery(searchQuery: SearchQueryType, returnType: ReturnType, requestOptions?: RequestOptionsType): SearchRequestType;
8
+ export declare function addAttributeToSearchQuery(searchAttribute: SearchAttributeInterface, searchQuery: SearchQueryType, logicalOperator?: LogicalOperator): SearchQueryType;
9
+ export declare function combineSearchQuery(additionalSearchQuery: SearchQueryType, searchQuery: SearchQueryType, logicalOperator?: LogicalOperator): SearchQueryType;
10
+ export declare function buildAttributeQuery(searchAttribute: SearchAttributeInterface): SearchQueryType;
11
+ export declare function buildMultiFacet(addFacet: AttributeFacetType | FilterFacetType, toFacet: AttributeFacetType | FilterFacetType): AttributeFacetType | FilterFacetType;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildAttributeQuery = exports.combineSearchQuery = exports.addAttributeToSearchQuery = exports.buildRequestFromSearchQuery = exports.buildRequestFromCombinedSearchQuery = exports.buildRequestFromAttributeAndSearchQuery = exports.buildRequestFromAttribute = void 0;
3
+ exports.buildMultiFacet = exports.buildAttributeQuery = exports.combineSearchQuery = exports.addAttributeToSearchQuery = exports.buildRequestFromSearchQuery = exports.buildRequestFromCombinedSearchQuery = exports.buildRequestFromAttributeAndSearchQuery = exports.buildRequestFromAttribute = void 0;
4
4
  const SearchEnums_1 = require("@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums");
5
5
  const lodash_1 = require("lodash");
6
6
  function buildRequestFromAttribute(searchAttribute, returnType, requestOptions) {
@@ -68,3 +68,17 @@ function buildAttributeQuery(searchAttribute) {
68
68
  };
69
69
  }
70
70
  exports.buildAttributeQuery = buildAttributeQuery;
71
+ function buildMultiFacet(addFacet, toFacet) {
72
+ toFacet = (0, lodash_1.cloneDeep)(toFacet);
73
+ if ('name' in toFacet && 'attribute' in toFacet) {
74
+ if (Array.isArray(toFacet.facets)) {
75
+ toFacet.facets.forEach(f => buildMultiFacet(addFacet, f));
76
+ toFacet.facets.unshift(addFacet);
77
+ }
78
+ else {
79
+ toFacet.facets = [addFacet];
80
+ }
81
+ }
82
+ return toFacet;
83
+ }
84
+ exports.buildMultiFacet = buildMultiFacet;
package/lib/app.d.ts ADDED
File without changes
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@rcsb/rcsb-search-tools",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "RCSB PDB Search API request tools",
5
5
  "main": "build/app.js",
6
6
  "files": [
7
7
  "lib"
8
8
  ],
9
9
  "scripts": {
10
- "test": "jest",
10
+ "runTest": "jest",
11
11
  "tsc": "tsc",
12
+ "buildApp": "npm run tsc",
12
13
  "publishApp": "npm publish"
13
14
  },
14
15
  "repository": {
@@ -38,6 +39,6 @@
38
39
  "webpack-cli": "^5.1.1"
39
40
  },
40
41
  "dependencies": {
41
- "@rcsb/rcsb-api-tools": "^4.1.5"
42
+ "@rcsb/rcsb-api-tools": "^4.1.8"
42
43
  }
43
44
  }