openvibers/openvibe.shoes Commits
Drops show their day as the cover (openvibe-shared v4.100.0) (#33)
Changes
@@@ -9,11 +9,11 @@"domain": "open.shoes","contracts": "openvibe-contracts v0.265.0","sdk": "openvibe-sdk v0.81.0",-- "shared": "openvibe-shared v4.99.0",++ "shared": "openvibe-shared v4.100.0","packages": ["openvibe-contracts v0.265.0","openvibe-sdk v0.81.0",-- "openvibe-shared v4.99.0"++ "openvibe-shared v4.100.0"],"summary": "OpenVibe.Shoes is the network's shoe resource. It reads OpenVibe.Deals' public offers (and the official eBay Browse API when a key pair is set), keeps the footwear in its own catalogue, and shows one page per model with every store's all-in price, a price history from its own one-snapshot-per-offer-per-day record, the size-price curve where sizes are known, and specs/fit/release/care only from cited open sources. A signed-in person can ask Watch to tell them when the model drops below a price at their size, or paste any listing link and have Watch apply its own fetch rules. Official release dates come from the brands' and stores' own public release pages; a reminder goes on Today. Shoes never enters a raffle, never scrapes Marketplace and carries no affiliate links.","works": [@@@ -17,7 +17,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0","pg": "^8.23.1"},"devDependencies": {@@@ -1194,9 +1194,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.99.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",-- "integrity": "sha512-i8iioHF2nBboP5RHAoPKCVn6pYjfOqgDhkX4k8KIGLKqt5ItClwKL8S1giWJ7hFZc2XkuSsRHEC05nArMHqtyg==",++ "version": "4.100.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0",++ "integrity": "sha512-/6CxhzjYfQgxm2a7W7IQHGpH6eeVV3+FiGCNSRRqR0npLzh4Euw1C6IBfdvsx6g2K+E2eShTEeQVO7HtONIWJA==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0",@@@ -25,7 +25,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0","pg": "^8.23.1"},"engines": {@@@ -90,7 +90,8 @@ function dropCard(d) {title: `${d.brand} ${d.model}${d.colourway ? ` · ${d.colourway}` : ''}`,type: 'event',corner: d.price != null ? money(d.price, d.currency) : '',-- badge: dayShort(d.release_at),++ // The release day is the cover (openvibe-shared 4.100.0): no row of identical calendar icons, no badge repeating it.++ date: d.release_at,who: d.source_name,peek: `${dayLong(d.release_at)}${d.sizes.length ? ` · ${d.sizes.length} sizes` : ''}`,});@@@ -25,6 +25,7 @@ const { assert, equal } = require('./helpers/check');assert(h.includes('Every shoe, every market, the right price'), 'the room line');assert(h.includes('The biggest price drops today'), 'the drops rail');assert(h.includes('Dropping this week'), 'the release rail');++ assert(h.includes('ovk-card-noimg--date'), 'each release shows its day as the cover, not a calendar icon');assert(h.includes('Popular models'), 'the popular rail');assert(h.includes('The biggest price drops today') && h.includes('ovk-card'), 'kit cards');assert(h.includes('A size-price curve') || h.includes('What a size costs'), 'the size scene');
@@ -9,11 +9,11 @@
@@ -9,11 +9,11 @@
"domain": "open.shoes",
"domain": "open.shoes",
"contracts": "openvibe-contracts v0.265.0",
"contracts": "openvibe-contracts v0.265.0",
"sdk": "openvibe-sdk v0.81.0",
"sdk": "openvibe-sdk v0.81.0",
- "shared": "openvibe-shared v4.99.0",
+ "shared": "openvibe-shared v4.100.0",
"packages": [
"packages": [
"openvibe-contracts v0.265.0",
"openvibe-contracts v0.265.0",
"openvibe-sdk v0.81.0",
"openvibe-sdk v0.81.0",
- "openvibe-shared v4.99.0"
+ "openvibe-shared v4.100.0"
],
],
"summary": "OpenVibe.Shoes is the network's shoe resource. It reads OpenVibe.Deals' public offers (and the official eBay Browse API when a key pair is set), keeps the footwear in its own catalogue, and shows one page per model with every store's all-in price, a price history from its own one-snapshot-per-offer-per-day record, the size-price curve where sizes are known, and specs/fit/release/care only from cited open sources. A signed-in person can ask Watch to tell them when the model drops below a price at their size, or paste any listing link and have Watch apply its own fetch rules. Official release dates come from the brands' and stores' own public release pages; a reminder goes on Today. Shoes never enters a raffle, never scrapes Marketplace and carries no affiliate links.",
"summary": "OpenVibe.Shoes is the network's shoe resource. It reads OpenVibe.Deals' public offers (and the official eBay Browse API when a key pair is set), keeps the footwear in its own catalogue, and shows one page per model with every store's all-in price, a price history from its own one-snapshot-per-offer-per-day record, the size-price curve where sizes are known, and specs/fit/release/care only from cited open sources. A signed-in person can ask Watch to tell them when the model drops below a price at their size, or paste any listing link and have Watch apply its own fetch rules. Official release dates come from the brands' and stores' own public release pages; a reminder goes on Today. Shoes never enters a raffle, never scrapes Marketplace and carries no affiliate links.",
"works": [
"works": [
@@ -17,7 +17,7 @@
@@ -17,7 +17,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0",
"pg": "^8.23.1"
"pg": "^8.23.1"
},
},
"devDependencies": {
"devDependencies": {
@@ -1194,9 +1194,9 @@
@@ -1194,9 +1194,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.99.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",
- "integrity": "sha512-i8iioHF2nBboP5RHAoPKCVn6pYjfOqgDhkX4k8KIGLKqt5ItClwKL8S1giWJ7hFZc2XkuSsRHEC05nArMHqtyg==",
+ "version": "4.100.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0",
+ "integrity": "sha512-/6CxhzjYfQgxm2a7W7IQHGpH6eeVV3+FiGCNSRRqR0npLzh4Euw1C6IBfdvsx6g2K+E2eShTEeQVO7HtONIWJA==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0",
"jsonwebtoken": "^9.0.0",
@@ -25,7 +25,7 @@
@@ -25,7 +25,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.265.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.81.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.99.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.100.0",
"pg": "^8.23.1"
"pg": "^8.23.1"
},
},
"engines": {
"engines": {
@@ -90,7 +90,8 @@ function dropCard(d) {
@@ -90,7 +90,8 @@ function dropCard(d) {
title: `${d.brand} ${d.model}${d.colourway ? ` · ${d.colourway}` : ''}`,
title: `${d.brand} ${d.model}${d.colourway ? ` · ${d.colourway}` : ''}`,
type: 'event',
type: 'event',
corner: d.price != null ? money(d.price, d.currency) : '',
corner: d.price != null ? money(d.price, d.currency) : '',
- badge: dayShort(d.release_at),
+ // The release day is the cover (openvibe-shared 4.100.0): no row of identical calendar icons, no badge repeating it.
+ date: d.release_at,
who: d.source_name,
who: d.source_name,
peek: `${dayLong(d.release_at)}${d.sizes.length ? ` · ${d.sizes.length} sizes` : ''}`,
peek: `${dayLong(d.release_at)}${d.sizes.length ? ` · ${d.sizes.length} sizes` : ''}`,
});
});
@@ -25,6 +25,7 @@ const { assert, equal } = require('./helpers/check');
@@ -25,6 +25,7 @@ const { assert, equal } = require('./helpers/check');
assert(h.includes('Every shoe, every market, the right price'), 'the room line');
assert(h.includes('Every shoe, every market, the right price'), 'the room line');
assert(h.includes('The biggest price drops today'), 'the drops rail');
assert(h.includes('The biggest price drops today'), 'the drops rail');
assert(h.includes('Dropping this week'), 'the release rail');
assert(h.includes('Dropping this week'), 'the release rail');
+ assert(h.includes('ovk-card-noimg--date'), 'each release shows its day as the cover, not a calendar icon');
assert(h.includes('Popular models'), 'the popular rail');
assert(h.includes('Popular models'), 'the popular rail');
assert(h.includes('The biggest price drops today') && h.includes('ovk-card'), 'kit cards');
assert(h.includes('The biggest price drops today') && h.includes('ovk-card'), 'kit cards');
assert(h.includes('A size-price curve') || h.includes('What a size costs'), 'the size scene');
assert(h.includes('A size-price curve') || h.includes('What a size costs'), 'the size scene');