@finbheara/archive-client 0.30.0 → 0.32.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.
package/README.md CHANGED
@@ -88,8 +88,10 @@ c.features; // [{ feature: "dancers", state: "full" | "missing", missing: [...
88
88
  | `feises`, `comps` | `feises.find`, `feises.series`, `comps.*`, `registrations.resolve` | 265 |
89
89
  | `comps.dance` | the `dance` a comp of `comps.*` carries: null, never refused, without it | 270 |
90
90
  | `results.stream`, `majors.stream` | `results.stream`, `results.entries` | 255 |
91
+ | `results.stream.competition`, `majors.stream.competition` | the competition fields a streamed row carries (`competition_line`, `dance_printed`, `dance`, `recalled_only`, `comp_flags`, `competitors_basis`); absent, never refused, without them | 270 |
91
92
  | `feises.dates` | `feises.dates` | 245 |
92
93
  | `dancers.records` | `dancers.records` | 215 |
94
+ | `dancers.records.names` | the `names_printed` a record of `dancers.records` carries; absent, never refused, without it | 215 |
93
95
  | `dancers.years` | `dancers.years` | 245 |
94
96
  | `majors.tabs` | `majors.tabulated` | 215 |
95
97
  | `teams` | `teams.results`, `teams.rosters`, `teams.resultRosters` | 260 |
@@ -210,6 +212,14 @@ s.next; // the next scheduled instance where the release knows one, else n
210
212
  A series is asked by any id of it (a feis, instance or brand id, a retired one followed), by a
211
213
  host code with or without its year (held codes `<stem><yy>` whose two digits are their own year,
212
214
  never a host id of digits alone, which is a sequence number), or by a name (a glob, or a plain word read as `*word*`). Two series answer `ambiguous` with both.
215
+ A MAJORS EVENT IS NO FEIS SERIES. A code of the release's roster (`NAIDC`, either case) is never
216
+ read as a name, so it never answers a feis whose name happens to print its letters. It answers the
217
+ series the release files that event's platform captures under (the code in lowercase, its
218
+ instances the code and a four-digit year, `via: "majors"`), or `none` with `why` naming the event,
219
+ and `s.major` is its roster row (`{ code, tier, name }`). `rel.comps.place` reads it the same way: the captures of the asked event-year, held, or
220
+ no feis with `why`. The roster is the manifest's `roster`; a release written before it carries one
221
+ reads the codes its rows show are majors (a `T1` to `T3` event, a series filed under event-year
222
+ instances), and a code those rows never name is not known there (`rosterOf(rel)`).
213
223
  `next` is the series' earliest occurrence of the feis-index dated on or after the cut's day
214
224
  (`rel.upcoming.feises`, state `upcoming`), under its brand id or one retired onto it: `{ feis_id,
215
225
  date, date_hi, occurrence_id, name_printed, hosts, captured_id, series_basis }`, `feis_id` the
@@ -565,6 +575,25 @@ competition beside its own fields: `competition`, `event`, `year`, `tier`, `comp
565
575
  `(file, line)` is one row, where an `address` may carry one row per section). Rows come in the
566
576
  release's own order, a competition's rows together.
567
577
 
578
+ THE COMPETITION FIELDS, where the release carries them (`rel.capability("results.stream.competition")`,
579
+ `"majors.stream.competition"` for scope `majors`), are on every row, null meaning no value:
580
+
581
+ | field | what it is |
582
+ | --- | --- |
583
+ | `competition_line` | the competition's own line in `file`: `(file, competition_line)` is one competition of the release exactly |
584
+ | `dance_printed` | the dance field as the page printed it. A platform that prints no title prints only this, so a filter on the kind of competition reads `title` and `dance_printed` together |
585
+ | `dance` | the competition's one dance as the release reads it (`reel`), null where it reads none |
586
+ | `recalled_only` | true where the page printed the recalled dancers only |
587
+ | `comp_flags` | what the page printed about itself, int-packed, one bit a flag (bit 10: recalled only). The release's `DATA-DICTIONARY.md` carries the register of every bit, and a published bit never moves |
588
+ | `competitors_basis` | what `competitors` stands on: `printed` (the page printed a competed count), `counted` (the page printed the whole field, its cards counted), `entered` or `registered` (only the top was printed: the page's entered or registered count), null where there is no number |
589
+
590
+ A release without them streams every row with the six fields ABSENT, never null.
591
+
592
+ THE COMPETITION'S KEY is `competition` (`<event-year>.<comp>` at a major, `<platform>:<host>.<comp>`
593
+ at a feis), which holds across releases. Inside one release `(file, competition_line)` is exact: a
594
+ competition captured twice (two files of one platform) carries one `competition` in both and two
595
+ `(file, competition_line)` keys, and `primary_source` names the copy another source stands in for.
596
+
568
597
  The scopes: `majors` reads the majors (tiers T1 to T3), `transcribed` the transcribed rows of
569
598
  every tier, `platform` every row a results platform published, `all` every row.
570
599
 
@@ -578,13 +607,20 @@ the place the address's recall row carries.
578
607
 
579
608
  ```ts
580
609
  await rel.dancers.records(); // every dancer: display, appearances, birth_lo, birth_hi,
581
- // birth_source, birth_conflict, genders, scope
610
+ // birth_source, birth_conflict, genders, scope,
611
+ // names_printed (dancers.records.names)
582
612
  await rel.dancers.records({ ids: [1001] });
583
613
  await rel.dancers.years({ ids: [1001], year: 2025 }); // region, region_source, nationals, geohash
584
614
  await rel.feises.dates(); // every feis id with its first and last day
585
615
  await rel.majors.tabulated({ min_true_round: 3 }); // the majors addresses marked to round 3 or later
586
616
  ```
587
617
 
618
+ `dancers.records` covers EVERY dancer the release gives an id: a majors dancer, a feis row attached
619
+ to one, and a feis-local dancer (`scope: "per-release"`, valid in its release only). It is not the
620
+ majors' dancers only. A caller who wants those keeps the `dancer_id`s a `scope: "majors"` stream
621
+ carries. `names_printed` is every distinct name the dancer's rows print, sorted, over every row of
622
+ the dancer, feis rows included.
623
+
588
624
  ## Marks sheets and panels
589
625
 
590
626
  ```ts
@@ -781,7 +817,7 @@ A feis the release holds names itself, its year and its series. A platform feis
781
817
  (`<token>:<host>`) the release holds competitions of and no `feises` line names (a source that
782
818
  carried a feis's results and not the feis itself) is held too, on its own id and its competitions'
783
819
  year (`via: "id"`, as a feis with its line is), its series the one its host code reaches if
784
- exactly one brand matches the stem, else null. A majors or championship event id is never held so. A series instance or brand id
820
+ exactly one brand matches the stem, else null. A majors or championship event id is never held so: a roster code places only the platform captures filed under its event-year (`via: "majors"`), else nothing, saying why. A series instance or brand id
785
821
  names the series. A feis id the release does not hold is placed in a series by its host code
786
822
  (`<token>:<stem><yy>` where the held codes of that stem carry their own year), and a stem two
787
823
  series share answers `ambiguous`. A host id of digits alone (`qf:926`, `fw:1001`) is a sequence