@littlebearapps/australian-history-mcp 0.6.0 → 0.6.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/package.json +1 -1
- package/dist/clients/datagovau_client.d.ts +0 -61
- package/dist/clients/datagovau_client.d.ts.map +0 -1
- package/dist/clients/datagovau_client.js +0 -421
- package/dist/clients/datagovau_client.js.map +0 -1
- package/dist/clients/prov_client.d.ts +0 -64
- package/dist/clients/prov_client.d.ts.map +0 -1
- package/dist/clients/prov_client.js +0 -393
- package/dist/clients/prov_client.js.map +0 -1
- package/dist/clients/trove_client.d.ts +0 -77
- package/dist/clients/trove_client.d.ts.map +0 -1
- package/dist/clients/trove_client.js +0 -374
- package/dist/clients/trove_client.js.map +0 -1
- package/dist/tools/datagovau_browse.d.ts +0 -96
- package/dist/tools/datagovau_browse.d.ts.map +0 -1
- package/dist/tools/datagovau_browse.js +0 -297
- package/dist/tools/datagovau_browse.js.map +0 -1
- package/dist/tools/datagovau_dataset.d.ts +0 -79
- package/dist/tools/datagovau_dataset.d.ts.map +0 -1
- package/dist/tools/datagovau_dataset.js +0 -246
- package/dist/tools/datagovau_dataset.js.map +0 -1
- package/dist/tools/datagovau_search.d.ts +0 -58
- package/dist/tools/datagovau_search.d.ts.map +0 -1
- package/dist/tools/datagovau_search.js +0 -112
- package/dist/tools/datagovau_search.js.map +0 -1
- package/dist/tools/harvest.d.ts +0 -175
- package/dist/tools/harvest.d.ts.map +0 -1
- package/dist/tools/harvest.js +0 -426
- package/dist/tools/harvest.js.map +0 -1
- package/dist/tools/prov_images.d.ts +0 -38
- package/dist/tools/prov_images.d.ts.map +0 -1
- package/dist/tools/prov_images.js +0 -87
- package/dist/tools/prov_images.js.map +0 -1
- package/dist/tools/prov_search.d.ts +0 -60
- package/dist/tools/prov_search.d.ts.map +0 -1
- package/dist/tools/prov_search.js +0 -131
- package/dist/tools/prov_search.js.map +0 -1
- package/dist/tools/trove_newspaper.d.ts +0 -100
- package/dist/tools/trove_newspaper.d.ts.map +0 -1
- package/dist/tools/trove_newspaper.js +0 -282
- package/dist/tools/trove_newspaper.js.map +0 -1
- package/dist/tools/trove_search.d.ts +0 -62
- package/dist/tools/trove_search.d.ts.map +0 -1
- package/dist/tools/trove_search.js +0 -143
- package/dist/tools/trove_search.js.map +0 -1
- package/dist/types.d.ts +0 -231
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@littlebearapps/australian-history-mcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "MCP server for Australian history - PROV, Trove, data.gov.au, Museums Victoria, ALA, NMA, VHD, ACMI, PM Transcripts, IIIF, GA HAP",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* data.gov.au (CKAN) API Client
|
|
3
|
-
*
|
|
4
|
-
* data.gov.au is Australia's national open data portal, powered by CKAN.
|
|
5
|
-
* It aggregates datasets from federal, state, and local government agencies.
|
|
6
|
-
* No API key is required for read-only access.
|
|
7
|
-
*
|
|
8
|
-
* API Documentation: https://docs.ckan.org/en/latest/api/
|
|
9
|
-
* Portal: https://data.gov.au/
|
|
10
|
-
*/
|
|
11
|
-
import type { DataGovAUSearchParams, DataGovAUSearchResult, DataGovAUDataset, DataGovAUResource, DataGovAUOrganization, DataGovAUGroup, DataGovAUDatastoreParams, DataGovAUDatastoreResult } from '../types.js';
|
|
12
|
-
export declare class DataGovAUClient {
|
|
13
|
-
private readonly baseUrl;
|
|
14
|
-
constructor();
|
|
15
|
-
/**
|
|
16
|
-
* Search datasets (packages) in data.gov.au
|
|
17
|
-
*/
|
|
18
|
-
search(params: DataGovAUSearchParams): Promise<DataGovAUSearchResult>;
|
|
19
|
-
/**
|
|
20
|
-
* Get a specific dataset by ID or name
|
|
21
|
-
*/
|
|
22
|
-
getDataset(idOrName: string): Promise<DataGovAUDataset | null>;
|
|
23
|
-
/**
|
|
24
|
-
* List all dataset names (for discovery)
|
|
25
|
-
*/
|
|
26
|
-
listDatasets(limit?: number, offset?: number): Promise<string[]>;
|
|
27
|
-
/**
|
|
28
|
-
* Get a specific resource by ID
|
|
29
|
-
*/
|
|
30
|
-
getResource(resourceId: string): Promise<DataGovAUResource | null>;
|
|
31
|
-
/**
|
|
32
|
-
* Search the datastore (tabular data) for a resource
|
|
33
|
-
*/
|
|
34
|
-
datastoreSearch(params: DataGovAUDatastoreParams): Promise<DataGovAUDatastoreResult | null>;
|
|
35
|
-
/**
|
|
36
|
-
* List all organizations
|
|
37
|
-
*/
|
|
38
|
-
listOrganizations(allFields?: boolean, limit?: number): Promise<DataGovAUOrganization[]>;
|
|
39
|
-
/**
|
|
40
|
-
* Get organization details
|
|
41
|
-
*/
|
|
42
|
-
getOrganization(idOrName: string, includeDatasets?: boolean): Promise<DataGovAUOrganization | null>;
|
|
43
|
-
/**
|
|
44
|
-
* List all groups (categories)
|
|
45
|
-
*/
|
|
46
|
-
listGroups(allFields?: boolean): Promise<DataGovAUGroup[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Get group details
|
|
49
|
-
*/
|
|
50
|
-
getGroup(idOrName: string, includeDatasets?: boolean): Promise<DataGovAUGroup | null>;
|
|
51
|
-
/**
|
|
52
|
-
* List all tags
|
|
53
|
-
*/
|
|
54
|
-
listTags(query?: string): Promise<string[]>;
|
|
55
|
-
private parseDataset;
|
|
56
|
-
private parseResource;
|
|
57
|
-
private parseOrganization;
|
|
58
|
-
private parseGroup;
|
|
59
|
-
}
|
|
60
|
-
export declare const dataGovAUClient: DataGovAUClient;
|
|
61
|
-
//# sourceMappingURL=datagovau_client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datagovau_client.d.ts","sourceRoot":"","sources":["../../src/clients/datagovau_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAIrB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;IAUjC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsE3E;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA+BpE;;OAEG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BtE;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA8BxE;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAgEjG;;OAEG;IACG,iBAAiB,CAAC,SAAS,UAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAwC3F;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAuCvG;;OAEG;IACG,UAAU,CAAC,SAAS,UAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoC7D;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAuCzF;;OAEG;IACG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCjD,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,UAAU;CAUnB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* data.gov.au (CKAN) API Client
|
|
3
|
-
*
|
|
4
|
-
* data.gov.au is Australia's national open data portal, powered by CKAN.
|
|
5
|
-
* It aggregates datasets from federal, state, and local government agencies.
|
|
6
|
-
* No API key is required for read-only access.
|
|
7
|
-
*
|
|
8
|
-
* API Documentation: https://docs.ckan.org/en/latest/api/
|
|
9
|
-
* Portal: https://data.gov.au/
|
|
10
|
-
*/
|
|
11
|
-
const DATAGOVAU_API_BASE = 'https://data.gov.au/data/api/3/action';
|
|
12
|
-
export class DataGovAUClient {
|
|
13
|
-
baseUrl;
|
|
14
|
-
constructor() {
|
|
15
|
-
this.baseUrl = DATAGOVAU_API_BASE;
|
|
16
|
-
}
|
|
17
|
-
// =========================================================================
|
|
18
|
-
// Dataset/Package Operations
|
|
19
|
-
// =========================================================================
|
|
20
|
-
/**
|
|
21
|
-
* Search datasets (packages) in data.gov.au
|
|
22
|
-
*/
|
|
23
|
-
async search(params) {
|
|
24
|
-
const urlParams = new URLSearchParams();
|
|
25
|
-
// Main query
|
|
26
|
-
if (params.query) {
|
|
27
|
-
urlParams.set('q', params.query);
|
|
28
|
-
}
|
|
29
|
-
// Filter queries
|
|
30
|
-
const fqParts = [];
|
|
31
|
-
if (params.organization) {
|
|
32
|
-
fqParts.push(`organization:${params.organization}`);
|
|
33
|
-
}
|
|
34
|
-
if (params.groups && params.groups.length > 0) {
|
|
35
|
-
params.groups.forEach(g => fqParts.push(`groups:${g}`));
|
|
36
|
-
}
|
|
37
|
-
if (params.tags && params.tags.length > 0) {
|
|
38
|
-
params.tags.forEach(t => fqParts.push(`tags:${t}`));
|
|
39
|
-
}
|
|
40
|
-
if (params.format) {
|
|
41
|
-
fqParts.push(`res_format:${params.format}`);
|
|
42
|
-
}
|
|
43
|
-
if (fqParts.length > 0) {
|
|
44
|
-
urlParams.set('fq', fqParts.join(' AND '));
|
|
45
|
-
}
|
|
46
|
-
// Pagination
|
|
47
|
-
urlParams.set('rows', (params.limit ?? 20).toString());
|
|
48
|
-
urlParams.set('start', (params.offset ?? 0).toString());
|
|
49
|
-
// Sorting
|
|
50
|
-
if (params.sort) {
|
|
51
|
-
urlParams.set('sort', params.sort);
|
|
52
|
-
}
|
|
53
|
-
const url = `${this.baseUrl}/package_search?${urlParams.toString()}`;
|
|
54
|
-
try {
|
|
55
|
-
const response = await fetch(url);
|
|
56
|
-
if (!response.ok) {
|
|
57
|
-
throw new Error(`data.gov.au API error: ${response.status} ${response.statusText}`);
|
|
58
|
-
}
|
|
59
|
-
const data = await response.json();
|
|
60
|
-
if (!data.success) {
|
|
61
|
-
throw new Error(`data.gov.au API error: ${data.error?.message ?? 'Unknown error'}`);
|
|
62
|
-
}
|
|
63
|
-
return {
|
|
64
|
-
count: data.result.count,
|
|
65
|
-
datasets: data.result.results.map(d => this.parseDataset(d)),
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
if (error instanceof Error) {
|
|
70
|
-
throw new Error(`data.gov.au search failed: ${error.message}`);
|
|
71
|
-
}
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get a specific dataset by ID or name
|
|
77
|
-
*/
|
|
78
|
-
async getDataset(idOrName) {
|
|
79
|
-
const url = `${this.baseUrl}/package_show?id=${encodeURIComponent(idOrName)}`;
|
|
80
|
-
try {
|
|
81
|
-
const response = await fetch(url);
|
|
82
|
-
if (!response.ok) {
|
|
83
|
-
if (response.status === 404) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
87
|
-
}
|
|
88
|
-
const data = await response.json();
|
|
89
|
-
if (!data.success) {
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
return this.parseDataset(data.result);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
if (error instanceof Error) {
|
|
96
|
-
throw new Error(`data.gov.au getDataset failed: ${error.message}`);
|
|
97
|
-
}
|
|
98
|
-
throw error;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* List all dataset names (for discovery)
|
|
103
|
-
*/
|
|
104
|
-
async listDatasets(limit, offset) {
|
|
105
|
-
const urlParams = new URLSearchParams();
|
|
106
|
-
if (limit)
|
|
107
|
-
urlParams.set('limit', limit.toString());
|
|
108
|
-
if (offset)
|
|
109
|
-
urlParams.set('offset', offset.toString());
|
|
110
|
-
const url = `${this.baseUrl}/package_list?${urlParams.toString()}`;
|
|
111
|
-
try {
|
|
112
|
-
const response = await fetch(url);
|
|
113
|
-
if (!response.ok) {
|
|
114
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
115
|
-
}
|
|
116
|
-
const data = await response.json();
|
|
117
|
-
return data.result ?? [];
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
if (error instanceof Error) {
|
|
121
|
-
throw new Error(`data.gov.au listDatasets failed: ${error.message}`);
|
|
122
|
-
}
|
|
123
|
-
throw error;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
// =========================================================================
|
|
127
|
-
// Resource Operations
|
|
128
|
-
// =========================================================================
|
|
129
|
-
/**
|
|
130
|
-
* Get a specific resource by ID
|
|
131
|
-
*/
|
|
132
|
-
async getResource(resourceId) {
|
|
133
|
-
const url = `${this.baseUrl}/resource_show?id=${encodeURIComponent(resourceId)}`;
|
|
134
|
-
try {
|
|
135
|
-
const response = await fetch(url);
|
|
136
|
-
if (!response.ok) {
|
|
137
|
-
if (response.status === 404) {
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
141
|
-
}
|
|
142
|
-
const data = await response.json();
|
|
143
|
-
if (!data.success) {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
return this.parseResource(data.result);
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
if (error instanceof Error) {
|
|
150
|
-
throw new Error(`data.gov.au getResource failed: ${error.message}`);
|
|
151
|
-
}
|
|
152
|
-
throw error;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Search the datastore (tabular data) for a resource
|
|
157
|
-
*/
|
|
158
|
-
async datastoreSearch(params) {
|
|
159
|
-
const urlParams = new URLSearchParams({
|
|
160
|
-
resource_id: params.resourceId,
|
|
161
|
-
});
|
|
162
|
-
if (params.query) {
|
|
163
|
-
urlParams.set('q', params.query);
|
|
164
|
-
}
|
|
165
|
-
if (params.filters) {
|
|
166
|
-
urlParams.set('filters', JSON.stringify(params.filters));
|
|
167
|
-
}
|
|
168
|
-
if (params.limit) {
|
|
169
|
-
urlParams.set('limit', params.limit.toString());
|
|
170
|
-
}
|
|
171
|
-
if (params.offset) {
|
|
172
|
-
urlParams.set('offset', params.offset.toString());
|
|
173
|
-
}
|
|
174
|
-
const url = `${this.baseUrl}/datastore_search?${urlParams.toString()}`;
|
|
175
|
-
try {
|
|
176
|
-
const response = await fetch(url);
|
|
177
|
-
if (!response.ok) {
|
|
178
|
-
if (response.status === 404) {
|
|
179
|
-
return null; // Datastore not enabled for this resource
|
|
180
|
-
}
|
|
181
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
182
|
-
}
|
|
183
|
-
const data = await response.json();
|
|
184
|
-
if (!data.success) {
|
|
185
|
-
return null;
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
resourceId: data.result.resource_id,
|
|
189
|
-
fields: data.result.fields,
|
|
190
|
-
records: data.result.records,
|
|
191
|
-
total: data.result.total,
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
if (error instanceof Error) {
|
|
196
|
-
throw new Error(`data.gov.au datastoreSearch failed: ${error.message}`);
|
|
197
|
-
}
|
|
198
|
-
throw error;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
// =========================================================================
|
|
202
|
-
// Organization Operations
|
|
203
|
-
// =========================================================================
|
|
204
|
-
/**
|
|
205
|
-
* List all organizations
|
|
206
|
-
*/
|
|
207
|
-
async listOrganizations(allFields = true, limit) {
|
|
208
|
-
const urlParams = new URLSearchParams({
|
|
209
|
-
all_fields: allFields.toString(),
|
|
210
|
-
});
|
|
211
|
-
if (limit) {
|
|
212
|
-
urlParams.set('limit', limit.toString());
|
|
213
|
-
}
|
|
214
|
-
const url = `${this.baseUrl}/organization_list?${urlParams.toString()}`;
|
|
215
|
-
try {
|
|
216
|
-
const response = await fetch(url);
|
|
217
|
-
if (!response.ok) {
|
|
218
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
219
|
-
}
|
|
220
|
-
const data = await response.json();
|
|
221
|
-
if (!allFields) {
|
|
222
|
-
// Just names returned
|
|
223
|
-
return (data.result ?? []).map((name) => ({
|
|
224
|
-
id: name,
|
|
225
|
-
name,
|
|
226
|
-
title: name,
|
|
227
|
-
packageCount: 0,
|
|
228
|
-
}));
|
|
229
|
-
}
|
|
230
|
-
return (data.result ?? []).map(org => this.parseOrganization(org));
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
if (error instanceof Error) {
|
|
234
|
-
throw new Error(`data.gov.au listOrganizations failed: ${error.message}`);
|
|
235
|
-
}
|
|
236
|
-
throw error;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Get organization details
|
|
241
|
-
*/
|
|
242
|
-
async getOrganization(idOrName, includeDatasets = false) {
|
|
243
|
-
const urlParams = new URLSearchParams({
|
|
244
|
-
id: idOrName,
|
|
245
|
-
include_datasets: includeDatasets.toString(),
|
|
246
|
-
});
|
|
247
|
-
const url = `${this.baseUrl}/organization_show?${urlParams.toString()}`;
|
|
248
|
-
try {
|
|
249
|
-
const response = await fetch(url);
|
|
250
|
-
if (!response.ok) {
|
|
251
|
-
if (response.status === 404) {
|
|
252
|
-
return null;
|
|
253
|
-
}
|
|
254
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
255
|
-
}
|
|
256
|
-
const data = await response.json();
|
|
257
|
-
if (!data.success) {
|
|
258
|
-
return null;
|
|
259
|
-
}
|
|
260
|
-
return this.parseOrganization(data.result);
|
|
261
|
-
}
|
|
262
|
-
catch (error) {
|
|
263
|
-
if (error instanceof Error) {
|
|
264
|
-
throw new Error(`data.gov.au getOrganization failed: ${error.message}`);
|
|
265
|
-
}
|
|
266
|
-
throw error;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// =========================================================================
|
|
270
|
-
// Group Operations
|
|
271
|
-
// =========================================================================
|
|
272
|
-
/**
|
|
273
|
-
* List all groups (categories)
|
|
274
|
-
*/
|
|
275
|
-
async listGroups(allFields = true) {
|
|
276
|
-
const urlParams = new URLSearchParams({
|
|
277
|
-
all_fields: allFields.toString(),
|
|
278
|
-
});
|
|
279
|
-
const url = `${this.baseUrl}/group_list?${urlParams.toString()}`;
|
|
280
|
-
try {
|
|
281
|
-
const response = await fetch(url);
|
|
282
|
-
if (!response.ok) {
|
|
283
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
284
|
-
}
|
|
285
|
-
const data = await response.json();
|
|
286
|
-
if (!allFields) {
|
|
287
|
-
return (data.result ?? []).map((name) => ({
|
|
288
|
-
id: name,
|
|
289
|
-
name,
|
|
290
|
-
title: name,
|
|
291
|
-
packageCount: 0,
|
|
292
|
-
}));
|
|
293
|
-
}
|
|
294
|
-
return (data.result ?? []).map(g => this.parseGroup(g));
|
|
295
|
-
}
|
|
296
|
-
catch (error) {
|
|
297
|
-
if (error instanceof Error) {
|
|
298
|
-
throw new Error(`data.gov.au listGroups failed: ${error.message}`);
|
|
299
|
-
}
|
|
300
|
-
throw error;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Get group details
|
|
305
|
-
*/
|
|
306
|
-
async getGroup(idOrName, includeDatasets = false) {
|
|
307
|
-
const urlParams = new URLSearchParams({
|
|
308
|
-
id: idOrName,
|
|
309
|
-
include_datasets: includeDatasets.toString(),
|
|
310
|
-
});
|
|
311
|
-
const url = `${this.baseUrl}/group_show?${urlParams.toString()}`;
|
|
312
|
-
try {
|
|
313
|
-
const response = await fetch(url);
|
|
314
|
-
if (!response.ok) {
|
|
315
|
-
if (response.status === 404) {
|
|
316
|
-
return null;
|
|
317
|
-
}
|
|
318
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
319
|
-
}
|
|
320
|
-
const data = await response.json();
|
|
321
|
-
if (!data.success) {
|
|
322
|
-
return null;
|
|
323
|
-
}
|
|
324
|
-
return this.parseGroup(data.result);
|
|
325
|
-
}
|
|
326
|
-
catch (error) {
|
|
327
|
-
if (error instanceof Error) {
|
|
328
|
-
throw new Error(`data.gov.au getGroup failed: ${error.message}`);
|
|
329
|
-
}
|
|
330
|
-
throw error;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
// =========================================================================
|
|
334
|
-
// Tag Operations
|
|
335
|
-
// =========================================================================
|
|
336
|
-
/**
|
|
337
|
-
* List all tags
|
|
338
|
-
*/
|
|
339
|
-
async listTags(query) {
|
|
340
|
-
const urlParams = new URLSearchParams();
|
|
341
|
-
if (query) {
|
|
342
|
-
urlParams.set('query', query);
|
|
343
|
-
}
|
|
344
|
-
const url = `${this.baseUrl}/tag_list?${urlParams.toString()}`;
|
|
345
|
-
try {
|
|
346
|
-
const response = await fetch(url);
|
|
347
|
-
if (!response.ok) {
|
|
348
|
-
throw new Error(`data.gov.au API error: ${response.status}`);
|
|
349
|
-
}
|
|
350
|
-
const data = await response.json();
|
|
351
|
-
return data.result ?? [];
|
|
352
|
-
}
|
|
353
|
-
catch (error) {
|
|
354
|
-
if (error instanceof Error) {
|
|
355
|
-
throw new Error(`data.gov.au listTags failed: ${error.message}`);
|
|
356
|
-
}
|
|
357
|
-
throw error;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
// =========================================================================
|
|
361
|
-
// Private Helpers
|
|
362
|
-
// =========================================================================
|
|
363
|
-
parseDataset(doc) {
|
|
364
|
-
return {
|
|
365
|
-
id: doc.id ?? '',
|
|
366
|
-
name: doc.name ?? '',
|
|
367
|
-
title: doc.title ?? 'Untitled',
|
|
368
|
-
notes: doc.notes ?? undefined,
|
|
369
|
-
organization: doc.organization ? {
|
|
370
|
-
name: doc.organization.name ?? '',
|
|
371
|
-
title: doc.organization.title ?? '',
|
|
372
|
-
description: doc.organization.description ?? undefined,
|
|
373
|
-
} : undefined,
|
|
374
|
-
resources: (doc.resources ?? []).map((r) => this.parseResource(r)),
|
|
375
|
-
tags: (doc.tags ?? []).map((t) => typeof t === 'string' ? t : t.name),
|
|
376
|
-
metadataCreated: doc.metadata_created ?? '',
|
|
377
|
-
metadataModified: doc.metadata_modified ?? '',
|
|
378
|
-
licenseId: doc.license_id ?? undefined,
|
|
379
|
-
licenseTitle: doc.license_title ?? undefined,
|
|
380
|
-
author: doc.author ?? undefined,
|
|
381
|
-
maintainer: doc.maintainer ?? undefined,
|
|
382
|
-
url: doc.url ?? undefined,
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
parseResource(doc) {
|
|
386
|
-
return {
|
|
387
|
-
id: doc.id ?? '',
|
|
388
|
-
name: doc.name ?? 'Unnamed',
|
|
389
|
-
description: doc.description ?? undefined,
|
|
390
|
-
format: doc.format ?? 'Unknown',
|
|
391
|
-
url: doc.url ?? '',
|
|
392
|
-
size: doc.size ?? undefined,
|
|
393
|
-
lastModified: doc.last_modified ?? undefined,
|
|
394
|
-
datastoreActive: doc.datastore_active ?? false,
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
parseOrganization(doc) {
|
|
398
|
-
return {
|
|
399
|
-
id: doc.id ?? '',
|
|
400
|
-
name: doc.name ?? '',
|
|
401
|
-
title: doc.title ?? '',
|
|
402
|
-
description: doc.description ?? undefined,
|
|
403
|
-
packageCount: doc.package_count ?? 0,
|
|
404
|
-
imageUrl: doc.image_url ?? undefined,
|
|
405
|
-
created: doc.created ?? undefined,
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
parseGroup(doc) {
|
|
409
|
-
return {
|
|
410
|
-
id: doc.id ?? '',
|
|
411
|
-
name: doc.name ?? '',
|
|
412
|
-
title: doc.title ?? '',
|
|
413
|
-
description: doc.description ?? undefined,
|
|
414
|
-
packageCount: doc.package_count ?? 0,
|
|
415
|
-
imageUrl: doc.image_url ?? undefined,
|
|
416
|
-
};
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
// Export singleton instance
|
|
420
|
-
export const dataGovAUClient = new DataGovAUClient();
|
|
421
|
-
//# sourceMappingURL=datagovau_client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datagovau_client.js","sourceRoot":"","sources":["../../src/clients/datagovau_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PROV (Public Record Office Victoria) API Client
|
|
3
|
-
*
|
|
4
|
-
* The PROV Collection API is a Solr-based search interface for Victorian
|
|
5
|
-
* state government archives. No API key is required (CC-BY-NC license).
|
|
6
|
-
*
|
|
7
|
-
* API Documentation: https://prov.vic.gov.au/prov-collection-api
|
|
8
|
-
* GLAM Workbench: https://glam-workbench.net/prov/
|
|
9
|
-
*/
|
|
10
|
-
import type { PROVSearchParams, PROVSearchResult, PROVSeries, PROVImagesResult } from '../types.js';
|
|
11
|
-
export declare class PROVClient {
|
|
12
|
-
private readonly baseUrl;
|
|
13
|
-
constructor();
|
|
14
|
-
/**
|
|
15
|
-
* Search the PROV collection
|
|
16
|
-
*/
|
|
17
|
-
search(params: PROVSearchParams): Promise<PROVSearchResult>;
|
|
18
|
-
/**
|
|
19
|
-
* Get details of a specific series (VPRS)
|
|
20
|
-
*/
|
|
21
|
-
getSeries(seriesId: string): Promise<PROVSeries | null>;
|
|
22
|
-
/**
|
|
23
|
-
* Get IIIF manifest URL for a digitised item
|
|
24
|
-
*/
|
|
25
|
-
getIIIFManifest(itemId: string): Promise<string | null>;
|
|
26
|
-
/**
|
|
27
|
-
* Get image URLs from a PROV IIIF manifest
|
|
28
|
-
*
|
|
29
|
-
* Parses the manifest and returns URLs for different sizes.
|
|
30
|
-
* PROV uses a Loris IIIF Image Server with standard size parameters.
|
|
31
|
-
*/
|
|
32
|
-
getImages(manifestUrl: string, options?: {
|
|
33
|
-
pages?: number[];
|
|
34
|
-
pageRange?: string;
|
|
35
|
-
}): Promise<PROVImagesResult>;
|
|
36
|
-
/**
|
|
37
|
-
* Search for digitised photos
|
|
38
|
-
*/
|
|
39
|
-
searchPhotos(query: string, options?: {
|
|
40
|
-
dateFrom?: string;
|
|
41
|
-
dateTo?: string;
|
|
42
|
-
limit?: number;
|
|
43
|
-
}): Promise<PROVSearchResult>;
|
|
44
|
-
/**
|
|
45
|
-
* Search for maps
|
|
46
|
-
*/
|
|
47
|
-
searchMaps(query: string, options?: {
|
|
48
|
-
dateFrom?: string;
|
|
49
|
-
dateTo?: string;
|
|
50
|
-
limit?: number;
|
|
51
|
-
}): Promise<PROVSearchResult>;
|
|
52
|
-
private escapeQuery;
|
|
53
|
-
private parseSearchResponse;
|
|
54
|
-
private parseRecordDoc;
|
|
55
|
-
private parseSeriesDoc;
|
|
56
|
-
private buildRecordUrl;
|
|
57
|
-
private formatDateRange;
|
|
58
|
-
private extractManifestTitle;
|
|
59
|
-
private extractManifestDescription;
|
|
60
|
-
private parsePageFilter;
|
|
61
|
-
private extractImageUrls;
|
|
62
|
-
}
|
|
63
|
-
export declare const provClient: PROVClient;
|
|
64
|
-
//# sourceMappingURL=prov_client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prov_client.d.ts","sourceRoot":"","sources":["../../src/clients/prov_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAEhB,UAAU,EAEV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAIrB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;;IAMjC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0EjE;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiC7D;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgC7D;;;;;OAKG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0D7B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAW7B;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe7B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,gBAAgB;CA+CzB;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|