ochre-sdk 1.0.78 → 1.1.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.
Files changed (84) hide show
  1. package/README.md +31 -3
  2. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  3. package/dist/categories.d.mts +249 -0
  4. package/dist/categories.mjs +259 -0
  5. package/dist/constants.d.mts +14 -0
  6. package/dist/constants.mjs +18 -1
  7. package/dist/errors.d.mts +23 -0
  8. package/dist/{utilities.mjs → errors.mjs} +33 -84
  9. package/dist/fetchers/gallery.mjs +15 -51
  10. package/dist/fetchers/item-children.mjs +20 -66
  11. package/dist/fetchers/item-links.mjs +26 -79
  12. package/dist/fetchers/item-ocr-data.d.mts +2 -2
  13. package/dist/fetchers/item-ocr-data.mjs +11 -15
  14. package/dist/fetchers/item.d.mts +0 -15
  15. package/dist/fetchers/item.mjs +20 -72
  16. package/dist/fetchers/request.d.mts +70 -0
  17. package/dist/fetchers/request.mjs +100 -0
  18. package/dist/fetchers/set/items.mjs +27 -73
  19. package/dist/fetchers/set/property-values.d.mts +2 -3
  20. package/dist/fetchers/set/property-values.mjs +96 -130
  21. package/dist/fetchers/website-metadata.mjs +35 -57
  22. package/dist/fetchers/website.d.mts +2 -3
  23. package/dist/fetchers/website.mjs +22 -31
  24. package/dist/getters.d.mts +78 -148
  25. package/dist/getters.mjs +127 -208
  26. package/dist/helpers.d.mts +0 -4
  27. package/dist/helpers.mjs +19 -6
  28. package/dist/index.d.mts +8 -6
  29. package/dist/index.mjs +6 -4
  30. package/dist/ocr.d.mts +37 -0
  31. package/dist/ocr.mjs +52 -0
  32. package/dist/parsers/helpers.d.mts +21 -1
  33. package/dist/parsers/helpers.mjs +26 -6
  34. package/dist/parsers/index.d.mts +0 -8
  35. package/dist/parsers/index.mjs +118 -259
  36. package/dist/parsers/languages.d.mts +72 -0
  37. package/dist/parsers/languages.mjs +132 -0
  38. package/dist/parsers/multilingual.d.mts +49 -74
  39. package/dist/parsers/multilingual.mjs +88 -189
  40. package/dist/parsers/property-token.d.mts +34 -0
  41. package/dist/parsers/property-token.mjs +29 -0
  42. package/dist/parsers/string.d.mts +19 -0
  43. package/dist/parsers/string.mjs +45 -25
  44. package/dist/parsers/website/bounds.d.mts +10 -0
  45. package/dist/parsers/website/bounds.mjs +28 -0
  46. package/dist/parsers/website/components.d.mts +91 -0
  47. package/dist/parsers/website/components.mjs +681 -0
  48. package/dist/parsers/website/index.d.mts +0 -7
  49. package/dist/parsers/website/index.mjs +92 -1153
  50. package/dist/parsers/website/links.d.mts +36 -0
  51. package/dist/parsers/website/links.mjs +58 -0
  52. package/dist/parsers/website/messages.d.mts +24 -0
  53. package/dist/parsers/website/messages.mjs +31 -0
  54. package/dist/parsers/website/options.d.mts +6 -0
  55. package/dist/parsers/website/options.mjs +114 -0
  56. package/dist/parsers/website/properties.d.mts +12 -0
  57. package/dist/parsers/website/properties.mjs +158 -0
  58. package/dist/parsers/website/reader.d.mts +54 -4
  59. package/dist/parsers/website/reader.mjs +65 -20
  60. package/dist/parsers/website/slug.d.mts +64 -0
  61. package/dist/parsers/website/slug.mjs +82 -0
  62. package/dist/parsers/website/styles.d.mts +28 -0
  63. package/dist/parsers/website/styles.mjs +103 -0
  64. package/dist/parsers/website/walk.d.mts +68 -0
  65. package/dist/parsers/website/walk.mjs +116 -0
  66. package/dist/query.d.mts +66 -18
  67. package/dist/query.mjs +202 -48
  68. package/dist/reflection.d.mts +64 -0
  69. package/dist/reflection.mjs +79 -0
  70. package/dist/schemas.d.mts +7 -0
  71. package/dist/schemas.mjs +12 -3
  72. package/dist/types/index.d.mts +1 -31
  73. package/dist/types/utilities.d.mts +9 -0
  74. package/dist/types/utilities.mjs +1 -0
  75. package/dist/types/website.d.mts +49 -58
  76. package/dist/xml/metadata.d.mts +16 -0
  77. package/dist/xml/metadata.mjs +32 -11
  78. package/dist/xml/schemas.d.mts +5970 -3
  79. package/dist/xml/schemas.mjs +43 -45
  80. package/dist/xml/types.d.mts +13 -30
  81. package/dist/xquery.d.mts +46 -0
  82. package/dist/xquery.mjs +66 -0
  83. package/package.json +3 -3
  84. package/dist/utilities.d.mts +0 -54
@@ -0,0 +1,28 @@
1
+ //#region src/parsers/website/bounds.ts
2
+ /**
3
+ * Parses raw bounds data into a standardized bounds structure
4
+ *
5
+ * @param bounds - Raw bounds data in OCHRE format
6
+ * @returns Parsed bounds object
7
+ * @internal
8
+ */
9
+ function parseBounds(bounds) {
10
+ const [southWest, northEast] = bounds.trimStart().startsWith("[") ? parseJsonBounds(bounds) : bounds.split(";").map((pair) => pair.split(",").map((coordinate) => Number(coordinate.trim())));
11
+ if (southWest?.length !== 2 || northEast?.length !== 2 || southWest.some((coordinate) => Number.isNaN(coordinate)) || northEast.some((coordinate) => Number.isNaN(coordinate))) throw new Error(`Invalid bounds: ${bounds}`, { cause: bounds });
12
+ return [[southWest[0], southWest[1]], [northEast[0], northEast[1]]];
13
+ }
14
+ function parseJsonBounds(bounds) {
15
+ let parsed;
16
+ try {
17
+ parsed = JSON.parse(bounds);
18
+ } catch {
19
+ throw new Error(`Invalid bounds: ${bounds}`, { cause: bounds });
20
+ }
21
+ if (!isNumberPairArray(parsed)) throw new Error(`Invalid bounds: ${bounds}`, { cause: bounds });
22
+ return parsed;
23
+ }
24
+ function isNumberPairArray(value) {
25
+ return Array.isArray(value) && value.every((pair) => Array.isArray(pair) && pair.every((coordinate) => typeof coordinate === "number"));
26
+ }
27
+ //#endregion
28
+ export { parseBounds };
@@ -0,0 +1,91 @@
1
+ import { WebElement, WebElementComponent, WebTitle } from "../../types/website.mjs";
2
+ import { Identification, ItemLinks, SimplifiedProperty } from "../../types/index.mjs";
3
+ import { XMLWebsiteResource } from "../../xml/types.mjs";
4
+ import { ParserOptions } from "../helpers.mjs";
5
+ import { WebsitePresentationReader } from "./reader.mjs";
6
+ import { WebsitePageSlugs } from "./slug.mjs";
7
+ //#region src/parsers/website/components.d.ts
8
+ /**
9
+ * What every component parser is handed
10
+ *
11
+ * `pageSlugs` is the only thing the component, element and block parsers read
12
+ * from the enclosing website, so it is passed on its own rather than as part
13
+ * of a wider parse context. That keeps this module reachable from a test with
14
+ * a six-field object instead of a whole OCHRE website envelope.
15
+ */
16
+ export type WebElementComponentParameters<T extends ReadonlyArray<string>> = {
17
+ componentProperty: SimplifiedProperty<T>;
18
+ componentReader: WebsitePresentationReader<T>;
19
+ elementResource: XMLWebsiteResource;
20
+ websiteLinks: ItemLinks<T>;
21
+ options: ParserOptions<T>;
22
+ pageSlugs: WebsitePageSlugs | undefined;
23
+ };
24
+ declare function parse3dViewerComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
25
+ declare function parseAdvancedSearchComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
26
+ declare function parseAnnotatedDocumentComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
27
+ declare function parseAnnotatedImageComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
28
+ declare function parseAudioPlayerComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
29
+ declare function parseBibliographyComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
30
+ declare function parseButtonComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
31
+ declare function parseCollectionComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
32
+ declare function parseEmptySpaceComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
33
+ declare function parseEntriesComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
34
+ declare function parseIframeComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
35
+ declare function parseIiifViewerComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
36
+ declare function parseImageComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
37
+ declare function parseImageGalleryComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
38
+ declare function parseMapComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
39
+ declare function parseQueryComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
40
+ declare function parseTableComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
41
+ declare function parseSearchBarComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
42
+ declare function parseTextComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
43
+ declare function parseTimelineComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
44
+ declare function parseVideoComponent<T extends ReadonlyArray<string>>(parameters: WebElementComponentParameters<T>): WebElementComponent<T>;
45
+ /**
46
+ * Parses raw web element properties into a standardized WebElementComponent structure
47
+ *
48
+ * @param componentProperty - Raw component property data in OCHRE format
49
+ * @param elementResource - Raw element resource data in OCHRE format
50
+ * @returns Parsed WebElementComponent object
51
+ */
52
+ /**
53
+ * The parser for each web element component, keyed by its OCHRE component name
54
+ *
55
+ * Every component parser takes the same {@link WebElementComponentParameters}
56
+ * bag, so this is a table rather than a `switch`: a missing component is a type
57
+ * error here instead of a runtime throw, and each parser can be exercised on
58
+ * its own.
59
+ */
60
+ export declare const WEB_ELEMENT_COMPONENT_PARSERS: {
61
+ readonly "3d-viewer": typeof parse3dViewerComponent;
62
+ readonly "advanced-search": typeof parseAdvancedSearchComponent;
63
+ readonly "annotated-document": typeof parseAnnotatedDocumentComponent;
64
+ readonly "annotated-image": typeof parseAnnotatedImageComponent;
65
+ readonly "audio-player": typeof parseAudioPlayerComponent;
66
+ readonly bibliography: typeof parseBibliographyComponent;
67
+ readonly button: typeof parseButtonComponent;
68
+ readonly collection: typeof parseCollectionComponent;
69
+ readonly "empty-space": typeof parseEmptySpaceComponent;
70
+ readonly entries: typeof parseEntriesComponent;
71
+ readonly iframe: typeof parseIframeComponent;
72
+ readonly "iiif-viewer": typeof parseIiifViewerComponent;
73
+ readonly image: typeof parseImageComponent;
74
+ readonly "image-gallery": typeof parseImageGalleryComponent;
75
+ readonly map: typeof parseMapComponent;
76
+ readonly query: typeof parseQueryComponent;
77
+ readonly table: typeof parseTableComponent;
78
+ readonly "search-bar": typeof parseSearchBarComponent;
79
+ readonly text: typeof parseTextComponent;
80
+ readonly timeline: typeof parseTimelineComponent;
81
+ readonly video: typeof parseVideoComponent;
82
+ };
83
+ export declare function parseWebTitle<T extends ReadonlyArray<string>>(properties: Array<SimplifiedProperty<T>>, identification: Identification<T>, overrides?: Partial<WebTitle<T>["properties"]>): WebTitle<T>;
84
+ /**
85
+ * Parses raw web element data into a standardized WebElement structure
86
+ *
87
+ * @param elementResource - Raw element resource data in OCHRE format
88
+ * @returns Parsed WebElement object
89
+ */
90
+ export declare function parseWebElement<T extends ReadonlyArray<string>>(elementResource: XMLWebsiteResource, options: ParserOptions<T>, pageSlugs: WebsitePageSlugs | undefined): WebElement<T>;
91
+ //#endregion