@homepages/dev-media 0.0.0 → 0.0.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/LICENSE +10 -0
- package/README.md +38 -26
- package/assets/library/bluebird_logo_dark.png +0 -0
- package/assets/library/bluebird_logo_light.png +0 -0
- package/assets/library/elena_marsh.jpg +0 -0
- package/assets/library/james_donovan.png +0 -0
- package/assets/video/pearl_street_tour-poster.png +0 -0
- package/assets/video/pearl_street_tour.mp4 +0 -0
- package/assets/video/queensway_walkthrough-poster.png +0 -0
- package/manifest.json +40 -257
- package/package.json +1 -1
- package/selection.json +97 -44
- package/assets/library/bluebird_logo_dark.svg +0 -5
- package/assets/library/bluebird_logo_light.svg +0 -5
- package/assets/library/elena_marsh.png +0 -0
- package/assets/library/marco_bianchi.png +0 -0
- package/assets/library/marcus_webb.png +0 -0
- package/assets/library/ngozi_okafor.png +0 -0
- package/assets/library/okane_logo_dark.svg +0 -5
- package/assets/library/okane_logo_light.svg +0 -5
- package/assets/library/priya_chandran.png +0 -0
- package/assets/photo/pearl_street_09_balcony.png +0 -0
- package/assets/photo/pearl_street_10_rooftop_deck.png +0 -0
- package/assets/photo/queensway_02_gym_a.png +0 -0
- package/assets/photo/queensway_03_gym_b.png +0 -0
- package/assets/photo/queensway_11_living_e.png +0 -0
- package/assets/photo/queensway_12_living_f.png +0 -0
- package/assets/photo/queensway_16_common_bath.png +0 -0
- package/assets/photo/queensway_17_entrance.png +0 -0
- package/assets/photo/queensway_18_patio.png +0 -0
- package/assets/photo/queensway_20_exterior_hero.png +0 -0
- package/assets/photo/tuscan_road_01_exterior_front.png +0 -0
- package/assets/photo/tuscan_road_02_living.png +0 -0
- package/assets/photo/tuscan_road_03_kitchen.png +0 -0
- package/assets/photo/tuscan_road_04_bedroom.png +0 -0
- package/assets/photo/tuscan_road_05_backyard.png +0 -0
- package/assets/plan/tuscan_road_main_floor.png +0 -0
- package/assets/video/queensway_walkthrough.mp4 +0 -0
package/LICENSE
CHANGED
|
@@ -20,6 +20,16 @@ This package ("@homepages/dev-media") ships two kinds of bytes under `assets/`:
|
|
|
20
20
|
external input. These contain no third-party or model-generated content
|
|
21
21
|
and are provided under the same terms as (1), without restriction.
|
|
22
22
|
|
|
23
|
+
3. Contributed real-world media not owned by HomePages — a hand-provided
|
|
24
|
+
headshot, a third-party brand logo, or licensed stock video — included
|
|
25
|
+
under the specific clearance recorded for that asset in `selection.json`'s
|
|
26
|
+
`cleared`/`rights` fields (for example: a contributor's consent for their
|
|
27
|
+
own photo, a stock license permitting redistribution, or inclusion of a
|
|
28
|
+
public brand mark solely as illustrative placeholder art, not as an
|
|
29
|
+
endorsement by or affiliation with the depicted brand or person).
|
|
30
|
+
HomePages does not own these bytes, grants no trademark right in them, and
|
|
31
|
+
conveys only what the recorded clearance for that asset actually permits.
|
|
32
|
+
|
|
23
33
|
THE ASSETS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
24
34
|
IMPLIED. IN NO EVENT SHALL HOMEPAGES BE LIABLE FOR ANY CLAIM, DAMAGES, OR
|
|
25
35
|
OTHER LIABILITY ARISING FROM THEIR USE.
|
package/README.md
CHANGED
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
The dev-only media pack template authoring resolves against: `manifest.json` indexing
|
|
4
4
|
every asset the fixture corpus can select, plus the bytes in `assets/`.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
all of them.
|
|
6
|
+
Published on npm and versions independently. It is a package rather than a
|
|
7
|
+
`@homepages/template-kit` subpath because the kit is a dependency of every
|
|
8
|
+
workspace and CI install, and media bytes would tax all of them.
|
|
10
9
|
|
|
11
10
|
## What is in here
|
|
12
11
|
|
|
@@ -15,6 +14,7 @@ all of them.
|
|
|
15
14
|
| `manifest.json` | generated pack index — assets + named media sets |
|
|
16
15
|
| `selection.json` | reviewed slot → source mapping, with per-asset provenance and rights |
|
|
17
16
|
| `assets/` | the bytes, `assets/<kind>/<slug>.<ext>` |
|
|
17
|
+
| `sources/` | raw originals for hand-contributed real media (a headshot, a brand logo, a stock clip) that `selection.json` points a slot at via `local_file`; `npm run import` copies from here into `assets/` |
|
|
18
18
|
| `vendor/` | byte-vendored copies of the derived contract; never hand-edit |
|
|
19
19
|
| `scripts/` | the importer, generators, and the pack validator |
|
|
20
20
|
|
|
@@ -26,28 +26,38 @@ has no match, which is why `check` asserts the full tag vocabulary is covered.
|
|
|
26
26
|
|
|
27
27
|
## Two kinds of bytes
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
A slot holds **real media** — property photos/plans imported from the dev
|
|
30
|
+
environment, or a headshot/logo/video contributed from some other rights-cleared
|
|
31
|
+
source — once `selection.json` maps it to one; until then it falls back to a
|
|
32
|
+
**generated placeholder**, a labelled frame at the asset's true dimensions.
|
|
33
|
+
`npm run check` reports the live real-vs-placeholder split (currently every
|
|
34
|
+
asset in the pack resolves to real media — see below).
|
|
35
|
+
|
|
36
|
+
`selection.json` decides which is which. Each row maps a brief slot to a source: either
|
|
37
|
+
`s3_key` (an object in the dev uploads bucket) or `local_file` (a path under `sources/`
|
|
38
|
+
already committed to the repo), and records that source's provenance and rights
|
|
39
|
+
clearance either way. It is committed and reviewed by a human: querying the dev
|
|
40
|
+
database at build time would let the pack's contents shift whenever that database
|
|
41
|
+
changed, silently, with no version recording it. Reviewed once, the pack regenerates
|
|
42
|
+
byte-identically forever — from S3 for `s3_key` rows, from disk for `local_file` ones.
|
|
43
|
+
|
|
44
|
+
A slot with no entry falls back to its placeholder. The required inventory only
|
|
45
|
+
carries an id if some real source could eventually back it — an id no tagger
|
|
46
|
+
vocabulary or unused source could ever fill (a `room` value the tagger has no
|
|
47
|
+
equivalent for, or a wholly synthetic address with no property to photograph) is
|
|
48
|
+
dropped from the inventory rather than kept as a permanent placeholder.
|
|
49
|
+
|
|
50
|
+
- The library logos and headshots name fictional brands and fictional people (that
|
|
51
|
+
identity metadata comes from the derived inventory, not from a source); each now
|
|
52
|
+
resolves to a real, rights-cleared photo/logo via a `local_file` row. A newly-added
|
|
53
|
+
fictional identity with no sourced media yet would still fall back to a placeholder
|
|
54
|
+
until someone sources it — this fallback is what stays permanently available, not a
|
|
55
|
+
fixed count of pending identities.
|
|
56
|
+
|
|
57
|
+
`s3_key` bytes are the platform's existing 2048px `image_web_variant` derivatives,
|
|
49
58
|
copied verbatim. No re-encoding: the derivatives already match the brief's width, and an
|
|
50
|
-
encoder here would drift against the platform's own ladder.
|
|
59
|
+
encoder here would drift against the platform's own ladder. `local_file` bytes are
|
|
60
|
+
copied verbatim from `sources/` the same way.
|
|
51
61
|
|
|
52
62
|
**Rights are enforced, not just recorded.** The importer refuses to fetch any selection
|
|
53
63
|
whose provenance is not listed in the file's `cleared` block, so adding a source without
|
|
@@ -61,7 +71,9 @@ silently resolved nothing would still come out green.
|
|
|
61
71
|
|
|
62
72
|
```
|
|
63
73
|
npm run check # validate: schema, inventory coverage, files resolve, true dimensions
|
|
64
|
-
npm run import
|
|
74
|
+
npm run import # materialize selected sources: fetch s3_key rows from S3 (needs dev
|
|
75
|
+
# AWS credentials), copy local_file rows from sources/, extract real
|
|
76
|
+
# video posters via ffmpeg-in-Docker
|
|
65
77
|
npm run generate # regenerate placeholders + manifest, prune superseded files
|
|
66
78
|
npm run generate:videos # also re-encode the two MP4s — needs Docker (no ffmpeg on the dev host)
|
|
67
79
|
```
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/manifest.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"version": 1,
|
|
3
3
|
"license": {
|
|
4
4
|
"spdx": "LicenseRef-HomePages-DevMedia",
|
|
5
|
-
"source": "Property media imported from the HomePages dev environment (see selection.json for per-asset provenance and rights clearance), plus generated placeholders for slots with no cleared source (scripts/generate-placeholders.mjs).",
|
|
6
|
-
"notes": "
|
|
5
|
+
"source": "Property media imported from the HomePages dev environment, or contributed real photos/logos/video from other rights-cleared sources (see selection.json for per-asset provenance and rights clearance), plus generated placeholders for slots with no cleared source (scripts/generate-placeholders.mjs).",
|
|
6
|
+
"notes": "Dev-environment bytes are the platform's own 2048px web derivatives, copied verbatim and cleared per source address for redistribution. Contributed bytes (headshots, brand logos, stock video) are copied verbatim from a reviewed local source and cleared per selection.json's provenance record. Placeholders are synthetic frames carrying no third-party content. Ids, tags, and sets are fixed by the derived contract and do not vary with which slots resolved to real media."
|
|
7
7
|
},
|
|
8
8
|
"assets": [
|
|
9
9
|
{
|
|
@@ -110,32 +110,6 @@
|
|
|
110
110
|
"width": 2048,
|
|
111
111
|
"height": 1529
|
|
112
112
|
},
|
|
113
|
-
{
|
|
114
|
-
"id": "dev_upl_pearl_street_09_balcony",
|
|
115
|
-
"kind": "photo",
|
|
116
|
-
"name": "09-balcony.jpg",
|
|
117
|
-
"caption": "Private balcony overlooking a landscaped courtyard.",
|
|
118
|
-
"tags": {
|
|
119
|
-
"room": "balcony",
|
|
120
|
-
"category": "exterior"
|
|
121
|
-
},
|
|
122
|
-
"file": "assets/photo/pearl_street_09_balcony.png",
|
|
123
|
-
"width": 2048,
|
|
124
|
-
"height": 1453
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"id": "dev_upl_pearl_street_10_rooftop_deck",
|
|
128
|
-
"kind": "photo",
|
|
129
|
-
"name": "10-rooftop-deck.jpg",
|
|
130
|
-
"caption": "Shared rooftop deck with skyline views.",
|
|
131
|
-
"tags": {
|
|
132
|
-
"room": "rooftop",
|
|
133
|
-
"category": "exterior"
|
|
134
|
-
},
|
|
135
|
-
"file": "assets/photo/pearl_street_10_rooftop_deck.png",
|
|
136
|
-
"width": 2048,
|
|
137
|
-
"height": 1453
|
|
138
|
-
},
|
|
139
113
|
{
|
|
140
114
|
"id": "dev_upl_queensway_01_lobby",
|
|
141
115
|
"kind": "photo",
|
|
@@ -149,32 +123,6 @@
|
|
|
149
123
|
"width": 2048,
|
|
150
124
|
"height": 1536
|
|
151
125
|
},
|
|
152
|
-
{
|
|
153
|
-
"id": "dev_upl_queensway_02_gym_a",
|
|
154
|
-
"kind": "photo",
|
|
155
|
-
"name": "02-gym-a.jpg",
|
|
156
|
-
"caption": "Gym with cardio equipment and floor-to-ceiling mirrors.",
|
|
157
|
-
"tags": {
|
|
158
|
-
"room": "gym",
|
|
159
|
-
"category": "interior"
|
|
160
|
-
},
|
|
161
|
-
"file": "assets/photo/queensway_02_gym_a.png",
|
|
162
|
-
"width": 2048,
|
|
163
|
-
"height": 1365
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"id": "dev_upl_queensway_03_gym_b",
|
|
167
|
-
"kind": "photo",
|
|
168
|
-
"name": "03-gym-b.jpg",
|
|
169
|
-
"caption": "Gym free-weights area.",
|
|
170
|
-
"tags": {
|
|
171
|
-
"room": "gym",
|
|
172
|
-
"category": "interior"
|
|
173
|
-
},
|
|
174
|
-
"file": "assets/photo/queensway_03_gym_b.png",
|
|
175
|
-
"width": 2048,
|
|
176
|
-
"height": 1365
|
|
177
|
-
},
|
|
178
126
|
{
|
|
179
127
|
"id": "dev_upl_queensway_04_living_a",
|
|
180
128
|
"kind": "photo",
|
|
@@ -266,32 +214,6 @@
|
|
|
266
214
|
"width": 2048,
|
|
267
215
|
"height": 1536
|
|
268
216
|
},
|
|
269
|
-
{
|
|
270
|
-
"id": "dev_upl_queensway_11_living_e",
|
|
271
|
-
"kind": "photo",
|
|
272
|
-
"name": "11-living-e.jpg",
|
|
273
|
-
"caption": "Sunken living area with built-in shelving.",
|
|
274
|
-
"tags": {
|
|
275
|
-
"room": "living",
|
|
276
|
-
"category": "interior"
|
|
277
|
-
},
|
|
278
|
-
"file": "assets/photo/queensway_11_living_e.png",
|
|
279
|
-
"width": 2048,
|
|
280
|
-
"height": 1365
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
"id": "dev_upl_queensway_12_living_f",
|
|
284
|
-
"kind": "photo",
|
|
285
|
-
"name": "12-living-f.jpg",
|
|
286
|
-
"caption": "Living area corner with reading chair.",
|
|
287
|
-
"tags": {
|
|
288
|
-
"room": "living",
|
|
289
|
-
"category": "interior"
|
|
290
|
-
},
|
|
291
|
-
"file": "assets/photo/queensway_12_living_f.png",
|
|
292
|
-
"width": 2048,
|
|
293
|
-
"height": 1365
|
|
294
|
-
},
|
|
295
217
|
{
|
|
296
218
|
"id": "dev_upl_queensway_13_master_bedroom",
|
|
297
219
|
"kind": "photo",
|
|
@@ -331,136 +253,19 @@
|
|
|
331
253
|
"width": 2048,
|
|
332
254
|
"height": 1536
|
|
333
255
|
},
|
|
334
|
-
{
|
|
335
|
-
"id": "dev_upl_queensway_16_common_bath",
|
|
336
|
-
"kind": "photo",
|
|
337
|
-
"name": "16-common-bath.jpg",
|
|
338
|
-
"caption": "Common bath with marble subway tile.",
|
|
339
|
-
"tags": {
|
|
340
|
-
"room": "bath",
|
|
341
|
-
"category": "interior"
|
|
342
|
-
},
|
|
343
|
-
"file": "assets/photo/queensway_16_common_bath.png",
|
|
344
|
-
"width": 2048,
|
|
345
|
-
"height": 1365
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
"id": "dev_upl_queensway_17_entrance",
|
|
349
|
-
"kind": "photo",
|
|
350
|
-
"name": "17-entrance.jpg",
|
|
351
|
-
"caption": "Entrance foyer with original mosaic floor.",
|
|
352
|
-
"tags": {
|
|
353
|
-
"room": "entry",
|
|
354
|
-
"category": "interior"
|
|
355
|
-
},
|
|
356
|
-
"file": "assets/photo/queensway_17_entrance.png",
|
|
357
|
-
"width": 2048,
|
|
358
|
-
"height": 1365
|
|
359
|
-
},
|
|
360
|
-
{
|
|
361
|
-
"id": "dev_upl_queensway_18_patio",
|
|
362
|
-
"kind": "photo",
|
|
363
|
-
"name": "18-patio.jpg",
|
|
364
|
-
"caption": "Patio with built-in seating and planters.",
|
|
365
|
-
"tags": {
|
|
366
|
-
"room": "patio",
|
|
367
|
-
"category": "exterior"
|
|
368
|
-
},
|
|
369
|
-
"file": "assets/photo/queensway_18_patio.png",
|
|
370
|
-
"width": 2048,
|
|
371
|
-
"height": 1365
|
|
372
|
-
},
|
|
373
256
|
{
|
|
374
257
|
"id": "dev_upl_queensway_19_outdoor_deck",
|
|
375
258
|
"kind": "photo",
|
|
376
259
|
"name": "19-outdoor-deck.jpg",
|
|
377
|
-
"caption": "
|
|
260
|
+
"caption": "Rooftop deck at golden hour — the building's primary exterior shot.",
|
|
378
261
|
"tags": {
|
|
379
|
-
"room": "
|
|
262
|
+
"room": "exterior-front",
|
|
380
263
|
"category": "exterior"
|
|
381
264
|
},
|
|
382
265
|
"file": "assets/photo/queensway_19_outdoor_deck.jpg",
|
|
383
266
|
"width": 2048,
|
|
384
267
|
"height": 1536
|
|
385
268
|
},
|
|
386
|
-
{
|
|
387
|
-
"id": "dev_upl_queensway_20_exterior_hero",
|
|
388
|
-
"kind": "photo",
|
|
389
|
-
"name": "20-exterior-hero.jpg",
|
|
390
|
-
"caption": "Mansard victorian facade at golden hour.",
|
|
391
|
-
"tags": {
|
|
392
|
-
"room": "exterior-front",
|
|
393
|
-
"category": "exterior"
|
|
394
|
-
},
|
|
395
|
-
"file": "assets/photo/queensway_20_exterior_hero.png",
|
|
396
|
-
"width": 2048,
|
|
397
|
-
"height": 1453
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"id": "dev_upl_tuscan_road_01_exterior_front",
|
|
401
|
-
"kind": "photo",
|
|
402
|
-
"name": "01-exterior-front.jpg",
|
|
403
|
-
"caption": "Center-hall colonial facade with a covered front porch.",
|
|
404
|
-
"tags": {
|
|
405
|
-
"room": "exterior-front",
|
|
406
|
-
"category": "exterior"
|
|
407
|
-
},
|
|
408
|
-
"file": "assets/photo/tuscan_road_01_exterior_front.png",
|
|
409
|
-
"width": 2048,
|
|
410
|
-
"height": 1365
|
|
411
|
-
},
|
|
412
|
-
{
|
|
413
|
-
"id": "dev_upl_tuscan_road_02_living",
|
|
414
|
-
"kind": "photo",
|
|
415
|
-
"name": "02-living.jpg",
|
|
416
|
-
"caption": "Living room with a bay window and original hardwood floors.",
|
|
417
|
-
"tags": {
|
|
418
|
-
"room": "living",
|
|
419
|
-
"category": "interior"
|
|
420
|
-
},
|
|
421
|
-
"file": "assets/photo/tuscan_road_02_living.png",
|
|
422
|
-
"width": 2048,
|
|
423
|
-
"height": 1365
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
"id": "dev_upl_tuscan_road_03_kitchen",
|
|
427
|
-
"kind": "photo",
|
|
428
|
-
"name": "03-kitchen.jpg",
|
|
429
|
-
"caption": "Updated kitchen with white shaker cabinets and butcher-block counters.",
|
|
430
|
-
"tags": {
|
|
431
|
-
"room": "kitchen",
|
|
432
|
-
"category": "interior"
|
|
433
|
-
},
|
|
434
|
-
"file": "assets/photo/tuscan_road_03_kitchen.png",
|
|
435
|
-
"width": 2048,
|
|
436
|
-
"height": 1365
|
|
437
|
-
},
|
|
438
|
-
{
|
|
439
|
-
"id": "dev_upl_tuscan_road_04_bedroom",
|
|
440
|
-
"kind": "photo",
|
|
441
|
-
"name": "04-bedroom.jpg",
|
|
442
|
-
"caption": "Primary bedroom with double-hung windows and a ceiling fan.",
|
|
443
|
-
"tags": {
|
|
444
|
-
"room": "bedroom",
|
|
445
|
-
"category": "interior"
|
|
446
|
-
},
|
|
447
|
-
"file": "assets/photo/tuscan_road_04_bedroom.png",
|
|
448
|
-
"width": 2048,
|
|
449
|
-
"height": 1365
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
"id": "dev_upl_tuscan_road_05_backyard",
|
|
453
|
-
"kind": "photo",
|
|
454
|
-
"name": "05-backyard.jpg",
|
|
455
|
-
"caption": "Fenced backyard with a paver patio and mature shade trees.",
|
|
456
|
-
"tags": {
|
|
457
|
-
"room": "backyard",
|
|
458
|
-
"category": "exterior"
|
|
459
|
-
},
|
|
460
|
-
"file": "assets/photo/tuscan_road_05_backyard.png",
|
|
461
|
-
"width": 2048,
|
|
462
|
-
"height": 1365
|
|
463
|
-
},
|
|
464
269
|
{
|
|
465
270
|
"id": "dev_efp_pearl_street_unit04_main",
|
|
466
271
|
"kind": "plan",
|
|
@@ -691,16 +496,6 @@
|
|
|
691
496
|
"width": 424,
|
|
692
497
|
"height": 479
|
|
693
498
|
},
|
|
694
|
-
{
|
|
695
|
-
"id": "dev_efp_tuscan_road_main_floor",
|
|
696
|
-
"kind": "plan",
|
|
697
|
-
"name": "main-floor.png",
|
|
698
|
-
"caption": "Full-house floor plan — first and second floor.",
|
|
699
|
-
"tags": {},
|
|
700
|
-
"file": "assets/plan/tuscan_road_main_floor.png",
|
|
701
|
-
"width": 1024,
|
|
702
|
-
"height": 1024
|
|
703
|
-
},
|
|
704
499
|
{
|
|
705
500
|
"id": "dev_lib_bluebird_logo_dark",
|
|
706
501
|
"kind": "library",
|
|
@@ -710,7 +505,9 @@
|
|
|
710
505
|
"role": "logo",
|
|
711
506
|
"variant": "dark"
|
|
712
507
|
},
|
|
713
|
-
"file": "assets/library/bluebird_logo_dark.
|
|
508
|
+
"file": "assets/library/bluebird_logo_dark.png",
|
|
509
|
+
"width": 472,
|
|
510
|
+
"height": 75
|
|
714
511
|
},
|
|
715
512
|
{
|
|
716
513
|
"id": "dev_lib_bluebird_logo_light",
|
|
@@ -721,7 +518,9 @@
|
|
|
721
518
|
"role": "logo",
|
|
722
519
|
"variant": "light"
|
|
723
520
|
},
|
|
724
|
-
"file": "assets/library/bluebird_logo_light.
|
|
521
|
+
"file": "assets/library/bluebird_logo_light.png",
|
|
522
|
+
"width": 472,
|
|
523
|
+
"height": 75
|
|
725
524
|
},
|
|
726
525
|
{
|
|
727
526
|
"id": "dev_lib_elena_marsh",
|
|
@@ -731,9 +530,9 @@
|
|
|
731
530
|
"tags": {
|
|
732
531
|
"role": "headshot"
|
|
733
532
|
},
|
|
734
|
-
"file": "assets/library/elena_marsh.
|
|
735
|
-
"width":
|
|
736
|
-
"height":
|
|
533
|
+
"file": "assets/library/elena_marsh.jpg",
|
|
534
|
+
"width": 360,
|
|
535
|
+
"height": 360
|
|
737
536
|
},
|
|
738
537
|
{
|
|
739
538
|
"id": "dev_lib_james_donovan",
|
|
@@ -744,8 +543,8 @@
|
|
|
744
543
|
"role": "headshot"
|
|
745
544
|
},
|
|
746
545
|
"file": "assets/library/james_donovan.png",
|
|
747
|
-
"width":
|
|
748
|
-
"height":
|
|
546
|
+
"width": 150,
|
|
547
|
+
"height": 150
|
|
749
548
|
},
|
|
750
549
|
{
|
|
751
550
|
"id": "dev_lib_marco_bianchi",
|
|
@@ -755,9 +554,9 @@
|
|
|
755
554
|
"tags": {
|
|
756
555
|
"role": "headshot"
|
|
757
556
|
},
|
|
758
|
-
"file": "assets/library/
|
|
759
|
-
"width":
|
|
760
|
-
"height":
|
|
557
|
+
"file": "assets/library/elena_marsh.jpg",
|
|
558
|
+
"width": 360,
|
|
559
|
+
"height": 360
|
|
761
560
|
},
|
|
762
561
|
{
|
|
763
562
|
"id": "dev_lib_marcus_webb",
|
|
@@ -767,9 +566,9 @@
|
|
|
767
566
|
"tags": {
|
|
768
567
|
"role": "headshot"
|
|
769
568
|
},
|
|
770
|
-
"file": "assets/library/
|
|
771
|
-
"width":
|
|
772
|
-
"height":
|
|
569
|
+
"file": "assets/library/james_donovan.png",
|
|
570
|
+
"width": 150,
|
|
571
|
+
"height": 150
|
|
773
572
|
},
|
|
774
573
|
{
|
|
775
574
|
"id": "dev_lib_ngozi_okafor",
|
|
@@ -779,9 +578,9 @@
|
|
|
779
578
|
"tags": {
|
|
780
579
|
"role": "headshot"
|
|
781
580
|
},
|
|
782
|
-
"file": "assets/library/
|
|
783
|
-
"width":
|
|
784
|
-
"height":
|
|
581
|
+
"file": "assets/library/elena_marsh.jpg",
|
|
582
|
+
"width": 360,
|
|
583
|
+
"height": 360
|
|
785
584
|
},
|
|
786
585
|
{
|
|
787
586
|
"id": "dev_lib_okane_logo_dark",
|
|
@@ -792,7 +591,9 @@
|
|
|
792
591
|
"role": "logo",
|
|
793
592
|
"variant": "dark"
|
|
794
593
|
},
|
|
795
|
-
"file": "assets/library/
|
|
594
|
+
"file": "assets/library/bluebird_logo_dark.png",
|
|
595
|
+
"width": 472,
|
|
596
|
+
"height": 75
|
|
796
597
|
},
|
|
797
598
|
{
|
|
798
599
|
"id": "dev_lib_okane_logo_light",
|
|
@@ -803,7 +604,9 @@
|
|
|
803
604
|
"role": "logo",
|
|
804
605
|
"variant": "light"
|
|
805
606
|
},
|
|
806
|
-
"file": "assets/library/
|
|
607
|
+
"file": "assets/library/bluebird_logo_light.png",
|
|
608
|
+
"width": 472,
|
|
609
|
+
"height": 75
|
|
807
610
|
},
|
|
808
611
|
{
|
|
809
612
|
"id": "dev_lib_priya_chandran",
|
|
@@ -813,9 +616,9 @@
|
|
|
813
616
|
"tags": {
|
|
814
617
|
"role": "headshot"
|
|
815
618
|
},
|
|
816
|
-
"file": "assets/library/
|
|
817
|
-
"width":
|
|
818
|
-
"height":
|
|
619
|
+
"file": "assets/library/james_donovan.png",
|
|
620
|
+
"width": 150,
|
|
621
|
+
"height": 150
|
|
819
622
|
},
|
|
820
623
|
{
|
|
821
624
|
"id": "dev_vid_pearl_street_tour",
|
|
@@ -824,8 +627,8 @@
|
|
|
824
627
|
"caption": "Walkthrough tour of the Pearl Street brick townhome",
|
|
825
628
|
"tags": {},
|
|
826
629
|
"file": "assets/video/pearl_street_tour.mp4",
|
|
827
|
-
"width":
|
|
828
|
-
"height":
|
|
630
|
+
"width": 1920,
|
|
631
|
+
"height": 1080,
|
|
829
632
|
"poster": "assets/video/pearl_street_tour-poster.png"
|
|
830
633
|
},
|
|
831
634
|
{
|
|
@@ -834,9 +637,9 @@
|
|
|
834
637
|
"name": "walkthrough.mp4",
|
|
835
638
|
"caption": "Walkthrough tour of the Jamaica Plain mansard Victorian",
|
|
836
639
|
"tags": {},
|
|
837
|
-
"file": "assets/video/
|
|
838
|
-
"width":
|
|
839
|
-
"height":
|
|
640
|
+
"file": "assets/video/pearl_street_tour.mp4",
|
|
641
|
+
"width": 1920,
|
|
642
|
+
"height": 1080,
|
|
840
643
|
"poster": "assets/video/queensway_walkthrough-poster.png"
|
|
841
644
|
}
|
|
842
645
|
],
|
|
@@ -850,9 +653,7 @@
|
|
|
850
653
|
"dev_upl_pearl_street_05_primary_bedroom",
|
|
851
654
|
"dev_upl_pearl_street_06_second_bedroom",
|
|
852
655
|
"dev_upl_pearl_street_07_primary_bath",
|
|
853
|
-
"dev_upl_pearl_street_08_powder_room"
|
|
854
|
-
"dev_upl_pearl_street_09_balcony",
|
|
855
|
-
"dev_upl_pearl_street_10_rooftop_deck"
|
|
656
|
+
"dev_upl_pearl_street_08_powder_room"
|
|
856
657
|
],
|
|
857
658
|
"plan": [
|
|
858
659
|
"dev_efp_pearl_street_unit04_main",
|
|
@@ -869,8 +670,6 @@
|
|
|
869
670
|
"luxuryMultiUnit": {
|
|
870
671
|
"photo": [
|
|
871
672
|
"dev_upl_queensway_01_lobby",
|
|
872
|
-
"dev_upl_queensway_02_gym_a",
|
|
873
|
-
"dev_upl_queensway_03_gym_b",
|
|
874
673
|
"dev_upl_queensway_04_living_a",
|
|
875
674
|
"dev_upl_queensway_05_living_b",
|
|
876
675
|
"dev_upl_queensway_06_kitchen_a",
|
|
@@ -878,16 +677,10 @@
|
|
|
878
677
|
"dev_upl_queensway_08_dining",
|
|
879
678
|
"dev_upl_queensway_09_living_c",
|
|
880
679
|
"dev_upl_queensway_10_living_d",
|
|
881
|
-
"dev_upl_queensway_11_living_e",
|
|
882
|
-
"dev_upl_queensway_12_living_f",
|
|
883
680
|
"dev_upl_queensway_13_master_bedroom",
|
|
884
681
|
"dev_upl_queensway_14_master_bath_a",
|
|
885
682
|
"dev_upl_queensway_15_master_bath_b",
|
|
886
|
-
"
|
|
887
|
-
"dev_upl_queensway_17_entrance",
|
|
888
|
-
"dev_upl_queensway_18_patio",
|
|
889
|
-
"dev_upl_queensway_19_outdoor_deck",
|
|
890
|
-
"dev_upl_queensway_20_exterior_hero"
|
|
683
|
+
"dev_upl_queensway_19_outdoor_deck"
|
|
891
684
|
],
|
|
892
685
|
"plan": [
|
|
893
686
|
"dev_efp_queensway_2br_11_l1",
|
|
@@ -922,16 +715,6 @@
|
|
|
922
715
|
]
|
|
923
716
|
},
|
|
924
717
|
"sparseSingleFamily": {
|
|
925
|
-
"photo": [
|
|
926
|
-
"dev_upl_tuscan_road_01_exterior_front",
|
|
927
|
-
"dev_upl_tuscan_road_02_living",
|
|
928
|
-
"dev_upl_tuscan_road_03_kitchen",
|
|
929
|
-
"dev_upl_tuscan_road_04_bedroom",
|
|
930
|
-
"dev_upl_tuscan_road_05_backyard"
|
|
931
|
-
],
|
|
932
|
-
"plan": [
|
|
933
|
-
"dev_efp_tuscan_road_main_floor"
|
|
934
|
-
],
|
|
935
718
|
"library": [
|
|
936
719
|
"dev_lib_priya_chandran"
|
|
937
720
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homepages/dev-media",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1",
|
|
4
4
|
"description": "Dev-only media pack for template authoring: the asset bytes the fixture corpus resolves against, plus the manifest that indexes them.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
package/selection.json
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
"cleared": {
|
|
5
5
|
"pearl-street": "cleared for public redistribution",
|
|
6
6
|
"queensway": "cleared for public redistribution",
|
|
7
|
-
"queensway-annex": "cleared for public redistribution"
|
|
7
|
+
"queensway-annex": "cleared for public redistribution",
|
|
8
|
+
"contributor-headshot": "personal photo contributed by a project maintainer, cleared for use as dev fixture media",
|
|
9
|
+
"stock-photo-library": "Unsplash License \u2014 free to use for commercial and non-commercial purposes without permission",
|
|
10
|
+
"compass-public-logo": "publicly available brand wordmark, used as illustrative placeholder logo art for a dev-only fixture pack \u2014 not an endorsement by or affiliation with Compass",
|
|
11
|
+
"stock-video-library": "licensed stock footage, cleared by the rights holder for redistribution in this pack"
|
|
8
12
|
},
|
|
9
13
|
"selections": [
|
|
10
14
|
{
|
|
@@ -622,73 +626,122 @@
|
|
|
622
626
|
"position": 1,
|
|
623
627
|
"reused": true
|
|
624
628
|
}
|
|
625
|
-
}
|
|
626
|
-
],
|
|
627
|
-
"skipped": [
|
|
628
|
-
{
|
|
629
|
-
"dev_id": "dev_upl_pearl_street_09_balcony",
|
|
630
|
-
"reason": "room=balcony has no equivalent in the tagger vocabulary"
|
|
631
629
|
},
|
|
632
630
|
{
|
|
633
|
-
"dev_id": "
|
|
634
|
-
"
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
"
|
|
638
|
-
"
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
"dev_id": "dev_upl_queensway_03_gym_b",
|
|
642
|
-
"reason": "room=gym has no equivalent in the tagger vocabulary"
|
|
643
|
-
},
|
|
644
|
-
{
|
|
645
|
-
"dev_id": "dev_upl_queensway_11_living_e",
|
|
646
|
-
"reason": "no unused source tagged room=living"
|
|
631
|
+
"dev_id": "dev_lib_bluebird_logo_dark",
|
|
632
|
+
"local_file": "sources/library/compass_wordmark.png",
|
|
633
|
+
"width": 472,
|
|
634
|
+
"height": 75,
|
|
635
|
+
"source_name": "compass_wordmark.png",
|
|
636
|
+
"provenance": "compass-public-logo",
|
|
637
|
+
"rights": "publicly available brand wordmark, used as illustrative placeholder logo art for a dev-only fixture pack \u2014 not an endorsement by or affiliation with Compass",
|
|
638
|
+
"sha256": "01bc4e40b17652d6ae221139a53bc3599eb24b197c7f787084309ee290b90872"
|
|
647
639
|
},
|
|
648
640
|
{
|
|
649
|
-
"dev_id": "
|
|
650
|
-
"
|
|
641
|
+
"dev_id": "dev_lib_bluebird_logo_light",
|
|
642
|
+
"local_file": "sources/library/compass_wordmark_dark.png",
|
|
643
|
+
"width": 472,
|
|
644
|
+
"height": 75,
|
|
645
|
+
"source_name": "compass_wordmark_dark.png",
|
|
646
|
+
"provenance": "compass-public-logo",
|
|
647
|
+
"rights": "publicly available brand wordmark, used as illustrative placeholder logo art for a dev-only fixture pack \u2014 not an endorsement by or affiliation with Compass",
|
|
648
|
+
"sha256": "acb7287a9aa1eb378609e6a9c8c0e55b186669ae8e8a881c515c55332cf2faf8"
|
|
651
649
|
},
|
|
652
650
|
{
|
|
653
|
-
"dev_id": "
|
|
654
|
-
"
|
|
651
|
+
"dev_id": "dev_lib_elena_marsh",
|
|
652
|
+
"local_file": "sources/library/headshot.jpg",
|
|
653
|
+
"width": 360,
|
|
654
|
+
"height": 360,
|
|
655
|
+
"source_name": "headshot.jpg",
|
|
656
|
+
"provenance": "contributor-headshot",
|
|
657
|
+
"rights": "personal photo contributed by a project maintainer, cleared for use as dev fixture media",
|
|
658
|
+
"sha256": "c0e230b8532c648f2c0bb51e821ca981fac218cb5ee8f78358782753af21b1d6"
|
|
655
659
|
},
|
|
656
660
|
{
|
|
657
|
-
"dev_id": "
|
|
658
|
-
"
|
|
661
|
+
"dev_id": "dev_lib_james_donovan",
|
|
662
|
+
"local_file": "sources/library/unsplash_7YVZYZeITc8.png",
|
|
663
|
+
"width": 150,
|
|
664
|
+
"height": 150,
|
|
665
|
+
"source_name": "unsplash_7YVZYZeITc8.png",
|
|
666
|
+
"provenance": "stock-photo-library",
|
|
667
|
+
"rights": "Unsplash License \u2014 free to use for commercial and non-commercial purposes without permission",
|
|
668
|
+
"sha256": "b85f10a4c182d510d98a9bc30559e942b7304809e964b167c6dea081d4ad633b"
|
|
659
669
|
},
|
|
660
670
|
{
|
|
661
|
-
"dev_id": "
|
|
662
|
-
"
|
|
671
|
+
"dev_id": "dev_lib_marco_bianchi",
|
|
672
|
+
"local_file": "sources/library/headshot.jpg",
|
|
673
|
+
"width": 360,
|
|
674
|
+
"height": 360,
|
|
675
|
+
"source_name": "headshot.jpg",
|
|
676
|
+
"provenance": "contributor-headshot",
|
|
677
|
+
"rights": "personal photo contributed by a project maintainer, cleared for use as dev fixture media"
|
|
663
678
|
},
|
|
664
679
|
{
|
|
665
|
-
"dev_id": "
|
|
666
|
-
"
|
|
680
|
+
"dev_id": "dev_lib_marcus_webb",
|
|
681
|
+
"local_file": "sources/library/unsplash_7YVZYZeITc8.png",
|
|
682
|
+
"width": 150,
|
|
683
|
+
"height": 150,
|
|
684
|
+
"source_name": "unsplash_7YVZYZeITc8.png",
|
|
685
|
+
"provenance": "stock-photo-library",
|
|
686
|
+
"rights": "Unsplash License \u2014 free to use for commercial and non-commercial purposes without permission"
|
|
667
687
|
},
|
|
668
688
|
{
|
|
669
|
-
"dev_id": "
|
|
670
|
-
"
|
|
689
|
+
"dev_id": "dev_lib_ngozi_okafor",
|
|
690
|
+
"local_file": "sources/library/headshot.jpg",
|
|
691
|
+
"width": 360,
|
|
692
|
+
"height": 360,
|
|
693
|
+
"source_name": "headshot.jpg",
|
|
694
|
+
"provenance": "contributor-headshot",
|
|
695
|
+
"rights": "personal photo contributed by a project maintainer, cleared for use as dev fixture media"
|
|
671
696
|
},
|
|
672
697
|
{
|
|
673
|
-
"dev_id": "
|
|
674
|
-
"
|
|
698
|
+
"dev_id": "dev_lib_okane_logo_dark",
|
|
699
|
+
"local_file": "sources/library/compass_wordmark.png",
|
|
700
|
+
"width": 472,
|
|
701
|
+
"height": 75,
|
|
702
|
+
"source_name": "compass_wordmark.png",
|
|
703
|
+
"provenance": "compass-public-logo",
|
|
704
|
+
"rights": "publicly available brand wordmark, used as illustrative placeholder logo art for a dev-only fixture pack \u2014 not an endorsement by or affiliation with Compass"
|
|
675
705
|
},
|
|
676
706
|
{
|
|
677
|
-
"dev_id": "
|
|
678
|
-
"
|
|
707
|
+
"dev_id": "dev_lib_okane_logo_light",
|
|
708
|
+
"local_file": "sources/library/compass_wordmark_dark.png",
|
|
709
|
+
"width": 472,
|
|
710
|
+
"height": 75,
|
|
711
|
+
"source_name": "compass_wordmark_dark.png",
|
|
712
|
+
"provenance": "compass-public-logo",
|
|
713
|
+
"rights": "publicly available brand wordmark, used as illustrative placeholder logo art for a dev-only fixture pack \u2014 not an endorsement by or affiliation with Compass"
|
|
679
714
|
},
|
|
680
715
|
{
|
|
681
|
-
"dev_id": "
|
|
682
|
-
"
|
|
716
|
+
"dev_id": "dev_lib_priya_chandran",
|
|
717
|
+
"local_file": "sources/library/unsplash_7YVZYZeITc8.png",
|
|
718
|
+
"width": 150,
|
|
719
|
+
"height": 150,
|
|
720
|
+
"source_name": "unsplash_7YVZYZeITc8.png",
|
|
721
|
+
"provenance": "stock-photo-library",
|
|
722
|
+
"rights": "Unsplash License \u2014 free to use for commercial and non-commercial purposes without permission"
|
|
683
723
|
},
|
|
684
724
|
{
|
|
685
|
-
"dev_id": "
|
|
686
|
-
"
|
|
725
|
+
"dev_id": "dev_vid_pearl_street_tour",
|
|
726
|
+
"local_file": "sources/video/property_walkthrough.mp4",
|
|
727
|
+
"width": 1920,
|
|
728
|
+
"height": 1080,
|
|
729
|
+
"source_name": "property_walkthrough.mp4",
|
|
730
|
+
"provenance": "stock-video-library",
|
|
731
|
+
"rights": "licensed stock footage, cleared by the rights holder for redistribution in this pack",
|
|
732
|
+
"sha256": "e415dd70c89355d47c01795092b6ec7560750257a83b9e81df079439fbada616"
|
|
687
733
|
},
|
|
688
734
|
{
|
|
689
|
-
"dev_id": "
|
|
690
|
-
"
|
|
691
|
-
|
|
735
|
+
"dev_id": "dev_vid_queensway_walkthrough",
|
|
736
|
+
"local_file": "sources/video/property_walkthrough.mp4",
|
|
737
|
+
"width": 1920,
|
|
738
|
+
"height": 1080,
|
|
739
|
+
"source_name": "property_walkthrough.mp4",
|
|
740
|
+
"provenance": "stock-video-library",
|
|
741
|
+
"rights": "licensed stock footage, cleared by the rights holder for redistribution in this pack"
|
|
742
|
+
}
|
|
743
|
+
],
|
|
744
|
+
"skipped": [
|
|
692
745
|
{
|
|
693
746
|
"dev_id": "dev_lib_bluebird_logo_dark",
|
|
694
747
|
"reason": "no source: logos are fictional brands and headshots are fictional people"
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 120" role="img" aria-label="Bluebird Realty Group">
|
|
2
|
-
<rect width="480" height="120" fill="#22262c"/>
|
|
3
|
-
<circle cx="60" cy="60" r="28" fill="none" stroke="#f4f6f8" stroke-width="6"/>
|
|
4
|
-
<text x="108" y="70" font-family="Helvetica, Arial, sans-serif" font-size="26" fill="#f4f6f8">Bluebird Realty Group</text>
|
|
5
|
-
</svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 120" role="img" aria-label="Bluebird Realty Group">
|
|
2
|
-
<rect width="480" height="120" fill="#f4f6f8"/>
|
|
3
|
-
<circle cx="60" cy="60" r="28" fill="none" stroke="#22262c" stroke-width="6"/>
|
|
4
|
-
<text x="108" y="70" font-family="Helvetica, Arial, sans-serif" font-size="26" fill="#22262c">Bluebird Realty Group</text>
|
|
5
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 120" role="img" aria-label="Okane Marketing">
|
|
2
|
-
<rect width="480" height="120" fill="#22262c"/>
|
|
3
|
-
<circle cx="60" cy="60" r="28" fill="none" stroke="#f4f6f8" stroke-width="6"/>
|
|
4
|
-
<text x="108" y="70" font-family="Helvetica, Arial, sans-serif" font-size="26" fill="#f4f6f8">Okane Marketing</text>
|
|
5
|
-
</svg>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 120" role="img" aria-label="Okane Marketing">
|
|
2
|
-
<rect width="480" height="120" fill="#f4f6f8"/>
|
|
3
|
-
<circle cx="60" cy="60" r="28" fill="none" stroke="#22262c" stroke-width="6"/>
|
|
4
|
-
<text x="108" y="70" font-family="Helvetica, Arial, sans-serif" font-size="26" fill="#22262c">Okane Marketing</text>
|
|
5
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|