@finbheara/archive-client 0.26.0 → 0.28.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
@@ -661,8 +661,8 @@ o.feises; // [{ occurrence_id, occurrence_ids, name_printed, date_lo, date_hi
661
661
  // feis_brand_id, feis_instance_id, series_basis, brand_candidates, captured_id, state }]
662
662
  const f = await rel.upcoming.fields({ state: "pending" }); // state, feis, field_id, from, to
663
663
  f.fields; // [{ field_id, feis_id, source, host_id, competition_code, count_only, occurrence_id,
664
- // name_printed, date_lo, date_hi, year, feis_brand_id, comp, state,
665
- // results_competitions, results_feis_ids, version, versions, captured_date, sha256,
664
+ // name_printed, date_lo, date_hi, year, feis_brand_id, comp, state, flags,
665
+ // results_competitions, results_feis_ids, held_out, version, versions, captured_date, sha256,
666
666
  // limits, entrants, stated_rows, printed_total }]
667
667
  const e = await rel.upcoming.entrants({ field_id: "fweb:ABC26/101" }); // version: an older capture
668
668
  e.entrants; // [{ name_printed, school_printed, school_id, yob, arm, candidates, flags,
@@ -677,18 +677,25 @@ says how; `none` leaves `feis_brand_id` null, the unjoined ones).
677
677
  A FIELD is one competition a competitor list names, `<feis_id>/<code>`, the same id on every cut. A later capture of the host is a new `version`
678
678
  (a capture id; `versions` lists them), never a new field. `state` says how it stands on the cut:
679
679
  `pending` (on the list), `results` (the release holds its results, `results_competitions` the
680
- join), `passed` (its first day is before the cut's day and no result is held) or `withdrawn` (the
681
- host's newest capture no longer lists it). `comp` is the competition reading of its code (`arm`,
682
- `level`, `feis_level`, `age`, `population`, `kind`, `title`, `why`), null on a count list.
680
+ join), `held-out` (the results exist and the release holds them out: the platform door's knockout
681
+ lists the competition, a team, music or arts event, and `held_out` names each competition with the
682
+ knockout's reason, so there is nothing to score against), `passed` (its first day is before the
683
+ cut's day and no result is held) or `withdrawn` (the host's newest capture no longer lists it). `comp` is the competition reading of its code (`arm`,
684
+ `level`, `feis_level`, `age`, `population`, `kind`, `title`, `why`), null on a count list. A
685
+ QuickFeis registrant list's field reads it off the list's own by-event label (`source`
686
+ `registration-list`, `title` the label as printed), and `flags` holds the cross-check of the
687
+ list's two documents (`no-event-section`, `event-rows-differ`); `[]` on any other field.
683
688
  `limits` names what the capture cannot show (`registered-not-danced`, `paid-in-full-only`, ...).
684
689
 
685
690
  `upcoming.entrants` answers a field's rows in one version, its current one by default. A
686
691
  registrant carries the resolver's `arm` and `candidates`, NEVER A `dancer_id`: a list shows who
687
692
  registered, not who danced, and a `unique` row's one candidate is read with its `flags`
688
- (`initial-only`: a FeisWeb print is a surname and an initial). `count_only` marks a field read from
689
- a registration-by-school page of the corpus `entrants/` part: its rows are schools' counts
690
- (`level_counts`), with no names. A QuickFeis registrant list (`transcripts/*.registrationlist.jsonl`)
691
- is not read into these tables yet. An unknown field or version answers no rows and says
693
+ (`initial-only`: a FeisWeb print is a surname and an initial; `name-hidden`: QuickFeis printed
694
+ `(Name Hidden)`, so the row has no name and no answer). A QuickFeis registrant list
695
+ (`transcripts/*.registrationlist.jsonl`) is one field per printed code, each registrant a row as
696
+ printed. `count_only` marks a field read from an older registration-by-school page of
697
+ the corpus `entrants/` part: its rows are schools' counts (`level_counts`), with no names, and a
698
+ host with a registrant list publishes no such field. An unknown field or version answers no rows and says
692
699
  why. On a release without the tables each call refuses by name.
693
700
 
694
701
  ## Teachers and adjudicators
@@ -3950,7 +3950,13 @@ function needsRelease2(tag, c) {
3950
3950
  return new Error(`archive-client: ${tag} is too old for ${c.feature} (${c.calls}): it lacks ${c.missing.join(", ")}. Open a release of cut ${c.since} or later`);
3951
3951
  }
3952
3952
 
3953
- var FIELD_STATES2 = ["pending", "results", "passed", "withdrawn"];
3953
+ var FIELD_STATES2 = [
3954
+ "pending",
3955
+ "results",
3956
+ "held-out",
3957
+ "passed",
3958
+ "withdrawn"
3959
+ ];
3954
3960
  var json = (s, empty) => typeof s === "string" && s !== "" ? JSON.parse(s) : empty;
3955
3961
  function fieldOf(r) {
3956
3962
  const countOnly = r.count_only === 1;
@@ -3979,8 +3985,10 @@ function fieldOf(r) {
3979
3985
  why: r.comp_why ?? null
3980
3986
  },
3981
3987
  state: r.state,
3988
+ flags: json(r.flags, []),
3982
3989
  results_competitions: json(r.results_competitions, []),
3983
3990
  results_feis_ids: json(r.results_feis_ids, []),
3991
+ held_out: json(r.held_out, []),
3984
3992
  version: r.version,
3985
3993
  versions: json(r.versions, []),
3986
3994
  captured_date: r.captured_date,
package/dist/cli.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  latestCheck2,
22
22
  within,
23
23
  staleWarning2
24
- } from "./chunks/index-8mwx3n9j.js";
24
+ } from "./chunks/index-5rnb63kw.js";
25
25
  import"./chunks/index-hghdy980.js";
26
26
 
27
27
  var USAGE_HEADER = "usage: idq <verb> [--cache <dir>] [--repo <owner/name>] [--json] [--live]";
@@ -374,7 +374,7 @@ var VERBS = [
374
374
  ],
375
375
  bool: ["--feises"],
376
376
  usage: [
377
- " upcoming [--release <spec>] [--state pending,results,passed,withdrawn] [--feis <id>]",
377
+ " upcoming [--release <spec>] [--state pending,results,held-out,passed,withdrawn] [--feis <id>]",
378
378
  " [--from <date>] [--to <date>]",
379
379
  " the competitor lists' fields, each with its state, version",
380
380
  " and competition reading; --feis a feis, series or",
package/dist/index.js CHANGED
@@ -74,7 +74,7 @@ import {
74
74
  readLatestCheck2,
75
75
  latestCheck2,
76
76
  staleWarning2
77
- } from "./chunks/index-8mwx3n9j.js";
77
+ } from "./chunks/index-5rnb63kw.js";
78
78
  import {
79
79
  cacheRoot2,
80
80
  repoOf2
@@ -24,5 +24,5 @@ export { type Capability, FEATURES, type Feature, type SchemaProbe, capabilityOf
24
24
  export { type EntryRow, type StreamQuery, type StreamRow, type StreamScope, entryRank, } from "./stream.js";
25
25
  export { type FeisPanelSeat, FeisPanelFinder, PanelFinder, type PanelSeat, type RegisterRow, type TabAnswer, TabFinder, type TabQuery, type TabRow, type TabStreamQuery, } from "./tabs.js";
26
26
  export { EventFinder, type EventYear, type EventYearQuery, type ResultRoster, type RosterMember, type RosterTeam, TeamFinder, type TeamResult, } from "./teams.js";
27
- export { type EntrantCandidate, FIELD_STATES, type FieldComp, type FieldState, type UpcomingEntrant, type UpcomingEntrantAnswer, type UpcomingEntrantQuery, type UpcomingFeis, type UpcomingFeisAnswer, type UpcomingFeisQuery, type UpcomingFeisState, type UpcomingField, type UpcomingFieldAnswer, type UpcomingFieldQuery, UpcomingFinder, type UpcomingHost, } from "./upcoming.js";
27
+ export { type EntrantCandidate, FIELD_STATES, type FieldComp, type FieldState, type HeldOut, type UpcomingEntrant, type UpcomingEntrantAnswer, type UpcomingEntrantQuery, type UpcomingFeis, type UpcomingFeisAnswer, type UpcomingFeisQuery, type UpcomingFeisState, type UpcomingField, type UpcomingFieldAnswer, type UpcomingFieldQuery, UpcomingFinder, type UpcomingHost, } from "./upcoming.js";
28
28
  export { ARCHIVE_TAG, type ArchiveTag, type ReleaseSpec, compareTagsNewestFirst, cutOf, parseArchiveTag, parseReleaseSpec, pickTag, renderArchiveTag, } from "./tag.js";
@@ -1,6 +1,10 @@
1
1
  import type { Release } from "./release.js";
2
- export type FieldState = "pending" | "results" | "passed" | "withdrawn";
2
+ export type FieldState = "pending" | "results" | "held-out" | "passed" | "withdrawn";
3
3
  export declare const FIELD_STATES: readonly FieldState[];
4
+ export interface HeldOut {
5
+ competition: string;
6
+ reason: string;
7
+ }
4
8
  export type UpcomingFeisState = "upcoming" | "no-results";
5
9
  export interface UpcomingHost {
6
10
  source: string;
@@ -53,8 +57,10 @@ export interface UpcomingField {
53
57
  feis_brand_id: string | null;
54
58
  comp: FieldComp | null;
55
59
  state: FieldState;
60
+ flags: string[];
56
61
  results_competitions: string[];
57
62
  results_feis_ids: string[];
63
+ held_out: HeldOut[];
58
64
  version: string;
59
65
  versions: string[];
60
66
  captured_date: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finbheara/archive-client",
3
- "version": "0.26.0",
3
+ "version": "0.28.0",
4
4
  "description": "Open a versioned release of an Irish dance results archive: download, verify, decompress and cache it by tag, keep the cache, and resolve feises and schools against it",
5
5
  "keywords": ["irish-dance", "results", "release", "cache", "sqlite"],
6
6
  "license": "MIT",
@@ -44,7 +44,7 @@
44
44
  "prepublishOnly": "bun scripts/build.ts && bun ../../tools/checks/archive-client-tarball.ts"
45
45
  },
46
46
  "dependencies": {
47
- "@finbheara/domain": "0.57.2",
47
+ "@finbheara/domain": "0.58.0",
48
48
  "@finbheara/names": "0.30.0",
49
49
  "hyparquet": "1.31.2"
50
50
  },