@internetarchive/metadata-service 0.0.1-alpha.1 → 0.1.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.
Files changed (68) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +27 -26
  3. package/LICENSE +661 -661
  4. package/README.md +64 -64
  5. package/demo/index.html +27 -27
  6. package/dist/demo/app-root.d.ts +11 -11
  7. package/dist/demo/app-root.js +41 -41
  8. package/dist/index.d.ts +18 -18
  9. package/dist/index.js +16 -16
  10. package/dist/src/backend/default-metadata-backend.d.ts +27 -27
  11. package/dist/src/backend/default-metadata-backend.js +100 -100
  12. package/dist/src/backend/metadata-backend-interface.d.ts +20 -20
  13. package/dist/src/backend/metadata-backend-interface.js +1 -1
  14. package/dist/src/metadata-service-error.d.ts +11 -11
  15. package/dist/src/metadata-service-error.js +17 -17
  16. package/dist/src/metadata-service-interface.d.ts +44 -44
  17. package/dist/src/metadata-service-interface.js +1 -1
  18. package/dist/src/metadata-service.d.ts +18 -18
  19. package/dist/src/metadata-service.js +42 -42
  20. package/dist/src/models/file.d.ts +29 -29
  21. package/dist/src/models/file.js +94 -94
  22. package/dist/src/models/metadata-fields/field-types/boolean.d.ts +5 -5
  23. package/dist/src/models/metadata-fields/field-types/boolean.js +7 -7
  24. package/dist/src/models/metadata-fields/field-types/byte.d.ts +13 -13
  25. package/dist/src/models/metadata-fields/field-types/byte.js +15 -15
  26. package/dist/src/models/metadata-fields/field-types/date.d.ts +5 -5
  27. package/dist/src/models/metadata-fields/field-types/date.js +7 -7
  28. package/dist/src/models/metadata-fields/field-types/duration.d.ts +14 -14
  29. package/dist/src/models/metadata-fields/field-types/duration.js +16 -16
  30. package/dist/src/models/metadata-fields/field-types/list.d.ts +25 -25
  31. package/dist/src/models/metadata-fields/field-types/list.js +33 -33
  32. package/dist/src/models/metadata-fields/field-types/mediatype.d.ts +5 -5
  33. package/dist/src/models/metadata-fields/field-types/mediatype.js +7 -7
  34. package/dist/src/models/metadata-fields/field-types/number.d.ts +5 -5
  35. package/dist/src/models/metadata-fields/field-types/number.js +7 -7
  36. package/dist/src/models/metadata-fields/field-types/page-progression.d.ts +5 -5
  37. package/dist/src/models/metadata-fields/field-types/page-progression.js +7 -7
  38. package/dist/src/models/metadata-fields/field-types/string.d.ts +5 -5
  39. package/dist/src/models/metadata-fields/field-types/string.js +7 -7
  40. package/dist/src/models/metadata-fields/metadata-field.d.ts +70 -70
  41. package/dist/src/models/metadata-fields/metadata-field.js +66 -66
  42. package/dist/src/models/metadata.d.ts +169 -168
  43. package/dist/src/models/metadata.js +626 -617
  44. package/dist/src/models/metadata.js.map +1 -1
  45. package/dist/src/models/review.d.ts +10 -10
  46. package/dist/src/models/review.js +42 -42
  47. package/dist/src/models/speech-music-asr-entry.d.ts +10 -10
  48. package/dist/src/models/speech-music-asr-entry.js +1 -1
  49. package/dist/src/responses/metadata-response.d.ts +28 -28
  50. package/dist/src/responses/metadata-response.js +30 -30
  51. package/dist/test/default-metadata-backend.test.d.ts +1 -1
  52. package/dist/test/default-metadata-backend.test.js +90 -90
  53. package/dist/test/metadata-service.test.d.ts +1 -1
  54. package/dist/test/metadata-service.test.js +98 -98
  55. package/dist/test/mock-response-generator.d.ts +3 -3
  56. package/dist/test/mock-response-generator.js +61 -61
  57. package/dist/test/models/file.test.d.ts +1 -1
  58. package/dist/test/models/file.test.js +8 -8
  59. package/dist/test/models/metadata-fields/list-field.test.d.ts +1 -1
  60. package/dist/test/models/metadata-fields/list-field.test.js +51 -51
  61. package/dist/test/models/metadata-fields/metadata-field.test.d.ts +1 -1
  62. package/dist/test/models/metadata-fields/metadata-field.test.js +120 -120
  63. package/dist/test/models/metadata.test.d.ts +1 -1
  64. package/dist/test/models/metadata.test.js +9 -9
  65. package/package.json +1 -1
  66. package/src/models/metadata.ts +6 -0
  67. package/tsconfig.json +22 -22
  68. package/web-test-runner.config.mjs +7 -7
@@ -1,20 +1,20 @@
1
- import type { Result } from '@internetarchive/result-type';
2
- import { MetadataServiceError } from '../metadata-service-error';
3
- /**
4
- * An interface to provide the network layer to the `MetadataService`.
5
- *
6
- * Objects implementing this interface are responsible for making calls to the Internet Archive
7
- * `metadata` endpoint or otherwise providing a similar reponse in JSON format.
8
- *
9
- * @export
10
- * @interface MetadataBackendInterface
11
- */
12
- export interface MetadataBackendInterface {
13
- /**
14
- * Fetch metadata for a single item with an optional keypath
15
- *
16
- * @param identifier
17
- * @param keypath
18
- */
19
- fetchMetadata(identifier: string, keypath?: string): Promise<Result<any, MetadataServiceError>>;
20
- }
1
+ import type { Result } from '@internetarchive/result-type';
2
+ import { MetadataServiceError } from '../metadata-service-error';
3
+ /**
4
+ * An interface to provide the network layer to the `MetadataService`.
5
+ *
6
+ * Objects implementing this interface are responsible for making calls to the Internet Archive
7
+ * `metadata` endpoint or otherwise providing a similar reponse in JSON format.
8
+ *
9
+ * @export
10
+ * @interface MetadataBackendInterface
11
+ */
12
+ export interface MetadataBackendInterface {
13
+ /**
14
+ * Fetch metadata for a single item with an optional keypath
15
+ *
16
+ * @param identifier
17
+ * @param keypath
18
+ */
19
+ fetchMetadata(identifier: string, keypath?: string): Promise<Result<any, MetadataServiceError>>;
20
+ }
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=metadata-backend-interface.js.map
@@ -1,11 +1,11 @@
1
- export declare enum MetadataServiceErrorType {
2
- networkError = "MetadataService.NetworkError",
3
- itemNotFound = "MetadataService.ItemNotFound",
4
- decodingError = "MetadataService.DecodingError",
5
- searchEngineError = "MetadataService.SearchEngineError"
6
- }
7
- export declare class MetadataServiceError extends Error {
8
- type: MetadataServiceErrorType;
9
- details?: any;
10
- constructor(type: MetadataServiceErrorType, message?: string, details?: any);
11
- }
1
+ export declare enum MetadataServiceErrorType {
2
+ networkError = "MetadataService.NetworkError",
3
+ itemNotFound = "MetadataService.ItemNotFound",
4
+ decodingError = "MetadataService.DecodingError",
5
+ searchEngineError = "MetadataService.SearchEngineError"
6
+ }
7
+ export declare class MetadataServiceError extends Error {
8
+ type: MetadataServiceErrorType;
9
+ details?: any;
10
+ constructor(type: MetadataServiceErrorType, message?: string, details?: any);
11
+ }
@@ -1,18 +1,18 @@
1
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- export var MetadataServiceErrorType;
4
- (function (MetadataServiceErrorType) {
5
- MetadataServiceErrorType["networkError"] = "MetadataService.NetworkError";
6
- MetadataServiceErrorType["itemNotFound"] = "MetadataService.ItemNotFound";
7
- MetadataServiceErrorType["decodingError"] = "MetadataService.DecodingError";
8
- MetadataServiceErrorType["searchEngineError"] = "MetadataService.SearchEngineError";
9
- })(MetadataServiceErrorType || (MetadataServiceErrorType = {}));
10
- export class MetadataServiceError extends Error {
11
- constructor(type, message, details) {
12
- super(message);
13
- this.name = type;
14
- this.type = type;
15
- this.details = details;
16
- }
17
- }
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ export var MetadataServiceErrorType;
4
+ (function (MetadataServiceErrorType) {
5
+ MetadataServiceErrorType["networkError"] = "MetadataService.NetworkError";
6
+ MetadataServiceErrorType["itemNotFound"] = "MetadataService.ItemNotFound";
7
+ MetadataServiceErrorType["decodingError"] = "MetadataService.DecodingError";
8
+ MetadataServiceErrorType["searchEngineError"] = "MetadataService.SearchEngineError";
9
+ })(MetadataServiceErrorType || (MetadataServiceErrorType = {}));
10
+ export class MetadataServiceError extends Error {
11
+ constructor(type, message, details) {
12
+ super(message);
13
+ this.name = type;
14
+ this.type = type;
15
+ this.details = details;
16
+ }
17
+ }
18
18
  //# sourceMappingURL=metadata-service-error.js.map
@@ -1,44 +1,44 @@
1
- import type { MetadataResponse } from './responses/metadata-response';
2
- import type { Result } from '@internetarchive/result-type';
3
- import type { MetadataServiceError } from './metadata-service-error';
4
- export interface MetadataServiceInterface {
5
- /**
6
- * Fetch metadata for a given identifier
7
- *
8
- * @param {string} identifier
9
- * @returns {Promise<Result<MetadataResponse, MetadataServiceError>>}
10
- */
11
- fetchMetadata(identifier: string): Promise<Result<MetadataResponse, MetadataServiceError>>;
12
- /**
13
- * Fetch the metadata value for a given identifier and keypath
14
- *
15
- * The response from this request can take any form, object, array, string, etc.
16
- * depending on the query. You can provide return typing in the response by
17
- * specifying the type. Note, there is no automatic type conversion since it can be anything.
18
- *
19
- * For example:
20
- *
21
- * ```ts
22
- * const collection = await searchService.fetchMetadataValue<string>('goody', 'metadata/collection/0');
23
- * console.debug('collection:', collection); => 'Goody Collection'
24
- *
25
- * const files_count = await searchService.fetchMetadataValue<number>('goody', 'files_count');
26
- * console.debug('files_count:', files_count); => 12
27
- * ```
28
- *
29
- * Keypath examples:
30
- *
31
- * /metadata/:identifier/metadata // returns the entire metadata object
32
- * /metadata/:identifier/server // returns the server for the given identifier
33
- * /metadata/:identifier/files_count
34
- * /metadata/:identifier/files?start=1&count=2 // query for files
35
- * /metadata/:identifier/metadata/collection // all collections
36
- * /metadata/:identifier/metadata/collection/0 // first collection
37
- * /metadata/:identifier/metadata/title
38
- * /metadata/:identifier/files/0/name // first file name
39
- *
40
- * @param identifier
41
- * @param keypath
42
- */
43
- fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, MetadataServiceError>>;
44
- }
1
+ import type { MetadataResponse } from './responses/metadata-response';
2
+ import type { Result } from '@internetarchive/result-type';
3
+ import type { MetadataServiceError } from './metadata-service-error';
4
+ export interface MetadataServiceInterface {
5
+ /**
6
+ * Fetch metadata for a given identifier
7
+ *
8
+ * @param {string} identifier
9
+ * @returns {Promise<Result<MetadataResponse, MetadataServiceError>>}
10
+ */
11
+ fetchMetadata(identifier: string): Promise<Result<MetadataResponse, MetadataServiceError>>;
12
+ /**
13
+ * Fetch the metadata value for a given identifier and keypath
14
+ *
15
+ * The response from this request can take any form, object, array, string, etc.
16
+ * depending on the query. You can provide return typing in the response by
17
+ * specifying the type. Note, there is no automatic type conversion since it can be anything.
18
+ *
19
+ * For example:
20
+ *
21
+ * ```ts
22
+ * const collection = await searchService.fetchMetadataValue<string>('goody', 'metadata/collection/0');
23
+ * console.debug('collection:', collection); => 'Goody Collection'
24
+ *
25
+ * const files_count = await searchService.fetchMetadataValue<number>('goody', 'files_count');
26
+ * console.debug('files_count:', files_count); => 12
27
+ * ```
28
+ *
29
+ * Keypath examples:
30
+ *
31
+ * /metadata/:identifier/metadata // returns the entire metadata object
32
+ * /metadata/:identifier/server // returns the server for the given identifier
33
+ * /metadata/:identifier/files_count
34
+ * /metadata/:identifier/files?start=1&count=2 // query for files
35
+ * /metadata/:identifier/metadata/collection // all collections
36
+ * /metadata/:identifier/metadata/collection/0 // first collection
37
+ * /metadata/:identifier/metadata/title
38
+ * /metadata/:identifier/files/0/name // first file name
39
+ *
40
+ * @param identifier
41
+ * @param keypath
42
+ */
43
+ fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, MetadataServiceError>>;
44
+ }
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=metadata-service-interface.js.map
@@ -1,18 +1,18 @@
1
- import { MetadataResponse } from './responses/metadata-response';
2
- import { MetadataServiceError } from './metadata-service-error';
3
- import type { MetadataServiceInterface } from './metadata-service-interface';
4
- import type { Result } from '@internetarchive/result-type';
5
- import { MetadataBackendInterface } from './backend/metadata-backend-interface';
6
- /**
7
- * The Metadata Service is responsible for taking the raw response provided by
8
- * the backend and modeling it as a `MetadataResponse` object.
9
- */
10
- export declare class MetadataService implements MetadataServiceInterface {
11
- static default: MetadataServiceInterface;
12
- private backend;
13
- constructor(backend: MetadataBackendInterface);
14
- /** @inheritdoc */
15
- fetchMetadata(identifier: string): Promise<Result<MetadataResponse, MetadataServiceError>>;
16
- /** @inheritdoc */
17
- fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, MetadataServiceError>>;
18
- }
1
+ import { MetadataResponse } from './responses/metadata-response';
2
+ import { MetadataServiceError } from './metadata-service-error';
3
+ import type { MetadataServiceInterface } from './metadata-service-interface';
4
+ import type { Result } from '@internetarchive/result-type';
5
+ import { MetadataBackendInterface } from './backend/metadata-backend-interface';
6
+ /**
7
+ * The Metadata Service is responsible for taking the raw response provided by
8
+ * the backend and modeling it as a `MetadataResponse` object.
9
+ */
10
+ export declare class MetadataService implements MetadataServiceInterface {
11
+ static default: MetadataServiceInterface;
12
+ private backend;
13
+ constructor(backend: MetadataBackendInterface);
14
+ /** @inheritdoc */
15
+ fetchMetadata(identifier: string): Promise<Result<MetadataResponse, MetadataServiceError>>;
16
+ /** @inheritdoc */
17
+ fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, MetadataServiceError>>;
18
+ }
@@ -1,43 +1,43 @@
1
- import { MetadataResponse } from './responses/metadata-response';
2
- import { MetadataServiceError, MetadataServiceErrorType, } from './metadata-service-error';
3
- import { DefaultMetadataBackend } from './backend/default-metadata-backend';
4
- /**
5
- * The Metadata Service is responsible for taking the raw response provided by
6
- * the backend and modeling it as a `MetadataResponse` object.
7
- */
8
- export class MetadataService {
9
- constructor(backend) {
10
- this.backend = backend;
11
- }
12
- /** @inheritdoc */
13
- async fetchMetadata(identifier) {
14
- var _a;
15
- const rawResponse = await this.backend.fetchMetadata(identifier);
16
- if (rawResponse.error) {
17
- return rawResponse;
18
- }
19
- if (((_a = rawResponse.success) === null || _a === void 0 ? void 0 : _a.metadata) === undefined) {
20
- return {
21
- error: new MetadataServiceError(MetadataServiceErrorType.itemNotFound),
22
- };
23
- }
24
- const modeledResponse = new MetadataResponse(rawResponse.success);
25
- return { success: modeledResponse };
26
- }
27
- /** @inheritdoc */
28
- async fetchMetadataValue(identifier, keypath) {
29
- var _a;
30
- const result = await this.backend.fetchMetadata(identifier, keypath);
31
- if (result.error) {
32
- return result;
33
- }
34
- if (((_a = result.success) === null || _a === void 0 ? void 0 : _a.result) === undefined) {
35
- return {
36
- error: new MetadataServiceError(MetadataServiceErrorType.itemNotFound),
37
- };
38
- }
39
- return { success: result.success.result };
40
- }
41
- }
42
- MetadataService.default = new MetadataService(new DefaultMetadataBackend());
1
+ import { MetadataResponse } from './responses/metadata-response';
2
+ import { MetadataServiceError, MetadataServiceErrorType, } from './metadata-service-error';
3
+ import { DefaultMetadataBackend } from './backend/default-metadata-backend';
4
+ /**
5
+ * The Metadata Service is responsible for taking the raw response provided by
6
+ * the backend and modeling it as a `MetadataResponse` object.
7
+ */
8
+ export class MetadataService {
9
+ constructor(backend) {
10
+ this.backend = backend;
11
+ }
12
+ /** @inheritdoc */
13
+ async fetchMetadata(identifier) {
14
+ var _a;
15
+ const rawResponse = await this.backend.fetchMetadata(identifier);
16
+ if (rawResponse.error) {
17
+ return rawResponse;
18
+ }
19
+ if (((_a = rawResponse.success) === null || _a === void 0 ? void 0 : _a.metadata) === undefined) {
20
+ return {
21
+ error: new MetadataServiceError(MetadataServiceErrorType.itemNotFound),
22
+ };
23
+ }
24
+ const modeledResponse = new MetadataResponse(rawResponse.success);
25
+ return { success: modeledResponse };
26
+ }
27
+ /** @inheritdoc */
28
+ async fetchMetadataValue(identifier, keypath) {
29
+ var _a;
30
+ const result = await this.backend.fetchMetadata(identifier, keypath);
31
+ if (result.error) {
32
+ return result;
33
+ }
34
+ if (((_a = result.success) === null || _a === void 0 ? void 0 : _a.result) === undefined) {
35
+ return {
36
+ error: new MetadataServiceError(MetadataServiceErrorType.itemNotFound),
37
+ };
38
+ }
39
+ return { success: result.success.result };
40
+ }
41
+ }
42
+ MetadataService.default = new MetadataService(new DefaultMetadataBackend());
43
43
  //# sourceMappingURL=metadata-service.js.map
@@ -1,29 +1,29 @@
1
- import { Byte, Duration } from '@internetarchive/field-parsers';
2
- /**
3
- * This represents an Internet Archive File
4
- *
5
- * @export
6
- * @class File
7
- */
8
- export declare class File {
9
- rawValue: Record<string, any>;
10
- get name(): string;
11
- get source(): string;
12
- get btih(): string;
13
- get md5(): string;
14
- get format(): string;
15
- get mtime(): string;
16
- get crc32(): string;
17
- get sha1(): string;
18
- get original(): string | undefined;
19
- get size(): Byte | undefined;
20
- get title(): string | undefined;
21
- get length(): Duration | undefined;
22
- get height(): number | undefined;
23
- get width(): number | undefined;
24
- get track(): number | undefined;
25
- get external_identifier(): string | string[] | undefined;
26
- get creator(): string | undefined;
27
- get album(): string | undefined;
28
- constructor(json: Record<string, any>);
29
- }
1
+ import { Byte, Duration } from '@internetarchive/field-parsers';
2
+ /**
3
+ * This represents an Internet Archive File
4
+ *
5
+ * @export
6
+ * @class File
7
+ */
8
+ export declare class File {
9
+ rawValue: Record<string, any>;
10
+ get name(): string;
11
+ get source(): string;
12
+ get btih(): string;
13
+ get md5(): string;
14
+ get format(): string;
15
+ get mtime(): string;
16
+ get crc32(): string;
17
+ get sha1(): string;
18
+ get original(): string | undefined;
19
+ get size(): Byte | undefined;
20
+ get title(): string | undefined;
21
+ get length(): Duration | undefined;
22
+ get height(): number | undefined;
23
+ get width(): number | undefined;
24
+ get track(): number | undefined;
25
+ get external_identifier(): string | string[] | undefined;
26
+ get creator(): string | undefined;
27
+ get album(): string | undefined;
28
+ constructor(json: Record<string, any>);
29
+ }
@@ -1,95 +1,95 @@
1
- import { __decorate } from "tslib";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { Memoize } from 'typescript-memoize';
4
- import { ByteParser, DurationParser, NumberParser, } from '@internetarchive/field-parsers';
5
- /**
6
- * This represents an Internet Archive File
7
- *
8
- * @export
9
- * @class File
10
- */
11
- export class File {
12
- constructor(json) {
13
- this.rawValue = json;
14
- }
15
- get name() {
16
- return this.rawValue.name;
17
- }
18
- get source() {
19
- return this.rawValue.source;
20
- }
21
- get btih() {
22
- return this.rawValue.btih;
23
- }
24
- get md5() {
25
- return this.rawValue.md5;
26
- }
27
- get format() {
28
- return this.rawValue.format;
29
- }
30
- get mtime() {
31
- return this.rawValue.mtime;
32
- }
33
- get crc32() {
34
- return this.rawValue.crc32;
35
- }
36
- get sha1() {
37
- return this.rawValue.sha1;
38
- }
39
- get original() {
40
- return this.rawValue.original;
41
- }
42
- get size() {
43
- return this.rawValue.size
44
- ? ByteParser.shared.parseValue(this.rawValue.size)
45
- : undefined;
46
- }
47
- get title() {
48
- return this.rawValue.title;
49
- }
50
- get length() {
51
- return this.rawValue.length
52
- ? DurationParser.shared.parseValue(this.rawValue.length)
53
- : undefined;
54
- }
55
- get height() {
56
- return this.rawValue.height
57
- ? NumberParser.shared.parseValue(this.rawValue.height)
58
- : undefined;
59
- }
60
- get width() {
61
- return this.rawValue.width
62
- ? NumberParser.shared.parseValue(this.rawValue.width)
63
- : undefined;
64
- }
65
- get track() {
66
- return this.rawValue.track
67
- ? NumberParser.shared.parseValue(this.rawValue.track)
68
- : undefined;
69
- }
70
- get external_identifier() {
71
- return this.rawValue.external_identifier;
72
- }
73
- get creator() {
74
- return this.rawValue.creator;
75
- }
76
- get album() {
77
- return this.rawValue.album;
78
- }
79
- }
80
- __decorate([
81
- Memoize()
82
- ], File.prototype, "size", null);
83
- __decorate([
84
- Memoize()
85
- ], File.prototype, "length", null);
86
- __decorate([
87
- Memoize()
88
- ], File.prototype, "height", null);
89
- __decorate([
90
- Memoize()
91
- ], File.prototype, "width", null);
92
- __decorate([
93
- Memoize()
94
- ], File.prototype, "track", null);
1
+ import { __decorate } from "tslib";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Memoize } from 'typescript-memoize';
4
+ import { ByteParser, DurationParser, NumberParser, } from '@internetarchive/field-parsers';
5
+ /**
6
+ * This represents an Internet Archive File
7
+ *
8
+ * @export
9
+ * @class File
10
+ */
11
+ export class File {
12
+ constructor(json) {
13
+ this.rawValue = json;
14
+ }
15
+ get name() {
16
+ return this.rawValue.name;
17
+ }
18
+ get source() {
19
+ return this.rawValue.source;
20
+ }
21
+ get btih() {
22
+ return this.rawValue.btih;
23
+ }
24
+ get md5() {
25
+ return this.rawValue.md5;
26
+ }
27
+ get format() {
28
+ return this.rawValue.format;
29
+ }
30
+ get mtime() {
31
+ return this.rawValue.mtime;
32
+ }
33
+ get crc32() {
34
+ return this.rawValue.crc32;
35
+ }
36
+ get sha1() {
37
+ return this.rawValue.sha1;
38
+ }
39
+ get original() {
40
+ return this.rawValue.original;
41
+ }
42
+ get size() {
43
+ return this.rawValue.size
44
+ ? ByteParser.shared.parseValue(this.rawValue.size)
45
+ : undefined;
46
+ }
47
+ get title() {
48
+ return this.rawValue.title;
49
+ }
50
+ get length() {
51
+ return this.rawValue.length
52
+ ? DurationParser.shared.parseValue(this.rawValue.length)
53
+ : undefined;
54
+ }
55
+ get height() {
56
+ return this.rawValue.height
57
+ ? NumberParser.shared.parseValue(this.rawValue.height)
58
+ : undefined;
59
+ }
60
+ get width() {
61
+ return this.rawValue.width
62
+ ? NumberParser.shared.parseValue(this.rawValue.width)
63
+ : undefined;
64
+ }
65
+ get track() {
66
+ return this.rawValue.track
67
+ ? NumberParser.shared.parseValue(this.rawValue.track)
68
+ : undefined;
69
+ }
70
+ get external_identifier() {
71
+ return this.rawValue.external_identifier;
72
+ }
73
+ get creator() {
74
+ return this.rawValue.creator;
75
+ }
76
+ get album() {
77
+ return this.rawValue.album;
78
+ }
79
+ }
80
+ __decorate([
81
+ Memoize()
82
+ ], File.prototype, "size", null);
83
+ __decorate([
84
+ Memoize()
85
+ ], File.prototype, "length", null);
86
+ __decorate([
87
+ Memoize()
88
+ ], File.prototype, "height", null);
89
+ __decorate([
90
+ Memoize()
91
+ ], File.prototype, "width", null);
92
+ __decorate([
93
+ Memoize()
94
+ ], File.prototype, "track", null);
95
95
  //# sourceMappingURL=file.js.map
@@ -1,5 +1,5 @@
1
- import { BooleanParser } from '@internetarchive/field-parsers';
2
- import { MetadataField, MetadataRawValue } from '../metadata-field';
3
- export declare class BooleanField extends MetadataField<boolean, BooleanParser> {
4
- constructor(rawValue: MetadataRawValue);
5
- }
1
+ import { BooleanParser } from '@internetarchive/field-parsers';
2
+ import { MetadataField, MetadataRawValue } from '../metadata-field';
3
+ export declare class BooleanField extends MetadataField<boolean, BooleanParser> {
4
+ constructor(rawValue: MetadataRawValue);
5
+ }
@@ -1,8 +1,8 @@
1
- import { BooleanParser } from '@internetarchive/field-parsers';
2
- import { MetadataField } from '../metadata-field';
3
- export class BooleanField extends MetadataField {
4
- constructor(rawValue) {
5
- super(BooleanParser.shared, rawValue);
6
- }
7
- }
1
+ import { BooleanParser } from '@internetarchive/field-parsers';
2
+ import { MetadataField } from '../metadata-field';
3
+ export class BooleanField extends MetadataField {
4
+ constructor(rawValue) {
5
+ super(BooleanParser.shared, rawValue);
6
+ }
7
+ }
8
8
  //# sourceMappingURL=boolean.js.map
@@ -1,13 +1,13 @@
1
- import { Byte, ByteParser } from '@internetarchive/field-parsers';
2
- import { MetadataField, MetadataRawValue } from '../metadata-field';
3
- /**
4
- * ByteField is a unit-specific number field that
5
- * returns a value in bytes
6
- *
7
- * @export
8
- * @class ByteField
9
- * @extends {MetadataField<Byte, ByteParser>}
10
- */
11
- export declare class ByteField extends MetadataField<Byte, ByteParser> {
12
- constructor(rawValue: MetadataRawValue);
13
- }
1
+ import { Byte, ByteParser } from '@internetarchive/field-parsers';
2
+ import { MetadataField, MetadataRawValue } from '../metadata-field';
3
+ /**
4
+ * ByteField is a unit-specific number field that
5
+ * returns a value in bytes
6
+ *
7
+ * @export
8
+ * @class ByteField
9
+ * @extends {MetadataField<Byte, ByteParser>}
10
+ */
11
+ export declare class ByteField extends MetadataField<Byte, ByteParser> {
12
+ constructor(rawValue: MetadataRawValue);
13
+ }