@hestia-earth/data-api 0.0.5 → 0.0.6-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
- import { ISourceJSONLD, ITermJSONLD, Product } from '@hestia-earth/schema';
2
- export interface IFilter {
1
+ import { ITermJSONLD } from '@hestia-earth/schema';
2
+ import { ICyclePivoted, IImpactAssessmentPivoted, IFiltersResponseFieldItem, MapNullable } from '../../models';
3
+ export interface IFilterAggregated {
3
4
  regions?: string[];
4
5
  periods?: string[];
5
6
  products?: string[];
@@ -8,8 +9,8 @@ export interface IFilter {
8
9
  minAggregatedQualityScore?: number;
9
10
  measurements?: string[];
10
11
  }
11
- export declare const validFilterFields: string[];
12
- export interface IFiltersBase {
12
+ export declare const validFilterFieldsAggregated: string[];
13
+ export interface IFiltersAggregatedBase {
13
14
  products: string[];
14
15
  periods: string[];
15
16
  practices: string[];
@@ -18,16 +19,11 @@ export interface IFiltersBase {
18
19
  defaultMethodClassifications: string[];
19
20
  measurements: string[];
20
21
  }
21
- export interface IFiltersResponsePG extends IFiltersBase {
22
+ export interface IFiltersAggregatedResponsePG extends IFiltersAggregatedBase {
22
23
  cycleCount: number;
23
24
  impactAssessmentCount: number;
24
25
  }
25
- export interface IFiltersResponseFieldItem<T> {
26
- value: T;
27
- count: number;
28
- id?: string;
29
- }
30
- export interface IFiltersResponse {
26
+ export interface IFiltersAggregatedResponse {
31
27
  count: number;
32
28
  products: IFiltersResponseFieldItem<string>[];
33
29
  periods: IFiltersResponseFieldItem<string>[];
@@ -37,58 +33,11 @@ export interface IFiltersResponse {
37
33
  defaultMethodClassifications: IFiltersResponseFieldItem<string>[];
38
34
  measurements: IFiltersResponseFieldItem<string>[];
39
35
  }
40
- type pivotedValue = {
41
- [termId: string]: {
42
- value: number;
43
- };
44
- };
45
- export interface ICyclePivoted {
46
- '@id': string;
47
- name: string;
48
- site?: {
49
- '@id': string;
50
- };
51
- startDate: string | number;
52
- endDate: string | number;
53
- aggregated: boolean;
54
- inputs?: pivotedValue;
55
- products?: pivotedValue;
56
- emissions?: pivotedValue;
57
- }
58
- export interface IImpactAssessmentPivoted {
59
- '@id': string;
60
- name: string;
61
- site?: {
62
- '@id': string;
63
- };
64
- cycle?: {
65
- '@id': string;
66
- };
67
- country: Pick<ITermJSONLD, '@id' | 'name'>;
68
- source: Pick<ISourceJSONLD, '@id' | 'name'>;
69
- startDate: string | number;
70
- endDate: string | number;
71
- aggregated: boolean;
72
- product: Product;
73
- emissionsResourceUse?: pivotedValue;
74
- impacts?: pivotedValue;
75
- endpoints?: pivotedValue;
76
- }
77
- export interface ISitePivoted {
78
- '@id': string;
79
- name: string;
80
- country?: ITermJSONLD;
81
- region?: ITermJSONLD;
82
- measurements?: pivotedValue;
83
- }
84
36
  export interface IAggregatedNodeRow {
85
37
  cycle: ICyclePivoted;
86
38
  region: Pick<ITermJSONLD, '@id' | 'name'>;
87
39
  impactAssessments: IImpactAssessmentPivoted[];
88
40
  }
89
- type MapNullable<Type> = {
90
- [Key in keyof Type]: Type[Key] | null;
91
- };
92
41
  interface IAggregatedNodesBase {
93
42
  impactAssessments: IImpactAssessmentPivoted[];
94
43
  cyclesByCycleId: Record<ICyclePivoted['@id'], ICyclePivoted>;
package/dist/models.d.ts CHANGED
@@ -1 +1,56 @@
1
+ import { ISourceJSONLD, ITermJSONLD, Product } from '@hestia-earth/schema';
1
2
  export * from './aggregated-nodes/model';
3
+ export * from './nodes/model';
4
+ export interface IFiltersResponseFieldItem<T> {
5
+ value: T;
6
+ count: number;
7
+ id?: string;
8
+ }
9
+ type pivotedValue = {
10
+ [termId: string]: {
11
+ value: number;
12
+ };
13
+ };
14
+ export interface ICyclePivoted {
15
+ '@id': string;
16
+ name: string;
17
+ site?: {
18
+ '@id': string;
19
+ };
20
+ startDate: string | number;
21
+ endDate: string | number;
22
+ aggregated: boolean;
23
+ inputs?: pivotedValue;
24
+ products?: pivotedValue;
25
+ emissions?: pivotedValue;
26
+ }
27
+ export interface IImpactAssessmentPivoted {
28
+ '@id': string;
29
+ name: string;
30
+ site?: {
31
+ '@id': string;
32
+ };
33
+ cycle?: {
34
+ '@id': string;
35
+ };
36
+ country: Pick<ITermJSONLD, '@id' | 'name'>;
37
+ source: Pick<ISourceJSONLD, '@id' | 'name'>;
38
+ startDate: string | number;
39
+ endDate: string | number;
40
+ aggregated: boolean;
41
+ product: Product;
42
+ emissionsResourceUse?: pivotedValue;
43
+ impacts?: pivotedValue;
44
+ endpoints?: pivotedValue;
45
+ }
46
+ export interface ISitePivoted {
47
+ '@id': string;
48
+ name: string;
49
+ country?: ITermJSONLD;
50
+ region?: ITermJSONLD;
51
+ measurements?: pivotedValue;
52
+ }
53
+ export type ISourcePivoted = ISourceJSONLD;
54
+ export type MapNullable<Type> = {
55
+ [Key in keyof Type]: Type[Key] | null;
56
+ };
package/dist/models.js CHANGED
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./aggregated-nodes/model"), exports);
18
+ __exportStar(require("./nodes/model"), exports);
@@ -0,0 +1,61 @@
1
+ import { ITermJSONLD } from '@hestia-earth/schema';
2
+ import { ICyclePivoted, ISourcePivoted, IFiltersResponseFieldItem, MapNullable } from '../../models';
3
+ export interface IFilter {
4
+ regions?: string[];
5
+ endYears?: string[];
6
+ periods?: string[];
7
+ products?: string[];
8
+ defaultMethodClassifications?: string[];
9
+ practices?: string[];
10
+ minMethodTier?: string;
11
+ measurements?: string[];
12
+ }
13
+ export declare const validFilterFields: string[];
14
+ export declare const methodTierRanking: {
15
+ 'not relevant': number;
16
+ background: number;
17
+ measured: number;
18
+ 'tier 1': number;
19
+ 'tier 2': number;
20
+ 'tier 3': number;
21
+ };
22
+ export interface IFiltersBase {
23
+ products: string[];
24
+ periods: string[];
25
+ practices: string[];
26
+ minMethodTier: string[];
27
+ endYears: string[];
28
+ regions: string[];
29
+ defaultMethodClassifications: string[];
30
+ measurements: string[];
31
+ }
32
+ export interface IFiltersResponsePG extends IFiltersBase {
33
+ cycleCount: number;
34
+ sourceCount: number;
35
+ }
36
+ export interface IFiltersResponse {
37
+ count: number;
38
+ products: IFiltersResponseFieldItem<string>[];
39
+ periods: IFiltersResponseFieldItem<string>[];
40
+ endYears: IFiltersResponseFieldItem<string>[];
41
+ practices: IFiltersResponseFieldItem<string>[];
42
+ minMethodTier: IFiltersResponseFieldItem<string>[];
43
+ regions: IFiltersResponseFieldItem<string>[];
44
+ defaultMethodClassifications: IFiltersResponseFieldItem<string>[];
45
+ measurements: IFiltersResponseFieldItem<string>[];
46
+ }
47
+ export interface INodeRow {
48
+ cycle: ICyclePivoted;
49
+ region: Pick<ITermJSONLD, '@id' | 'name'>;
50
+ source: ISourcePivoted[];
51
+ }
52
+ interface INodesBase {
53
+ cycles: ICyclePivoted[];
54
+ sourcesBySourceId: Record<ISourcePivoted['@id'], ISourcePivoted>;
55
+ }
56
+ export type INodesQueryResult = MapNullable<INodesBase>;
57
+ export interface INodesResponse {
58
+ count: number;
59
+ results: INodesBase | {};
60
+ }
61
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hestia-earth/data-api",
3
- "version": "0.0.5",
3
+ "version": "0.0.6-0",
4
4
  "description": "Hestia Data API definitions",
5
5
  "main": "dist/models.js",
6
6
  "typings": "dist/models.d.ts",
@@ -41,6 +41,8 @@
41
41
  "devDependencies": {
42
42
  "@commitlint/cli": "^17.6.5",
43
43
  "@commitlint/config-conventional": "^17.6.5",
44
+ "@elastic/elasticsearch": "^7.13.0",
45
+ "@hestia-earth/api": "^0.22.1",
44
46
  "@hestia-earth/eslint-config": "^0.1.0",
45
47
  "@hestia-earth/pipeline-utils": "^0.12.1",
46
48
  "@hestia-earth/utils": "^0.11.5",