vinmonopolet-ts 2.0.7 → 2.1.1
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/CHANGELOG.md +17 -0
- package/dist/cjs/constants.js +4 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/models/Facet.js +4 -0
- package/dist/cjs/models/ProductRelease.js +12 -0
- package/dist/cjs/retrievers/getProductReleases.js +32 -0
- package/dist/cjs/test.js +6 -0
- package/dist/cjs/util/GET.js +17 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/models/Facet.js +4 -0
- package/dist/esm/models/ProductRelease.js +15 -0
- package/dist/esm/retrievers/getProductReleases.js +27 -0
- package/dist/esm/test.js +4 -0
- package/dist/esm/util/GET.js +13 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/models/Facet.d.ts +1 -0
- package/dist/types/models/ProductRelease.d.ts +9 -0
- package/dist/types/retrievers/getProductReleases.d.ts +3 -0
- package/dist/types/test.d.ts +1 -0
- package/dist/types/util/GET.d.ts +7 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
#Changelog
|
|
2
2
|
|
|
3
|
+
## [2.1.1]
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Made UpcomingProduct a FacetValue object
|
|
8
|
+
|
|
9
|
+
## [2.1.0]
|
|
10
|
+
|
|
11
|
+
#### Added
|
|
12
|
+
|
|
13
|
+
- Added getProductReleases
|
|
14
|
+
- Added upcomingProduct facet
|
|
15
|
+
|
|
16
|
+
### Breaking changes
|
|
17
|
+
|
|
18
|
+
- Minimum node version is now v18
|
|
19
|
+
|
|
3
20
|
## [2.0.4]
|
|
4
21
|
|
|
5
22
|
#### Added
|
package/dist/cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.stream = exports.getStore = exports.searchProducts = exports.searchStores = exports.getAllStores = exports.getProductsByIds = exports.getProductsByStore = exports.getProductByBarcode = exports.getFacets = exports.getProduct = exports.getProductCount = exports.getProducts = exports.BaseStore = exports.PopulatedStore = exports.RawMaterial = exports.ProductStatus = exports.ProductImage = exports.StreamProduct = exports.PopulatedProduct = exports.BaseProduct = exports.Pagination = exports.FoodPairing = exports.FacetCategory = exports.FacetValue = exports.Facet = void 0;
|
|
29
|
+
exports.stream = exports.getProductReleases = exports.getStore = exports.searchProducts = exports.searchStores = exports.getAllStores = exports.getProductsByIds = exports.getProductsByStore = exports.getProductByBarcode = exports.getFacets = exports.getProduct = exports.getProductCount = exports.getProducts = exports.BaseStore = exports.PopulatedStore = exports.RawMaterial = exports.ProductStatus = exports.ProductImage = exports.StreamProduct = exports.PopulatedProduct = exports.BaseProduct = exports.Pagination = exports.FoodPairing = exports.FacetCategory = exports.FacetValue = exports.Facet = void 0;
|
|
30
30
|
require("reflect-metadata");
|
|
31
31
|
var Facet_1 = require("./models/Facet");
|
|
32
32
|
Object.defineProperty(exports, "Facet", { enumerable: true, get: function () { return __importDefault(Facet_1).default; } });
|
|
@@ -70,5 +70,7 @@ var searchProducts_1 = require("./retrievers/searchProducts");
|
|
|
70
70
|
Object.defineProperty(exports, "searchProducts", { enumerable: true, get: function () { return __importDefault(searchProducts_1).default; } });
|
|
71
71
|
var getStore_1 = require("./retrievers/getStore");
|
|
72
72
|
Object.defineProperty(exports, "getStore", { enumerable: true, get: function () { return __importDefault(getStore_1).default; } });
|
|
73
|
+
var getProductReleases_1 = require("./retrievers/getProductReleases");
|
|
74
|
+
Object.defineProperty(exports, "getProductReleases", { enumerable: true, get: function () { return __importDefault(getProductReleases_1).default; } });
|
|
73
75
|
var stream_1 = require("./stream");
|
|
74
76
|
Object.defineProperty(exports, "stream", { enumerable: true, get: function () { return __importDefault(stream_1).default; } });
|
package/dist/cjs/models/Facet.js
CHANGED
|
@@ -118,4 +118,8 @@ class Facet {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
Facet.Category = (0, exports.FacetCategoryMapping)();
|
|
121
|
+
Facet.UpcomingProduct = new FacetValue_1.default({
|
|
122
|
+
name: "Upcoming product",
|
|
123
|
+
query: { query: { value: "upcomingProduct:true" } },
|
|
124
|
+
});
|
|
121
125
|
exports.default = Facet;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class ProductRelease {
|
|
4
|
+
constructor(title, primaryCategoryName, url, image, releaseDate) {
|
|
5
|
+
this.title = title;
|
|
6
|
+
this.primaryCategoryName = primaryCategoryName;
|
|
7
|
+
this.url = url;
|
|
8
|
+
this.image = image;
|
|
9
|
+
this.releaseDate = releaseDate;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = ProductRelease;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const ProductRelease_1 = __importDefault(require("../models/ProductRelease"));
|
|
8
|
+
const GET_1 = require("../util/GET");
|
|
9
|
+
function getAbsoluteURL(path) {
|
|
10
|
+
return path.startsWith("/")
|
|
11
|
+
? "www.vinmonopolet.no" + path
|
|
12
|
+
: "www.vinmonopolet.no/" + path;
|
|
13
|
+
}
|
|
14
|
+
function tryToGetReleaseDate(title) {
|
|
15
|
+
const splitTitle = title.split(":");
|
|
16
|
+
if (splitTitle.length < 2) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return splitTitle[0];
|
|
20
|
+
}
|
|
21
|
+
function toProductRelease(dto) {
|
|
22
|
+
return new ProductRelease_1.default(dto.title, dto.primaryCategoryName, getAbsoluteURL(dto.label), getAbsoluteURL(dto.listImageUrl), tryToGetReleaseDate(dto.title));
|
|
23
|
+
}
|
|
24
|
+
async function getProductReleases() {
|
|
25
|
+
const { contentSearchResult } = await (0, GET_1.GET)(constants_1.VINMONOPOLET_SEARCH_URL, {
|
|
26
|
+
queryParams: {
|
|
27
|
+
categoryCode: "lanseringer",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return contentSearchResult.results.map(toProductRelease);
|
|
31
|
+
}
|
|
32
|
+
exports.default = getProductReleases;
|
package/dist/cjs/test.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
async function GET(url, { queryParams }) {
|
|
5
|
+
const urlSearchParams = queryParams
|
|
6
|
+
? `?${new URLSearchParams(queryParams)}`
|
|
7
|
+
: "";
|
|
8
|
+
const response = await fetch(url + urlSearchParams);
|
|
9
|
+
if (!response.ok) {
|
|
10
|
+
console.log(response.status);
|
|
11
|
+
const errorMessage = await response.text();
|
|
12
|
+
throw new Error(errorMessage);
|
|
13
|
+
}
|
|
14
|
+
const responseJson = (await response.json());
|
|
15
|
+
return responseJson;
|
|
16
|
+
}
|
|
17
|
+
exports.GET = GET;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VINMONOPOLET_SEARCH_URL = "https://www.vinmonopolet.no/vmpws/v2/vmp/search/content";
|
package/dist/esm/index.js
CHANGED
|
@@ -18,4 +18,5 @@ export { default as getProductsByIds } from "./retrievers/getProductsById";
|
|
|
18
18
|
export { default as getAllStores, searchStores } from "./retrievers/getStores";
|
|
19
19
|
export { default as searchProducts } from "./retrievers/searchProducts";
|
|
20
20
|
export { default as getStore } from "./retrievers/getStore";
|
|
21
|
+
export { default as getProductReleases } from "./retrievers/getProductReleases";
|
|
21
22
|
export { default as stream } from "./stream";
|
package/dist/esm/models/Facet.js
CHANGED
|
@@ -93,5 +93,9 @@ class Facet {
|
|
|
93
93
|
this.values = facet.values.map((val) => new FacetValue(val, valueFilter));
|
|
94
94
|
}
|
|
95
95
|
static Category = FacetCategoryMapping();
|
|
96
|
+
static UpcomingProduct = new FacetValue({
|
|
97
|
+
name: "Upcoming product",
|
|
98
|
+
query: { query: { value: "upcomingProduct:true" } },
|
|
99
|
+
});
|
|
96
100
|
}
|
|
97
101
|
export default Facet;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class ProductRelease {
|
|
2
|
+
title;
|
|
3
|
+
primaryCategoryName;
|
|
4
|
+
url;
|
|
5
|
+
image;
|
|
6
|
+
releaseDate;
|
|
7
|
+
constructor(title, primaryCategoryName, url, image, releaseDate) {
|
|
8
|
+
this.title = title;
|
|
9
|
+
this.primaryCategoryName = primaryCategoryName;
|
|
10
|
+
this.url = url;
|
|
11
|
+
this.image = image;
|
|
12
|
+
this.releaseDate = releaseDate;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export default ProductRelease;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VINMONOPOLET_SEARCH_URL } from "../constants";
|
|
2
|
+
import ProductRelease from "../models/ProductRelease";
|
|
3
|
+
import { GET } from "../util/GET";
|
|
4
|
+
function getAbsoluteURL(path) {
|
|
5
|
+
return path.startsWith("/")
|
|
6
|
+
? "www.vinmonopolet.no" + path
|
|
7
|
+
: "www.vinmonopolet.no/" + path;
|
|
8
|
+
}
|
|
9
|
+
function tryToGetReleaseDate(title) {
|
|
10
|
+
const splitTitle = title.split(":");
|
|
11
|
+
if (splitTitle.length < 2) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
return splitTitle[0];
|
|
15
|
+
}
|
|
16
|
+
function toProductRelease(dto) {
|
|
17
|
+
return new ProductRelease(dto.title, dto.primaryCategoryName, getAbsoluteURL(dto.label), getAbsoluteURL(dto.listImageUrl), tryToGetReleaseDate(dto.title));
|
|
18
|
+
}
|
|
19
|
+
async function getProductReleases() {
|
|
20
|
+
const { contentSearchResult } = await GET(VINMONOPOLET_SEARCH_URL, {
|
|
21
|
+
queryParams: {
|
|
22
|
+
categoryCode: "lanseringer",
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
return contentSearchResult.results.map(toProductRelease);
|
|
26
|
+
}
|
|
27
|
+
export default getProductReleases;
|
package/dist/esm/test.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export async function GET(url, { queryParams }) {
|
|
2
|
+
const urlSearchParams = queryParams
|
|
3
|
+
? `?${new URLSearchParams(queryParams)}`
|
|
4
|
+
: "";
|
|
5
|
+
const response = await fetch(url + urlSearchParams);
|
|
6
|
+
if (!response.ok) {
|
|
7
|
+
console.log(response.status);
|
|
8
|
+
const errorMessage = await response.text();
|
|
9
|
+
throw new Error(errorMessage);
|
|
10
|
+
}
|
|
11
|
+
const responseJson = (await response.json());
|
|
12
|
+
return responseJson;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VINMONOPOLET_SEARCH_URL = "https://www.vinmonopolet.no/vmpws/v2/vmp/search/content";
|
package/dist/types/index.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export { default as getProductsByIds } from "./retrievers/getProductsById";
|
|
|
18
18
|
export { default as getAllStores, searchStores } from "./retrievers/getStores";
|
|
19
19
|
export { default as searchProducts } from "./retrievers/searchProducts";
|
|
20
20
|
export { default as getStore } from "./retrievers/getStore";
|
|
21
|
+
export { default as getProductReleases } from "./retrievers/getProductReleases";
|
|
21
22
|
export { default as stream } from "./stream";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare class ProductRelease {
|
|
2
|
+
title: string;
|
|
3
|
+
primaryCategoryName: string;
|
|
4
|
+
url: string;
|
|
5
|
+
image: string;
|
|
6
|
+
releaseDate: string | undefined;
|
|
7
|
+
constructor(title: string, primaryCategoryName: string, url: string, image: string, releaseDate: string | undefined);
|
|
8
|
+
}
|
|
9
|
+
export default ProductRelease;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|