@hedia/types 2.1.62-alpha.1 → 2.1.62-alpha.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.
- package/dist/index.js.map +1 -0
- package/dist/types/activity/activity.d.ts +64 -0
- package/dist/types/activity/activity.js +33 -0
- package/dist/types/activity/activity.js.map +1 -0
- package/dist/types/boluscalculator/boluscalculator.d.ts +80 -0
- package/dist/types/boluscalculator/boluscalculator.js +28 -0
- package/dist/types/boluscalculator/boluscalculator.js.map +1 -0
- package/dist/types/cgm/cgm.d.ts +24 -0
- package/dist/types/cgm/cgm.js +18 -0
- package/dist/types/cgm/cgm.js.map +1 -0
- package/dist/types/enums.d.ts +424 -0
- package/dist/types/enums.js +442 -0
- package/dist/types/enums.js.map +1 -0
- package/{types/index.ts → dist/types/index.d.ts} +0 -1
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logbook/logbook.d.ts +121 -0
- package/dist/types/logbook/logbook.js +19 -0
- package/dist/types/logbook/logbook.js.map +1 -0
- package/dist/types/services/events/logbook.d.ts +11 -0
- package/dist/types/services/events/logbook.js +3 -0
- package/dist/types/services/events/logbook.js.map +1 -0
- package/dist/types/services/outbound/email.d.ts +19 -0
- package/dist/types/services/outbound/email.js +16 -0
- package/dist/types/services/outbound/email.js.map +1 -0
- package/dist/types/services/outbound/notification.d.ts +12 -0
- package/dist/types/services/outbound/notification.js +3 -0
- package/dist/types/services/outbound/notification.js.map +1 -0
- package/dist/types/services/rpc/auth.d.ts +17 -0
- package/dist/types/services/rpc/auth.js +3 -0
- package/dist/types/services/rpc/auth.js.map +1 -0
- package/dist/types/services/rpc/logbook.d.ts +28 -0
- package/dist/types/services/rpc/logbook.js +3 -0
- package/dist/types/services/rpc/logbook.js.map +1 -0
- package/dist/types/userdetails/userdetails.d.ts +13 -0
- package/dist/types/userdetails/userdetails.js +3 -0
- package/dist/types/userdetails/userdetails.js.map +1 -0
- package/dist/types/usersettings/usersettings.d.ts +107 -0
- package/dist/types/usersettings/usersettings.js +54 -0
- package/dist/types/usersettings/usersettings.js.map +1 -0
- package/package.json +4 -1
- package/.github/pull_request_template.md +0 -7
- package/.github/workflows/ci.yaml +0 -12
- package/.github/workflows/publish-release-package.yaml +0 -16
- package/.github/workflows/validate-pr-title.yaml +0 -9
- package/.npmpackagejsonlintrc.json +0 -12
- package/.prettierignore +0 -3
- package/.prettierrc +0 -25
- package/tsconfig.json +0 -68
- package/tslint.json +0 -184
- package/types/activity/activity.ts +0 -76
- package/types/boluscalculator/boluscalculator.ts +0 -86
- package/types/cgm/cgm.ts +0 -26
- package/types/enums.ts +0 -503
- package/types/logbook/logbook.ts +0 -122
- package/types/services/events/logbook.ts +0 -12
- package/types/services/outbound/email.ts +0 -19
- package/types/services/outbound/notification.ts +0 -13
- package/types/services/rpc/auth.ts +0 -21
- package/types/services/rpc/food.ts +0 -70
- package/types/services/rpc/logbook.ts +0 -32
- package/types/types.ts +0 -4
- package/types/userdetails/userdetails.ts +0 -14
- package/types/usersettings/usersettings.ts +0 -121
- /package/{index.ts → dist/index.d.ts} +0 -0
package/tslint.json
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"defaultSeverity": "error",
|
|
3
|
-
"extends": ["tslint:recommended", "tslint-config-prettier"],
|
|
4
|
-
"linterOptions": {
|
|
5
|
-
"exclude": ["src/**/*.guard.ts"]
|
|
6
|
-
},
|
|
7
|
-
"rules": {
|
|
8
|
-
"adjacent-overload-signatures": true,
|
|
9
|
-
"align": true,
|
|
10
|
-
"array-type": [true, "generic"],
|
|
11
|
-
"arrow-parens": true,
|
|
12
|
-
"arrow-return-shorthand": true,
|
|
13
|
-
"await-promise": [true, "Bluebird"],
|
|
14
|
-
"ban": false,
|
|
15
|
-
"ban-comma-operator": true,
|
|
16
|
-
"ban-types": false,
|
|
17
|
-
"binary-expression-operand-order": true,
|
|
18
|
-
"callable-types": true,
|
|
19
|
-
"class-name": true,
|
|
20
|
-
"comment-format": true,
|
|
21
|
-
"completed-docs": false,
|
|
22
|
-
"curly": true,
|
|
23
|
-
"cyclomatic-complexity": false,
|
|
24
|
-
"deprecation": false,
|
|
25
|
-
"encoding": true,
|
|
26
|
-
"eofline": true,
|
|
27
|
-
"file-header": false,
|
|
28
|
-
"file-name-casing": [false, "pascal-case"],
|
|
29
|
-
"forin": true,
|
|
30
|
-
"import-blacklist": false,
|
|
31
|
-
"import-spacing": true,
|
|
32
|
-
"indent": [true, "tabs", 4],
|
|
33
|
-
"interface-name": true,
|
|
34
|
-
"interface-over-type-literal": true,
|
|
35
|
-
"jsdoc-format": false,
|
|
36
|
-
"label-position": true,
|
|
37
|
-
"linebreak-style": [true, "LF"],
|
|
38
|
-
"match-default-export-name": true,
|
|
39
|
-
"max-classes-per-file": false,
|
|
40
|
-
"max-file-line-count": false,
|
|
41
|
-
"max-line-length": [true, { "limit": 120, "ignore-pattern": "// |^(\\s*)\\* |^(\\s*)\\/*" }],
|
|
42
|
-
"member-access": true,
|
|
43
|
-
"member-ordering": [
|
|
44
|
-
true,
|
|
45
|
-
{
|
|
46
|
-
"order": [
|
|
47
|
-
"public-static-field",
|
|
48
|
-
"protected-static-field",
|
|
49
|
-
"private-static-field",
|
|
50
|
-
"public-instance-field",
|
|
51
|
-
"protected-instance-field",
|
|
52
|
-
"private-instance-field",
|
|
53
|
-
"public-constructor",
|
|
54
|
-
"protected-constructor",
|
|
55
|
-
"private-constructor",
|
|
56
|
-
"public-instance-method",
|
|
57
|
-
"protected-instance-method",
|
|
58
|
-
"private-instance-method",
|
|
59
|
-
"public-static-method",
|
|
60
|
-
"protected-static-method",
|
|
61
|
-
"private-static-method"
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
],
|
|
65
|
-
"new-parens": true,
|
|
66
|
-
"newline-before-return": false,
|
|
67
|
-
"newline-per-chained-call": false,
|
|
68
|
-
"no-angle-bracket-type-assertion": false,
|
|
69
|
-
"no-any": true,
|
|
70
|
-
"no-arg": true,
|
|
71
|
-
"no-bitwise": false,
|
|
72
|
-
"no-boolean-literal-compare": true,
|
|
73
|
-
"no-conditional-assignment": false,
|
|
74
|
-
"no-consecutive-blank-lines": true,
|
|
75
|
-
"no-console": [true, "log"],
|
|
76
|
-
"no-construct": true,
|
|
77
|
-
"no-debugger": false,
|
|
78
|
-
"no-default-export": false,
|
|
79
|
-
"no-duplicate-imports": true,
|
|
80
|
-
"no-duplicate-super": true,
|
|
81
|
-
"no-duplicate-switch-case": true,
|
|
82
|
-
"no-duplicate-variable": true,
|
|
83
|
-
"no-dynamic-delete": false,
|
|
84
|
-
"no-empty": true,
|
|
85
|
-
"no-empty-interface": true,
|
|
86
|
-
"no-eval": true,
|
|
87
|
-
"no-floating-promises": true,
|
|
88
|
-
"no-for-in-array": true,
|
|
89
|
-
"no-implicit-dependencies": false,
|
|
90
|
-
"no-import-side-effect": true,
|
|
91
|
-
"no-inferrable-types": false,
|
|
92
|
-
"no-inferred-empty-object-type": true,
|
|
93
|
-
"no-internal-module": true,
|
|
94
|
-
"no-invalid-template-strings": true,
|
|
95
|
-
"no-invalid-this": true,
|
|
96
|
-
"no-irregular-whitespace": true,
|
|
97
|
-
"no-magic-numbers": false,
|
|
98
|
-
"no-mergeable-namespace": true,
|
|
99
|
-
"no-misused-new": true,
|
|
100
|
-
"no-namespace": false,
|
|
101
|
-
"no-non-null-assertion": false,
|
|
102
|
-
"no-null-keyword": false,
|
|
103
|
-
"no-object-literal-type-assertion": true,
|
|
104
|
-
"no-parameter-properties": true,
|
|
105
|
-
"no-parameter-reassignment": true,
|
|
106
|
-
"no-redundant-jsdoc": true,
|
|
107
|
-
"no-reference": true,
|
|
108
|
-
"no-reference-import": true,
|
|
109
|
-
"no-require-imports": false,
|
|
110
|
-
"no-return-await": false,
|
|
111
|
-
"no-shadowed-variable": true,
|
|
112
|
-
"no-sparse-arrays": true,
|
|
113
|
-
"no-string-literal": true,
|
|
114
|
-
"no-string-throw": true,
|
|
115
|
-
"no-submodule-imports": false,
|
|
116
|
-
"no-switch-case-fall-through": true,
|
|
117
|
-
"no-this-assignment": true,
|
|
118
|
-
"no-trailing-whitespace": true,
|
|
119
|
-
"no-unbound-method": false,
|
|
120
|
-
"no-unnecessary-callback-wrapper": true,
|
|
121
|
-
"no-unnecessary-class": false,
|
|
122
|
-
"no-unnecessary-initializer": true,
|
|
123
|
-
"no-unnecessary-qualifier": true,
|
|
124
|
-
"no-unnecessary-type-assertion": true,
|
|
125
|
-
"no-unsafe-any": false,
|
|
126
|
-
"no-unsafe-finally": true,
|
|
127
|
-
"no-unused-expression": true,
|
|
128
|
-
"no-use-before-declare": false,
|
|
129
|
-
"no-var-keyword": true,
|
|
130
|
-
"no-var-requires": false,
|
|
131
|
-
"no-void-expression": false,
|
|
132
|
-
"number-literal-format": false,
|
|
133
|
-
"object-literal-key-quotes": [true, "as-needed"],
|
|
134
|
-
"object-literal-shorthand": true,
|
|
135
|
-
"object-literal-sort-keys": false,
|
|
136
|
-
"one-line": [true, "check-catch", "check-finally", "check-else", "check-open-brace"],
|
|
137
|
-
"one-variable-per-declaration": true,
|
|
138
|
-
"only-arrow-functions": false,
|
|
139
|
-
"ordered-imports": true,
|
|
140
|
-
"prefer-conditional-expression": true,
|
|
141
|
-
"prefer-const": true,
|
|
142
|
-
"prefer-for-of": false,
|
|
143
|
-
"prefer-function-over-method": false,
|
|
144
|
-
"prefer-method-signature": true,
|
|
145
|
-
"prefer-object-spread": false,
|
|
146
|
-
"prefer-readonly": true,
|
|
147
|
-
"prefer-switch": false,
|
|
148
|
-
"prefer-template": true,
|
|
149
|
-
"prefer-while": true,
|
|
150
|
-
"promise-function-async": true,
|
|
151
|
-
"quotemark": [true, "double" ,"backtick"],
|
|
152
|
-
"radix": true,
|
|
153
|
-
"restrict-plus-operands": true,
|
|
154
|
-
"return-undefined": true,
|
|
155
|
-
"semicolon": [true, "always", "ignore-bound-class-methods"],
|
|
156
|
-
"space-before-function-paren": [true, { "anonymous": "never", "named": "never", "asyncArrow": "always" }],
|
|
157
|
-
"space-within-parens": [true, { "type": "number", "min": 0, "max": 0 }],
|
|
158
|
-
"strict-boolean-expressions": false,
|
|
159
|
-
"strict-type-predicates": false,
|
|
160
|
-
"switch-default": true,
|
|
161
|
-
"switch-final-break": false,
|
|
162
|
-
"trailing-comma": [true, { "multiline": "always", "singleline": "never", "esSpecCompliant": true }],
|
|
163
|
-
"triple-equals": [true, "allow-undefined-check"],
|
|
164
|
-
"type-literal-delimiter": true,
|
|
165
|
-
"typedef": true,
|
|
166
|
-
"typedef-whitespace": true,
|
|
167
|
-
"unified-signatures": true,
|
|
168
|
-
"use-default-type-parameter": true,
|
|
169
|
-
"use-isnan": true,
|
|
170
|
-
"variable-name": [true, "require-const-for-all-caps", "ban-keywords"],
|
|
171
|
-
"whitespace": [
|
|
172
|
-
true,
|
|
173
|
-
"check-decl",
|
|
174
|
-
"check-branch",
|
|
175
|
-
"check-operator",
|
|
176
|
-
"check-module",
|
|
177
|
-
"check-separator",
|
|
178
|
-
"check-rest-spread",
|
|
179
|
-
"check-type",
|
|
180
|
-
"check-typecast",
|
|
181
|
-
"check-type-operator"
|
|
182
|
-
]
|
|
183
|
-
}
|
|
184
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
export namespace Activity {
|
|
2
|
-
export namespace Types {
|
|
3
|
-
export interface IActivityEntry {
|
|
4
|
-
uuid: string;
|
|
5
|
-
type: Enums.ActivityEnum | null;
|
|
6
|
-
activityIntensity: Enums.ActivityIntensity | null;
|
|
7
|
-
durationSeconds: number;
|
|
8
|
-
startTimestamp: string | null;
|
|
9
|
-
deleted: boolean;
|
|
10
|
-
title?: string;
|
|
11
|
-
uuidOld?: IActivityEntry["uuid"];
|
|
12
|
-
overwrittenByUUID?: IActivityEntry["uuid"];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** Type that represents the user’s settings related to physical activity. */
|
|
16
|
-
export type ActivitySettings = ActivityReductionSettings & ActivityTarget;
|
|
17
|
-
/** Represents a set of insulin reduction fraction settings that can vary by the duration of the activity. */
|
|
18
|
-
export type ActivityReductionIntervals = ActivityReductionSettings[keyof ActivityReductionSettings];
|
|
19
|
-
/**
|
|
20
|
-
* Represents whether the reduction fraction is a number or it is null.
|
|
21
|
-
* Only for the settings of hard physical activities over 45 minutes the value is null.
|
|
22
|
-
* A null value represents that it is not supported by HDA.
|
|
23
|
-
*/
|
|
24
|
-
export type ReductionType = ActivityReductionIntervals[keyof ActivityReductionIntervals];
|
|
25
|
-
|
|
26
|
-
type ActivityIntensityKeys = keyof typeof Enums.ActivityIntensity;
|
|
27
|
-
type ActivityReductionKeys = keyof typeof Enums.ActivityReductionIntervals;
|
|
28
|
-
|
|
29
|
-
// prettier-ignore
|
|
30
|
-
type ActivityReductionSettings = ActivityPostReduction & {
|
|
31
|
-
[key in ActivityIntensityKeys]: ActivityReductionSettingsIntervals<key, "hard", "fromFortysix">;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// tslint:disable-next-line: interface-over-type-literal
|
|
35
|
-
type ActivityPostReduction = {
|
|
36
|
-
post: { [key in ActivityReductionKeys]: number };
|
|
37
|
-
};
|
|
38
|
-
// tslint:disable-next-line: interface-over-type-literal
|
|
39
|
-
type ActivityTarget = {
|
|
40
|
-
target: number;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
type ActivityReductionSettingsIntervals<
|
|
44
|
-
K extends ActivityIntensityKeys,
|
|
45
|
-
T extends ActivityIntensityKeys,
|
|
46
|
-
U extends ActivityReductionKeys,
|
|
47
|
-
> = {
|
|
48
|
-
[key in ActivityReductionKeys]: K extends T ? (key extends U ? null | number : number) : number;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export namespace Enums {
|
|
53
|
-
/** Enum that represents a set of insulin reduction fraction settings that can vary by the duration of the activity */
|
|
54
|
-
export enum ActivityReductionIntervals {
|
|
55
|
-
fromZero = `fromZero`,
|
|
56
|
-
fromThirty = `fromThirty`,
|
|
57
|
-
fromFortysix = `fromFortysix`,
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/** Enum used to indicate the category or intensity of a physical activity. */
|
|
61
|
-
export enum ActivityIntensity {
|
|
62
|
-
light = `light`,
|
|
63
|
-
moderate = `moderate`,
|
|
64
|
-
hard = `hard`,
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** Enum used to indicate the type of physical activity performed by the user. */
|
|
68
|
-
export enum ActivityEnum {
|
|
69
|
-
Run = `Run`,
|
|
70
|
-
Walk = `Walk`,
|
|
71
|
-
Cycling = `Cycling`,
|
|
72
|
-
Swim = `Swim`,
|
|
73
|
-
Other = `Other`,
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { Activity } from "../activity/activity";
|
|
2
|
-
|
|
3
|
-
export namespace BolusCalculator {
|
|
4
|
-
export namespace Constants {
|
|
5
|
-
/** The maximum amount of insulin that may be recommended to the user. */
|
|
6
|
-
export const SAFETY_INSULIN_LIMIT = 50;
|
|
7
|
-
/** The maximum duration in minutes of a physical activity. */
|
|
8
|
-
export const SAFETY_ACTIVITY_LIMIT = 60;
|
|
9
|
-
/** The maximum reduction factor for a physical activity */
|
|
10
|
-
export const REDUCTION_MAX = 1;
|
|
11
|
-
/** The minimum reduction factor for a physical activity */
|
|
12
|
-
export const REDUCTION_MIN = 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export namespace Enums {
|
|
16
|
-
/** Enum for differentiating between types of errors. */
|
|
17
|
-
export enum ActivityErrors {
|
|
18
|
-
OutOfRange = `Out of range`,
|
|
19
|
-
InvalidInterval = `Invalid activity settings interval`,
|
|
20
|
-
InvalidReduction = `Invalid activity Reduction`,
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export namespace Types {
|
|
25
|
-
/** Represents a single bolus of fast-acting insulin that has been administered within the past 4 hours. */
|
|
26
|
-
export interface IRecentBolus {
|
|
27
|
-
/** The number of seconds that has passed since the bolus in question was administered. */
|
|
28
|
-
secondsPassed: number;
|
|
29
|
-
/** The amount of insulin that was administered with the bolus in question. */
|
|
30
|
-
insulinDose: number;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** Details about a physical activity. */
|
|
34
|
-
export interface IActivityParams {
|
|
35
|
-
/** The duration of the physical activity in minutes. */
|
|
36
|
-
activityDuration: number;
|
|
37
|
-
/** The intensity of the activity */
|
|
38
|
-
activityIntensity: Activity.Enums.ActivityIntensity;
|
|
39
|
-
/** The user’s current settings for physical activity */
|
|
40
|
-
activitySettings: Activity.Types.ActivitySettings;
|
|
41
|
-
/** Start date and time for the activity */
|
|
42
|
-
activityDate: Date;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** IRecommendationParams contains data that is used to calculate a recommendation. */
|
|
46
|
-
export interface IRecommendationParams {
|
|
47
|
-
/** The user’s current blood glucose level in mmol/L */
|
|
48
|
-
currentBGL: number | null;
|
|
49
|
-
/** The blood glucose level in mmol/L that the user should ideally have at this time of day according to their settings/preferences. */
|
|
50
|
-
targetBGL: number;
|
|
51
|
-
/** The user’s current insulin sensitivity in (mmol/L)/IU according to their settings/preferences. */
|
|
52
|
-
insulinSensitivity: number;
|
|
53
|
-
/** The amount of carbohydrates in grams that the user has entered that they are going to eat. */
|
|
54
|
-
carbohydrates: number;
|
|
55
|
-
/** The user’s current insulin-to-carbs ratio in g/IU according to their settings/preferences. */
|
|
56
|
-
carbohydrateRatio: number;
|
|
57
|
-
/** A possibly empty array of IRecentBolus objects. */
|
|
58
|
-
recentBoluses: Array<IRecentBolus>;
|
|
59
|
-
/** Information about the activity that the user is doing including their activity settings */
|
|
60
|
-
activity: IActivityParams | null;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The result of a recommendation calculation is returned by the calculateRecommendation() function as an object that implements this interface.
|
|
65
|
-
* Note that only one of bolus and carbRecommendation may be positive. If one is non-zero then the other must be zero.
|
|
66
|
-
*/
|
|
67
|
-
export interface IRecommendationResult {
|
|
68
|
-
/** The recommended amount of insulin measured in units. */
|
|
69
|
-
bolus: number;
|
|
70
|
-
/**
|
|
71
|
-
* Indicates whether or not the insulin recommendation (given in the bolus property) was capped because the underlying recommendation exceeded the safety limit.
|
|
72
|
-
* If it is true then we know that the recommendation would have been higher and can show and appropriate message to the user.
|
|
73
|
-
*/
|
|
74
|
-
wasLimited: boolean;
|
|
75
|
-
/** The number of carbs that the user is recommended to eat */
|
|
76
|
-
carbRecommendation: number;
|
|
77
|
-
/**
|
|
78
|
-
* Indicates how much the insulin recommendation was reduced due to physical activity.
|
|
79
|
-
* A value of 0.75 would indicate that the recommended insulin was reduced by 25%.
|
|
80
|
-
*/
|
|
81
|
-
activityReduction: number | null;
|
|
82
|
-
/** The estimated amount of active insulin (IOB) in IU. */
|
|
83
|
-
activeInsulin: number;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
package/types/cgm/cgm.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export namespace Cgm {
|
|
2
|
-
export namespace Enums {
|
|
3
|
-
export enum Manufacturers {
|
|
4
|
-
MENARINI = "menarini",
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export enum Models {
|
|
8
|
-
GLUCOMEN_DAY = "glucomen_day",
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface IManufacturersToModels extends Record<Enums.Manufacturers, Enums.Models> {
|
|
13
|
-
[Enums.Manufacturers.MENARINI]: Enums.Models.GLUCOMEN_DAY;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export namespace Types {
|
|
17
|
-
export interface ICgmReading<T extends Enums.Manufacturers> {
|
|
18
|
-
userId: string;
|
|
19
|
-
retrievalTimestamp: Date;
|
|
20
|
-
readingTimestamp: Date;
|
|
21
|
-
glucoseMmol: number;
|
|
22
|
-
manufacturer: T;
|
|
23
|
-
model: IManufacturersToModels[T];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|