@internetarchive/metadata-service 1.0.5-webdev-7743.0 → 1.0.6

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.
@@ -0,0 +1,15 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "WebFetch(domain:github.com)",
5
+ "Bash(gh api *)",
6
+ "Bash(git -C /Users/jason/Projects/IA/iaux/iaux-metadata-service status)",
7
+ "Bash(git -C /Users/jason/Projects/IA/iaux/iaux-metadata-service log --oneline -10)",
8
+ "Bash(git -C /Users/jason/Projects/IA/iaux/iaux-metadata-service remote -v)",
9
+ "Bash(git *)",
10
+ "Bash(host local.archive.org)",
11
+ "Bash(dig +short local.archive.org)",
12
+ "Bash(mkcert -CAROOT)"
13
+ ]
14
+ }
15
+ }
@@ -33,13 +33,7 @@ export class DefaultMetadataBackend {
33
33
  async fetchMetadata(identifier, keypath) {
34
34
  const path = keypath ? `/${keypath}` : '';
35
35
  const url = `https://${this.baseUrl}/metadata/${identifier}${path}`;
36
- // the metadata endpoint doesn't currently support credentialed requests
37
- // so don't include credentials until that is fixed
38
- return this.fetchUrl(url, {
39
- requestOptions: {
40
- credentials: 'omit',
41
- },
42
- });
36
+ return this.fetchUrl(url);
43
37
  }
44
38
  /**
45
39
  * Fires a request to the URL (with this backend's options applied) and
@@ -1 +1 @@
1
- {"version":3,"file":"default-metadata-backend.js","sourceRoot":"","sources":["../../../src/backend/default-metadata-backend.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Result } from '@internetarchive/result-type';\nimport {\n MetadataServiceError,\n MetadataServiceErrorType,\n} from '../metadata-service-error';\nimport { MetadataBackendInterface } from './metadata-backend-interface';\n\n/**\n * The DefaultSearchBackend performs a `window.fetch` request to archive.org\n */\nexport class DefaultMetadataBackend implements MetadataBackendInterface {\n private baseUrl: string;\n\n private includeCredentials: boolean;\n\n private requestScope?: string;\n\n constructor(options?: {\n baseUrl?: string;\n includeCredentials?: boolean;\n scope?: string;\n }) {\n this.baseUrl = options?.baseUrl ?? 'archive.org';\n\n if (options?.includeCredentials !== undefined) {\n this.includeCredentials = options.includeCredentials;\n } else {\n // include credentials if the request is coming from an archive.org domain\n // since credentialed requests are only allowed from archive.org domains\n // due to CORS restrictions, see\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials\n this.includeCredentials =\n window.location.href.match(/^https?:\\/\\/.*archive\\.org(:[0-9]+)?/) !==\n null;\n }\n\n if (options?.scope !== undefined) {\n this.requestScope = options.scope;\n } else {\n const currentUrl = new URL(window.location.href);\n const scope = currentUrl.searchParams.get('scope');\n if (scope) {\n this.requestScope = scope;\n }\n }\n }\n\n /** @inheritdoc */\n async fetchMetadata(\n identifier: string,\n keypath?: string,\n ): Promise<Result<any, MetadataServiceError>> {\n const path = keypath ? `/${keypath}` : '';\n const url = `https://${this.baseUrl}/metadata/${identifier}${path}`;\n // the metadata endpoint doesn't currently support credentialed requests\n // so don't include credentials until that is fixed\n return this.fetchUrl(url, {\n requestOptions: {\n credentials: 'omit',\n },\n });\n }\n\n /**\n * Fires a request to the URL (with this backend's options applied) and\n * asynchronously returns a Result object containing either the raw response\n * JSON or a MetadataServiceError.\n */\n protected async fetchUrl(\n url: string,\n options?: {\n requestOptions?: RequestInit;\n },\n ): Promise<Result<any, MetadataServiceError>> {\n const finalUrl = new URL(url);\n if (this.requestScope) {\n finalUrl.searchParams.set('scope', this.requestScope);\n }\n\n let response: Response;\n // first try the fetch and return a networkError if it fails\n try {\n const fetchOptions = options?.requestOptions ?? {\n credentials: this.includeCredentials ? 'include' : 'same-origin',\n };\n response = await fetch(finalUrl.href, fetchOptions);\n } catch (err) {\n const message =\n err instanceof Error\n ? err.message\n : typeof err === 'string'\n ? err\n : 'Unknown error';\n return this.getErrorResult(\n MetadataServiceErrorType.networkError,\n message,\n );\n }\n\n // then try json decoding and return a decodingError if it fails\n try {\n const json = await response.json();\n // the advanced search endpoint doesn't return an HTTP Error 400\n // and instead returns an HTTP 200 with an `error` key in the payload\n const error = json['error'];\n if (error) {\n const forensics = json['forensics'];\n return this.getErrorResult(\n MetadataServiceErrorType.searchEngineError,\n error,\n forensics,\n );\n } else {\n // success\n return { success: json };\n }\n } catch (err) {\n const message =\n err instanceof Error\n ? err.message\n : typeof err === 'string'\n ? err\n : 'Unknown error';\n return this.getErrorResult(\n MetadataServiceErrorType.decodingError,\n message,\n );\n }\n }\n\n private getErrorResult(\n errorType: MetadataServiceErrorType,\n message?: string,\n details?: any,\n ): Result<any, MetadataServiceError> {\n const error = new MetadataServiceError(errorType, message, details);\n const result = { error };\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"default-metadata-backend.js","sourceRoot":"","sources":["../../../src/backend/default-metadata-backend.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Result } from '@internetarchive/result-type';\nimport {\n MetadataServiceError,\n MetadataServiceErrorType,\n} from '../metadata-service-error';\nimport { MetadataBackendInterface } from './metadata-backend-interface';\n\n/**\n * The DefaultSearchBackend performs a `window.fetch` request to archive.org\n */\nexport class DefaultMetadataBackend implements MetadataBackendInterface {\n private baseUrl: string;\n\n private includeCredentials: boolean;\n\n private requestScope?: string;\n\n constructor(options?: {\n baseUrl?: string;\n includeCredentials?: boolean;\n scope?: string;\n }) {\n this.baseUrl = options?.baseUrl ?? 'archive.org';\n\n if (options?.includeCredentials !== undefined) {\n this.includeCredentials = options.includeCredentials;\n } else {\n // include credentials if the request is coming from an archive.org domain\n // since credentialed requests are only allowed from archive.org domains\n // due to CORS restrictions, see\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials\n this.includeCredentials =\n window.location.href.match(/^https?:\\/\\/.*archive\\.org(:[0-9]+)?/) !==\n null;\n }\n\n if (options?.scope !== undefined) {\n this.requestScope = options.scope;\n } else {\n const currentUrl = new URL(window.location.href);\n const scope = currentUrl.searchParams.get('scope');\n if (scope) {\n this.requestScope = scope;\n }\n }\n }\n\n /** @inheritdoc */\n async fetchMetadata(\n identifier: string,\n keypath?: string,\n ): Promise<Result<any, MetadataServiceError>> {\n const path = keypath ? `/${keypath}` : '';\n const url = `https://${this.baseUrl}/metadata/${identifier}${path}`;\n return this.fetchUrl(url);\n }\n\n /**\n * Fires a request to the URL (with this backend's options applied) and\n * asynchronously returns a Result object containing either the raw response\n * JSON or a MetadataServiceError.\n */\n protected async fetchUrl(\n url: string,\n options?: {\n requestOptions?: RequestInit;\n },\n ): Promise<Result<any, MetadataServiceError>> {\n const finalUrl = new URL(url);\n if (this.requestScope) {\n finalUrl.searchParams.set('scope', this.requestScope);\n }\n\n let response: Response;\n // first try the fetch and return a networkError if it fails\n try {\n const fetchOptions = options?.requestOptions ?? {\n credentials: this.includeCredentials ? 'include' : 'same-origin',\n };\n response = await fetch(finalUrl.href, fetchOptions);\n } catch (err) {\n const message =\n err instanceof Error\n ? err.message\n : typeof err === 'string'\n ? err\n : 'Unknown error';\n return this.getErrorResult(\n MetadataServiceErrorType.networkError,\n message,\n );\n }\n\n // then try json decoding and return a decodingError if it fails\n try {\n const json = await response.json();\n // the advanced search endpoint doesn't return an HTTP Error 400\n // and instead returns an HTTP 200 with an `error` key in the payload\n const error = json['error'];\n if (error) {\n const forensics = json['forensics'];\n return this.getErrorResult(\n MetadataServiceErrorType.searchEngineError,\n error,\n forensics,\n );\n } else {\n // success\n return { success: json };\n }\n } catch (err) {\n const message =\n err instanceof Error\n ? err.message\n : typeof err === 'string'\n ? err\n : 'Unknown error';\n return this.getErrorResult(\n MetadataServiceErrorType.decodingError,\n message,\n );\n }\n }\n\n private getErrorResult(\n errorType: MetadataServiceErrorType,\n message?: string,\n details?: any,\n ): Result<any, MetadataServiceError> {\n const error = new MetadataServiceError(errorType, message, details);\n const result = { error };\n return result;\n }\n}\n"]}
@@ -68,7 +68,7 @@ describe('DefaultMetadataBackend', () => {
68
68
  expect(urlCalled.includes('scope=foo')).to.be.true;
69
69
  window.fetch = fetchBackup;
70
70
  });
71
- it('does not credentials for metadata endpoint', async () => {
71
+ it('credentials for metadata endpoint', async () => {
72
72
  const fetchBackup = window.fetch;
73
73
  let urlCalled;
74
74
  let urlConfig;
@@ -83,7 +83,7 @@ describe('DefaultMetadataBackend', () => {
83
83
  includeCredentials: true,
84
84
  });
85
85
  await backend.fetchMetadata('foo');
86
- expect(urlConfig === null || urlConfig === void 0 ? void 0 : urlConfig.credentials).to.equal('omit');
86
+ expect(urlConfig === null || urlConfig === void 0 ? void 0 : urlConfig.credentials).to.equal('include');
87
87
  window.fetch = fetchBackup;
88
88
  });
89
89
  });
@@ -1 +1 @@
1
- {"version":3,"file":"default-metadata-backend.test.js","sourceRoot":"","sources":["../../test/default-metadata-backend.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { expect } from '@open-wc/testing';\nimport { DefaultMetadataBackend } from '../src/backend/default-metadata-backend';\nimport { MetadataServiceErrorType } from '../src/metadata-service-error';\n\ndescribe('DefaultMetadataBackend', () => {\n it('can fetch metadata', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n return new Promise(resolve => {\n const response = new Response('{ \"foo\": \"bar\" }');\n resolve(response);\n });\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.success?.foo).to.equal('bar');\n window.fetch = fetchBackup;\n });\n\n it('returns a networkError if theres a problem fetching using String type', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n throw 'network error';\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.networkError);\n expect(result.error?.message).to.equal('network error');\n window.fetch = fetchBackup;\n });\n\n it('returns a networkError if theres a problem fetching using Error type', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n throw new Error('network error');\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.networkError);\n expect(result.error?.message).to.equal('network error');\n window.fetch = fetchBackup;\n });\n\n it('returns a decodingError if theres a problem decoding the json', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.decodingError);\n window.fetch = fetchBackup;\n });\n\n it('appends the scope if provided', async () => {\n const fetchBackup = window.fetch;\n let urlCalled = '';\n window.fetch = (\n input: RequestInfo | URL,\n init?: RequestInit | undefined,\n ): Promise<Response> => {\n urlCalled = input.toString();\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend({\n scope: 'foo',\n });\n const result = await backend.fetchMetadata('foo');\n expect(urlCalled.includes('scope=foo')).to.be.true;\n window.fetch = fetchBackup;\n });\n\n it('does not credentials for metadata endpoint', async () => {\n const fetchBackup = window.fetch;\n let urlCalled: RequestInfo | URL;\n let urlConfig: RequestInit | undefined;\n window.fetch = (\n input: RequestInfo | URL,\n init?: RequestInit | undefined,\n ): Promise<Response> => {\n urlCalled = input;\n urlConfig = init;\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend({\n scope: 'foo',\n includeCredentials: true,\n });\n await backend.fetchMetadata('foo');\n expect(urlConfig?.credentials).to.equal('omit');\n window.fetch = fetchBackup;\n });\n});\n"]}
1
+ {"version":3,"file":"default-metadata-backend.test.js","sourceRoot":"","sources":["../../test/default-metadata-backend.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { expect } from '@open-wc/testing';\nimport { DefaultMetadataBackend } from '../src/backend/default-metadata-backend';\nimport { MetadataServiceErrorType } from '../src/metadata-service-error';\n\ndescribe('DefaultMetadataBackend', () => {\n it('can fetch metadata', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n return new Promise(resolve => {\n const response = new Response('{ \"foo\": \"bar\" }');\n resolve(response);\n });\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.success?.foo).to.equal('bar');\n window.fetch = fetchBackup;\n });\n\n it('returns a networkError if theres a problem fetching using String type', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n throw 'network error';\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.networkError);\n expect(result.error?.message).to.equal('network error');\n window.fetch = fetchBackup;\n });\n\n it('returns a networkError if theres a problem fetching using Error type', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n throw new Error('network error');\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.networkError);\n expect(result.error?.message).to.equal('network error');\n window.fetch = fetchBackup;\n });\n\n it('returns a decodingError if theres a problem decoding the json', async () => {\n const fetchBackup = window.fetch;\n window.fetch = (): Promise<Response> => {\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend();\n const result = await backend.fetchMetadata('foo');\n expect(result.error?.type).to.equal(MetadataServiceErrorType.decodingError);\n window.fetch = fetchBackup;\n });\n\n it('appends the scope if provided', async () => {\n const fetchBackup = window.fetch;\n let urlCalled = '';\n window.fetch = (\n input: RequestInfo | URL,\n init?: RequestInit | undefined,\n ): Promise<Response> => {\n urlCalled = input.toString();\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend({\n scope: 'foo',\n });\n const result = await backend.fetchMetadata('foo');\n expect(urlCalled.includes('scope=foo')).to.be.true;\n window.fetch = fetchBackup;\n });\n\n it('credentials for metadata endpoint', async () => {\n const fetchBackup = window.fetch;\n let urlCalled: RequestInfo | URL;\n let urlConfig: RequestInit | undefined;\n window.fetch = (\n input: RequestInfo | URL,\n init?: RequestInit | undefined,\n ): Promise<Response> => {\n urlCalled = input;\n urlConfig = init;\n const response = new Response('boop');\n return new Promise(resolve => resolve(response));\n };\n\n const backend = new DefaultMetadataBackend({\n scope: 'foo',\n includeCredentials: true,\n });\n await backend.fetchMetadata('foo');\n expect(urlConfig?.credentials).to.equal('include');\n window.fetch = fetchBackup;\n });\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetarchive/metadata-service",
3
- "version": "1.0.5-webdev-7743.0",
3
+ "version": "1.0.6",
4
4
  "description": "A service for fetching metadata about items in the Internet Archive",
5
5
  "license": "AGPL-3.0-only",
6
6
  "main": "dist/index.js",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@internetarchive/field-parsers": "^0.1.4",
30
- "@internetarchive/iaux-item-metadata": "^1.0.7-webdev-7743.0",
30
+ "@internetarchive/iaux-item-metadata": "^1.1.0",
31
31
  "@internetarchive/result-type": "^0.0.1",
32
32
  "typescript-memoize": "^1.1.1"
33
33
  },
@@ -53,13 +53,7 @@ export class DefaultMetadataBackend implements MetadataBackendInterface {
53
53
  ): Promise<Result<any, MetadataServiceError>> {
54
54
  const path = keypath ? `/${keypath}` : '';
55
55
  const url = `https://${this.baseUrl}/metadata/${identifier}${path}`;
56
- // the metadata endpoint doesn't currently support credentialed requests
57
- // so don't include credentials until that is fixed
58
- return this.fetchUrl(url, {
59
- requestOptions: {
60
- credentials: 'omit',
61
- },
62
- });
56
+ return this.fetchUrl(url);
63
57
  }
64
58
 
65
59
  /**
@@ -79,7 +79,7 @@ describe('DefaultMetadataBackend', () => {
79
79
  window.fetch = fetchBackup;
80
80
  });
81
81
 
82
- it('does not credentials for metadata endpoint', async () => {
82
+ it('credentials for metadata endpoint', async () => {
83
83
  const fetchBackup = window.fetch;
84
84
  let urlCalled: RequestInfo | URL;
85
85
  let urlConfig: RequestInit | undefined;
@@ -98,7 +98,7 @@ describe('DefaultMetadataBackend', () => {
98
98
  includeCredentials: true,
99
99
  });
100
100
  await backend.fetchMetadata('foo');
101
- expect(urlConfig?.credentials).to.equal('omit');
101
+ expect(urlConfig?.credentials).to.equal('include');
102
102
  window.fetch = fetchBackup;
103
103
  });
104
104
  });