@internetarchive/metadata-service 1.0.4 → 1.0.5-webdev-7743.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/dist/index.d.ts +1 -3
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/src/models/file.d.ts +1 -1
- package/dist/src/models/file.js +10 -1
- package/dist/src/models/file.js.map +1 -1
- package/dist/src/models/task.d.ts +11 -0
- package/dist/src/models/task.js +2 -0
- package/dist/src/models/task.js.map +1 -0
- package/dist/src/responses/metadata-response.d.ts +1 -4
- package/dist/src/responses/metadata-response.js +1 -3
- package/dist/src/responses/metadata-response.js.map +1 -1
- package/dist/test/models/file.test.js +10 -0
- package/dist/test/models/file.test.js.map +1 -1
- package/index.ts +5 -3
- package/package.json +2 -2
- package/src/responses/metadata-response.ts +6 -4
- package/dist/src/models/metadata-fields/field-types/boolean.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/boolean.js +0 -9
- package/dist/src/models/metadata-fields/field-types/boolean.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/byte.d.ts +0 -13
- package/dist/src/models/metadata-fields/field-types/byte.js +0 -16
- package/dist/src/models/metadata-fields/field-types/byte.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/date.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/date.js +0 -9
- package/dist/src/models/metadata-fields/field-types/date.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/duration.d.ts +0 -14
- package/dist/src/models/metadata-fields/field-types/duration.js +0 -17
- package/dist/src/models/metadata-fields/field-types/duration.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/list.d.ts +0 -25
- package/dist/src/models/metadata-fields/field-types/list.js +0 -34
- package/dist/src/models/metadata-fields/field-types/list.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/mediatype.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/mediatype.js +0 -9
- package/dist/src/models/metadata-fields/field-types/mediatype.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/number.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/number.js +0 -9
- package/dist/src/models/metadata-fields/field-types/number.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/page-progression.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/page-progression.js +0 -9
- package/dist/src/models/metadata-fields/field-types/page-progression.js.map +0 -1
- package/dist/src/models/metadata-fields/field-types/string.d.ts +0 -5
- package/dist/src/models/metadata-fields/field-types/string.js +0 -9
- package/dist/src/models/metadata-fields/field-types/string.js.map +0 -1
- package/dist/src/models/metadata-fields/metadata-field.d.ts +0 -70
- package/dist/src/models/metadata-fields/metadata-field.js +0 -68
- package/dist/src/models/metadata-fields/metadata-field.js.map +0 -1
- package/dist/src/models/metadata.d.ts +0 -169
- package/dist/src/models/metadata.js +0 -685
- package/dist/src/models/metadata.js.map +0 -1
- package/dist/test/models/metadata-fields/list-field.test.d.ts +0 -1
- package/dist/test/models/metadata-fields/list-field.test.js +0 -53
- package/dist/test/models/metadata-fields/list-field.test.js.map +0 -1
- package/dist/test/models/metadata-fields/metadata-field.test.d.ts +0 -1
- package/dist/test/models/metadata-fields/metadata-field.test.js +0 -122
- package/dist/test/models/metadata-fields/metadata-field.test.js.map +0 -1
- package/dist/test/models/metadata.test.d.ts +0 -1
- package/dist/test/models/metadata.test.js +0 -11
- package/dist/test/models/metadata.test.js.map +0 -1
- package/src/models/file.ts +0 -106
- package/src/models/review.ts +0 -46
- package/src/models/speech-music-asr-entry.ts +0 -10
- package/test/models/file.test.ts +0 -52
- package/test/models/review.test.ts +0 -59
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export { MetadataResponse } from './src/responses/metadata-response';
|
|
2
|
-
export { File } from '
|
|
3
|
-
export { Review } from './src/models/review';
|
|
4
|
-
export { SpeechMusicASREntry } from './src/models/speech-music-asr-entry';
|
|
2
|
+
export { File, Review, SpeechMusicASREntry, } from '@internetarchive/iaux-item-metadata';
|
|
5
3
|
export { DefaultMetadataBackend } from './src/backend/default-metadata-backend';
|
|
6
4
|
export { MetadataService } from './src/metadata-service';
|
|
7
5
|
export { MetadataServiceError } from './src/metadata-service-error';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { MetadataResponse } from './src/responses/metadata-response';
|
|
2
|
-
export { File } from '
|
|
3
|
-
export { Review } from './src/models/review';
|
|
2
|
+
export { File, Review, } from '@internetarchive/iaux-item-metadata';
|
|
4
3
|
export { DefaultMetadataBackend } from './src/backend/default-metadata-backend';
|
|
5
4
|
export { MetadataService } from './src/metadata-service';
|
|
6
5
|
export { MetadataServiceError } from './src/metadata-service-error';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EACL,IAAI,EACJ,MAAM,GAEP,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["export { MetadataResponse } from './src/responses/metadata-response';\n\nexport {\n File,\n Review,\n SpeechMusicASREntry,\n} from '@internetarchive/iaux-item-metadata';\n\nexport { DefaultMetadataBackend } from './src/backend/default-metadata-backend';\nexport { MetadataService } from './src/metadata-service';\nexport { MetadataServiceError } from './src/metadata-service-error';\nexport { MetadataServiceInterface } from './src/metadata-service-interface';\n"]}
|
package/dist/src/models/file.js
CHANGED
|
@@ -24,7 +24,13 @@ export class File {
|
|
|
24
24
|
return this.rawValue.format;
|
|
25
25
|
}
|
|
26
26
|
get mtime() {
|
|
27
|
-
|
|
27
|
+
if (this.rawValue.mtime == null) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const numberValue = NumberParser.shared.parseValue(this.rawValue.mtime);
|
|
31
|
+
if (numberValue) {
|
|
32
|
+
return new Date(numberValue * 1000);
|
|
33
|
+
}
|
|
28
34
|
}
|
|
29
35
|
get crc32() {
|
|
30
36
|
return this.rawValue.crc32;
|
|
@@ -77,6 +83,9 @@ export class File {
|
|
|
77
83
|
this.rawValue = json;
|
|
78
84
|
}
|
|
79
85
|
}
|
|
86
|
+
__decorate([
|
|
87
|
+
Memoize()
|
|
88
|
+
], File.prototype, "mtime", null);
|
|
80
89
|
__decorate([
|
|
81
90
|
Memoize()
|
|
82
91
|
], File.prototype, "size", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/models/file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAEL,UAAU,EAEV,cAAc,EACd,YAAY,GACb,MAAM,gCAAgC,CAAC;AAExC;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IAIf,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/models/file.ts"],"names":[],"mappings":"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","sourcesContent":["import { Memoize } from 'typescript-memoize';\nimport {\n Byte,\n ByteParser,\n Duration,\n DurationParser,\n NumberParser,\n} from '@internetarchive/field-parsers';\n\n/**\n * This represents an Internet Archive File\n *\n * @export\n * @class File\n */\nexport class File {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n readonly rawValue: Readonly<Record<string, any>>;\n\n get name(): string {\n return this.rawValue.name;\n }\n\n get source(): string {\n return this.rawValue.source;\n }\n\n get btih(): string {\n return this.rawValue.btih;\n }\n\n get md5(): string {\n return this.rawValue.md5;\n }\n\n get format(): string {\n return this.rawValue.format;\n }\n\n @Memoize() get mtime(): Date | undefined {\n if (this.rawValue.mtime == null) {\n return undefined;\n }\n const numberValue = NumberParser.shared.parseValue(this.rawValue.mtime);\n if (numberValue) {\n return new Date(numberValue * 1000);\n }\n }\n\n get crc32(): string {\n return this.rawValue.crc32;\n }\n\n get sha1(): string {\n return this.rawValue.sha1;\n }\n\n get original(): string | undefined {\n return this.rawValue.original;\n }\n\n @Memoize() get size(): Byte | undefined {\n return this.rawValue.size != null\n ? ByteParser.shared.parseValue(this.rawValue.size)\n : undefined;\n }\n\n get title(): string | undefined {\n return this.rawValue.title;\n }\n\n @Memoize() get length(): Duration | undefined {\n return this.rawValue.length != null\n ? DurationParser.shared.parseValue(this.rawValue.length)\n : undefined;\n }\n\n @Memoize() get height(): number | undefined {\n return this.rawValue.height != null\n ? NumberParser.shared.parseValue(this.rawValue.height)\n : undefined;\n }\n\n @Memoize() get width(): number | undefined {\n return this.rawValue.width != null\n ? NumberParser.shared.parseValue(this.rawValue.width)\n : undefined;\n }\n\n @Memoize() get track(): number | undefined {\n return this.rawValue.track != null\n ? NumberParser.shared.parseValue(this.rawValue.track)\n : undefined;\n }\n\n get external_identifier(): string | string[] | undefined {\n return this.rawValue.external_identifier;\n }\n\n get creator(): string | undefined {\n return this.rawValue.creator;\n }\n\n get album(): string | undefined {\n return this.rawValue.album;\n }\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n constructor(json: Record<string, any> = {}) {\n this.rawValue = json;\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type TaskColor = 'red' | 'green' | 'blue' | 'purple' | 'brown';
|
|
2
|
+
export type TaskStatus = 'error' | 'queued' | 'running' | 'passed' | 'paused';
|
|
3
|
+
export type Task = {
|
|
4
|
+
task_id: number;
|
|
5
|
+
cmd: string;
|
|
6
|
+
priority: number;
|
|
7
|
+
wait_admin: number;
|
|
8
|
+
args: Record<string, string>;
|
|
9
|
+
color: TaskColor;
|
|
10
|
+
status: TaskStatus;
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/models/task.ts"],"names":[],"mappings":"","sourcesContent":["export type TaskColor = 'red' | 'green' | 'blue' | 'purple' | 'brown';\n\nexport type TaskStatus = 'error' | 'queued' | 'running' | 'passed' | 'paused';\n\nexport type Task = {\n task_id: number;\n cmd: string;\n priority: number;\n wait_admin: number;\n args: Record<string, string>;\n color: TaskColor;\n status: TaskStatus;\n};\n"]}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { Metadata } from '@internetarchive/iaux-item-metadata';
|
|
2
|
-
import { File } from '../models/file';
|
|
3
|
-
import { Review } from '../models/review';
|
|
4
|
-
import { SpeechMusicASREntry } from '../models/speech-music-asr-entry';
|
|
1
|
+
import { File, Metadata, Review, SpeechMusicASREntry } from '@internetarchive/iaux-item-metadata';
|
|
5
2
|
/**
|
|
6
3
|
* The main top-level reponse when fetching Metadata
|
|
7
4
|
*
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { Metadata } from '@internetarchive/iaux-item-metadata';
|
|
2
|
-
import { File } from '../models/file';
|
|
3
|
-
import { Review } from '../models/review';
|
|
1
|
+
import { File, Metadata, Review, } from '@internetarchive/iaux-item-metadata';
|
|
4
2
|
/**
|
|
5
3
|
* The main top-level reponse when fetching Metadata
|
|
6
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-response.js","sourceRoot":"","sources":["../../../src/responses/metadata-response.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"metadata-response.js","sourceRoot":"","sources":["../../../src/responses/metadata-response.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,GAEP,MAAM,qCAAqC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAgC3B,iEAAiE;IACjE,YAAY,IAAyB;;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,iEAAiE;QACjE,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,IAAyB,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG;QAC9B,iEAAiE;QACjE,CAAC,KAA0B,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAClD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import {\n File,\n Metadata,\n Review,\n SpeechMusicASREntry,\n} from '@internetarchive/iaux-item-metadata';\n\n/**\n * The main top-level reponse when fetching Metadata\n *\n * @export\n * @class MetadataResponse\n */\nexport class MetadataResponse {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n readonly rawResponse: Readonly<Record<string, any>>;\n\n readonly created: number;\n\n readonly d1: string;\n\n readonly d2: string;\n\n readonly dir: string;\n\n readonly files: File[];\n\n readonly files_count: number;\n\n readonly item_last_updated: number;\n\n readonly item_size: number;\n\n readonly metadata: Metadata;\n\n readonly server: string;\n\n readonly uniq: number;\n\n readonly workable_servers: string[];\n\n readonly speech_vs_music_asr?: SpeechMusicASREntry[];\n\n readonly reviews?: Review[];\n\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n constructor(json: Record<string, any>) {\n this.rawResponse = json;\n this.created = json.created;\n this.d1 = json.d1;\n this.d2 = json.d2;\n this.dir = json.dir;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n this.files = json.files?.map((file: Record<string, any>) => new File(file));\n this.files_count = json.files_count;\n this.item_last_updated = json.item_last_updated;\n this.item_size = json.item_size;\n this.metadata = new Metadata(json.metadata);\n this.server = json.server;\n this.uniq = json.uniq;\n this.workable_servers = json.workable_servers;\n this.speech_vs_music_asr = json.speech_vs_music_asr;\n this.reviews = json.reviews?.map(\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n (entry: Record<string, any>) => new Review(entry),\n );\n }\n}\n"]}
|
|
@@ -43,5 +43,15 @@ describe('File', () => {
|
|
|
43
43
|
expect(file.track).to.not.be.undefined;
|
|
44
44
|
expect(file.track).to.equal(0);
|
|
45
45
|
});
|
|
46
|
+
it('parses mtime properly', async () => {
|
|
47
|
+
var _a;
|
|
48
|
+
const file = new File({
|
|
49
|
+
name: 'foo.jpg',
|
|
50
|
+
mtime: '1639591034',
|
|
51
|
+
});
|
|
52
|
+
expect(file.mtime).to.not.be.undefined;
|
|
53
|
+
expect(file.mtime instanceof Date).to.be.true;
|
|
54
|
+
expect((_a = file.mtime) === null || _a === void 0 ? void 0 : _a.getTime()).to.equal(1639591034000);
|
|
55
|
+
});
|
|
46
56
|
});
|
|
47
57
|
//# sourceMappingURL=file.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.test.js","sourceRoot":"","sources":["../../../test/models/file.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from '@open-wc/testing';\n\nimport { File } from '../../src/models/file';\n\ndescribe('File', () => {\n it('can be instantiated with an object', async () => {\n const file = new File({ name: 'foo.jpg' });\n expect(file.name).to.equal('foo.jpg');\n });\n\n // some fields like size and length get converted to their proper types\n it('properly instantiates modeled fields', async () => {\n const file = new File({\n name: 'foo.jpg',\n size: '1234',\n length: '1:23',\n height: '1080',\n width: '1920',\n track: '1',\n });\n expect(file.size).to.equal(1234);\n expect(file.length).to.equal(83);\n expect(file.height).to.equal(1080);\n expect(file.width).to.equal(1920);\n expect(file.track).to.equal(1);\n });\n\n it('external_identifier can be a single value', async () => {\n const file = new File({ name: 'foo.jpg', external_identifier: 'bar' });\n expect(file.external_identifier).to.equal('bar');\n });\n\n it('external_identifier can be an array', async () => {\n const file = new File({\n name: 'foo.jpg',\n external_identifier: ['foo', 'bar'],\n });\n expect(file.external_identifier).to.deep.equal(['foo', 'bar']);\n });\n\n it('handles falsy values properly', async () => {\n const file = new File({\n name: 'foo.jpg',\n size: 0,\n track: 0,\n });\n expect(file.size).to.not.be.undefined;\n expect(file.size).to.equal(0);\n expect(file.track).to.not.be.undefined;\n expect(file.track).to.equal(0);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"file.test.js","sourceRoot":"","sources":["../../../test/models/file.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from '@open-wc/testing';\n\nimport { File } from '../../src/models/file';\n\ndescribe('File', () => {\n it('can be instantiated with an object', async () => {\n const file = new File({ name: 'foo.jpg' });\n expect(file.name).to.equal('foo.jpg');\n });\n\n // some fields like size and length get converted to their proper types\n it('properly instantiates modeled fields', async () => {\n const file = new File({\n name: 'foo.jpg',\n size: '1234',\n length: '1:23',\n height: '1080',\n width: '1920',\n track: '1',\n });\n expect(file.size).to.equal(1234);\n expect(file.length).to.equal(83);\n expect(file.height).to.equal(1080);\n expect(file.width).to.equal(1920);\n expect(file.track).to.equal(1);\n });\n\n it('external_identifier can be a single value', async () => {\n const file = new File({ name: 'foo.jpg', external_identifier: 'bar' });\n expect(file.external_identifier).to.equal('bar');\n });\n\n it('external_identifier can be an array', async () => {\n const file = new File({\n name: 'foo.jpg',\n external_identifier: ['foo', 'bar'],\n });\n expect(file.external_identifier).to.deep.equal(['foo', 'bar']);\n });\n\n it('handles falsy values properly', async () => {\n const file = new File({\n name: 'foo.jpg',\n size: 0,\n track: 0,\n });\n expect(file.size).to.not.be.undefined;\n expect(file.size).to.equal(0);\n expect(file.track).to.not.be.undefined;\n expect(file.track).to.equal(0);\n });\n\n it('parses mtime properly', async () => {\n const file = new File({\n name: 'foo.jpg',\n mtime: '1639591034',\n });\n expect(file.mtime).to.not.be.undefined;\n expect(file.mtime instanceof Date).to.be.true;\n expect(file.mtime?.getTime()).to.equal(1639591034000);\n });\n});\n"]}
|
package/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { MetadataResponse } from './src/responses/metadata-response';
|
|
2
2
|
|
|
3
|
-
export {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export {
|
|
4
|
+
File,
|
|
5
|
+
Review,
|
|
6
|
+
SpeechMusicASREntry,
|
|
7
|
+
} from '@internetarchive/iaux-item-metadata';
|
|
6
8
|
|
|
7
9
|
export { DefaultMetadataBackend } from './src/backend/default-metadata-backend';
|
|
8
10
|
export { MetadataService } from './src/metadata-service';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@internetarchive/metadata-service",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5-webdev-7743.0",
|
|
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.
|
|
30
|
+
"@internetarchive/iaux-item-metadata": "^1.0.7-webdev-7743.0",
|
|
31
31
|
"@internetarchive/result-type": "^0.0.1",
|
|
32
32
|
"typescript-memoize": "^1.1.1"
|
|
33
33
|
},
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import {
|
|
2
|
+
File,
|
|
3
|
+
Metadata,
|
|
4
|
+
Review,
|
|
5
|
+
SpeechMusicASREntry,
|
|
6
|
+
} from '@internetarchive/iaux-item-metadata';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* The main top-level reponse when fetching Metadata
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BooleanParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class BooleanField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(BooleanParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=boolean.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,YAAa,SAAQ,aAAqC;IACrE,YAAY,QAA0B;QACpC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF","sourcesContent":["import { BooleanParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class BooleanField extends MetadataField<boolean, BooleanParser> {\n constructor(rawValue: MetadataRawValue) {\n super(BooleanParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
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,16 +0,0 @@
|
|
|
1
|
-
import { ByteParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } 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 class ByteField extends MetadataField {
|
|
12
|
-
constructor(rawValue) {
|
|
13
|
-
super(ByteParser.shared, rawValue);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
// # sourceMappingURL=byte.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"byte.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/byte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,OAAO,SAAU,SAAQ,aAA+B;IAC5D,YAAY,QAA0B;QACpC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF","sourcesContent":["import { Byte, ByteParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\n/**\n * ByteField is a unit-specific number field that\n * returns a value in bytes\n *\n * @export\n * @class ByteField\n * @extends {MetadataField<Byte, ByteParser>}\n */\nexport class ByteField extends MetadataField<Byte, ByteParser> {\n constructor(rawValue: MetadataRawValue) {\n super(ByteParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DateParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class DateField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(DateParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=date.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,SAAU,SAAQ,aAA+B;IAC5D,YAAY,QAA0B;QACpC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF","sourcesContent":["import { DateParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class DateField extends MetadataField<Date, DateParser> {\n constructor(rawValue: MetadataRawValue) {\n super(DateParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Duration, DurationParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField, MetadataRawValue } from '../metadata-field';
|
|
3
|
-
/**
|
|
4
|
-
* The DurationField parses different duration formats
|
|
5
|
-
* and returns a `Duration`, which is a number in seconds
|
|
6
|
-
* with decimals.
|
|
7
|
-
*
|
|
8
|
-
* @export
|
|
9
|
-
* @class DurationField
|
|
10
|
-
* @extends {MetadataField<Duration, DurationParser>}
|
|
11
|
-
*/
|
|
12
|
-
export declare class DurationField extends MetadataField<Duration, DurationParser> {
|
|
13
|
-
constructor(rawValue: MetadataRawValue);
|
|
14
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { DurationParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
/**
|
|
4
|
-
* The DurationField parses different duration formats
|
|
5
|
-
* and returns a `Duration`, which is a number in seconds
|
|
6
|
-
* with decimals.
|
|
7
|
-
*
|
|
8
|
-
* @export
|
|
9
|
-
* @class DurationField
|
|
10
|
-
* @extends {MetadataField<Duration, DurationParser>}
|
|
11
|
-
*/
|
|
12
|
-
export class DurationField extends MetadataField {
|
|
13
|
-
constructor(rawValue) {
|
|
14
|
-
super(DurationParser.shared, rawValue);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// # sourceMappingURL=duration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAuC;IACxE,YAAY,QAA0B;QACpC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF","sourcesContent":["import { Duration, DurationParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\n/**\n * The DurationField parses different duration formats\n * and returns a `Duration`, which is a number in seconds\n * with decimals.\n *\n * @export\n * @class DurationField\n * @extends {MetadataField<Duration, DurationParser>}\n */\nexport class DurationField extends MetadataField<Duration, DurationParser> {\n constructor(rawValue: MetadataRawValue) {\n super(DurationParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { FieldParserInterface, ListParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField, MetadataRawValue } from '../metadata-field';
|
|
3
|
-
/**
|
|
4
|
-
* The ListField handles parsing of a list of values.
|
|
5
|
-
*
|
|
6
|
-
* Certain fields in the metadata, like `subject` typically have a
|
|
7
|
-
* comma or semicolon-separated list of values. The `ListField`
|
|
8
|
-
* parses the list values independently and aggregates them into
|
|
9
|
-
* the main `.values` array.
|
|
10
|
-
*/
|
|
11
|
-
export declare class ListField<T, FieldParserInterfaceType extends FieldParserInterface<T[]>> extends MetadataField<T, FieldParserInterfaceType> {
|
|
12
|
-
constructor(rawValue: MetadataRawValue, parser: FieldParserInterfaceType);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* The StringListField handles parsing of a list of strings.
|
|
16
|
-
*/
|
|
17
|
-
export declare class StringListField extends ListField<string, ListParser<string>> {
|
|
18
|
-
constructor(rawValue: MetadataRawValue);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* The NumberListField handles parsing of a list of numbers.
|
|
22
|
-
*/
|
|
23
|
-
export declare class NumberListField extends ListField<number, ListParser<number>> {
|
|
24
|
-
constructor(rawValue: MetadataRawValue);
|
|
25
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ListParser, NumberParser, StringParser, } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
/**
|
|
4
|
-
* The ListField handles parsing of a list of values.
|
|
5
|
-
*
|
|
6
|
-
* Certain fields in the metadata, like `subject` typically have a
|
|
7
|
-
* comma or semicolon-separated list of values. The `ListField`
|
|
8
|
-
* parses the list values independently and aggregates them into
|
|
9
|
-
* the main `.values` array.
|
|
10
|
-
*/
|
|
11
|
-
export class ListField extends MetadataField {
|
|
12
|
-
constructor(rawValue, parser) {
|
|
13
|
-
super(parser, rawValue);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* The StringListField handles parsing of a list of strings.
|
|
18
|
-
*/
|
|
19
|
-
export class StringListField extends ListField {
|
|
20
|
-
constructor(rawValue) {
|
|
21
|
-
const parser = new ListParser(StringParser.shared);
|
|
22
|
-
super(rawValue, parser);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* The NumberListField handles parsing of a list of numbers.
|
|
27
|
-
*/
|
|
28
|
-
export class NumberListField extends ListField {
|
|
29
|
-
constructor(rawValue) {
|
|
30
|
-
const parser = new ListParser(NumberParser.shared);
|
|
31
|
-
super(rawValue, parser);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// # sourceMappingURL=list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,OAAO,SAGX,SAAQ,aAA0C;IAClD,YAAY,QAA0B,EAAE,MAAgC;QACtE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAqC;IACxE,YAAY,QAA0B;QACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAS,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAqC;IACxE,YAAY,QAA0B;QACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAS,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF","sourcesContent":["import {\n FieldParserInterface,\n ListParser,\n NumberParser,\n StringParser,\n} from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\n/**\n * The ListField handles parsing of a list of values.\n *\n * Certain fields in the metadata, like `subject` typically have a\n * comma or semicolon-separated list of values. The `ListField`\n * parses the list values independently and aggregates them into\n * the main `.values` array.\n */\nexport class ListField<\n T,\n FieldParserInterfaceType extends FieldParserInterface<T[]>\n> extends MetadataField<T, FieldParserInterfaceType> {\n constructor(rawValue: MetadataRawValue, parser: FieldParserInterfaceType) {\n super(parser, rawValue);\n }\n}\n\n/**\n * The StringListField handles parsing of a list of strings.\n */\nexport class StringListField extends ListField<string, ListParser<string>> {\n constructor(rawValue: MetadataRawValue) {\n const parser = new ListParser<string>(StringParser.shared);\n super(rawValue, parser);\n }\n}\n\n/**\n * The NumberListField handles parsing of a list of numbers.\n */\nexport class NumberListField extends ListField<number, ListParser<number>> {\n constructor(rawValue: MetadataRawValue) {\n const parser = new ListParser<number>(NumberParser.shared);\n super(rawValue, parser);\n }\n}\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { MediaType, MediaTypeParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField, MetadataRawValue } from '../metadata-field';
|
|
3
|
-
export declare class MediaTypeField extends MetadataField<MediaType, MediaTypeParser> {
|
|
4
|
-
constructor(rawValue: MetadataRawValue);
|
|
5
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { MediaTypeParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class MediaTypeField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(MediaTypeParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=mediatype.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mediatype.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/mediatype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,cAAe,SAAQ,aAAyC;IAC3E,YAAY,QAA0B;QACpC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import { MediaType, MediaTypeParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class MediaTypeField extends MetadataField<MediaType, MediaTypeParser> {\n constructor(rawValue: MetadataRawValue) {\n super(MediaTypeParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { NumberParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class NumberField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(NumberParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=number.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,WAAY,SAAQ,aAAmC;IAClE,YAAY,QAA0B;QACpC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF","sourcesContent":["import { NumberParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class NumberField extends MetadataField<number, NumberParser> {\n constructor(rawValue: MetadataRawValue) {\n super(NumberParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { PageProgression, PageProgressionParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField, MetadataRawValue } from '../metadata-field';
|
|
3
|
-
export declare class PageProgressionField extends MetadataField<PageProgression, PageProgressionParser> {
|
|
4
|
-
constructor(rawValue: MetadataRawValue);
|
|
5
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PageProgressionParser, } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class PageProgressionField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(PageProgressionParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=page-progression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-progression.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/page-progression.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,oBAAqB,SAAQ,aAGzC;IACC,YAAY,QAA0B;QACpC,KAAK,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["import {\n PageProgression,\n PageProgressionParser,\n} from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class PageProgressionField extends MetadataField<\n PageProgression,\n PageProgressionParser\n> {\n constructor(rawValue: MetadataRawValue) {\n super(PageProgressionParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { StringParser } from '@internetarchive/field-parsers';
|
|
2
|
-
import { MetadataField } from '../metadata-field';
|
|
3
|
-
|
|
4
|
-
export class StringField extends MetadataField {
|
|
5
|
-
constructor(rawValue) {
|
|
6
|
-
super(StringParser.shared, rawValue);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
// # sourceMappingURL=string.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../src/models/metadata-fields/field-types/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,OAAO,WAAY,SAAQ,aAAmC;IAClE,YAAY,QAA0B;QACpC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF","sourcesContent":["import { StringParser } from '@internetarchive/field-parsers';\nimport { MetadataField, MetadataRawValue } from '../metadata-field';\n\nexport class StringField extends MetadataField<string, StringParser> {\n constructor(rawValue: MetadataRawValue) {\n super(StringParser.shared, rawValue);\n }\n}\n"]}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { FieldParserInterface } from '@internetarchive/field-parsers';
|
|
2
|
-
/**
|
|
3
|
-
* The MetadataRawValue is all of the possible raw types we can get for a field.
|
|
4
|
-
*
|
|
5
|
-
* This allows the parsers to know if they can handle the raw value or not and
|
|
6
|
-
* how to handle it if they can.
|
|
7
|
-
*/
|
|
8
|
-
export declare type MetadataRawValue = string | string[] | number | boolean;
|
|
9
|
-
export interface MetadataFieldInterface<T> {
|
|
10
|
-
/**
|
|
11
|
-
* The raw value received from the API response
|
|
12
|
-
*
|
|
13
|
-
* @type {MetadataRawValue}
|
|
14
|
-
* @memberof MetadataField
|
|
15
|
-
*/
|
|
16
|
-
rawValue?: MetadataRawValue;
|
|
17
|
-
/**
|
|
18
|
-
* The first value if there are multiple or the only value if there is one
|
|
19
|
-
*
|
|
20
|
-
* @readonly
|
|
21
|
-
* @type {(T | undefined)}
|
|
22
|
-
* @memberof MetadataField
|
|
23
|
-
*/
|
|
24
|
-
value?: T;
|
|
25
|
-
/**
|
|
26
|
-
* The array of all values for the field.
|
|
27
|
-
*
|
|
28
|
-
* Many fields only contain a single value and
|
|
29
|
-
* can be accessed via the `.value` getter
|
|
30
|
-
*
|
|
31
|
-
* @type {T[]}
|
|
32
|
-
* @memberof MetadataField
|
|
33
|
-
*/
|
|
34
|
-
values: T[];
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* The MetadataField is responsible for three things:
|
|
38
|
-
* 1. Take in some raw data (strings, arrays, numbers, etc)
|
|
39
|
-
* 2. Normalize the input to an array of the input,
|
|
40
|
-
* ie. [string, string], [number, number], [Date, Date], etc
|
|
41
|
-
* 3. Cast the values to their expected `Type`
|
|
42
|
-
*
|
|
43
|
-
* This class gets instiated with a `Type` and a parser of that type. For instance, the
|
|
44
|
-
* `DateField` is a subclass of `MetadataField` with a `Type` of `Date` and a `DateParser`.
|
|
45
|
-
*
|
|
46
|
-
* When using a `DateField`, you can pass it a string date and it will cast it to a javascript Date,
|
|
47
|
-
* ie:
|
|
48
|
-
*
|
|
49
|
-
* ```
|
|
50
|
-
* const dateField = new DateField('2020-02-13')
|
|
51
|
-
* dateField.value = Date(2020-02-13) // native javascript Date object
|
|
52
|
-
* dateField.values = [Date(2020-02-13)] // the normalized array of values
|
|
53
|
-
* dateField.rawValue = '2020-02-13' // the raw string that was passed in
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @class MetadataField
|
|
57
|
-
* @template Type The type of metadata this is (string, number, Date, etc)
|
|
58
|
-
* @template FieldParserInterfaceType The parser for that type (StringParser, NumberParser, etc)
|
|
59
|
-
*/
|
|
60
|
-
export declare class MetadataField<Type, FieldParserInterfaceType extends FieldParserInterface<Type | Type[]>> implements MetadataFieldInterface<Type> {
|
|
61
|
-
/** @inheritdoc */
|
|
62
|
-
rawValue?: MetadataRawValue;
|
|
63
|
-
/** @inheritdoc */
|
|
64
|
-
get values(): Type[];
|
|
65
|
-
/** @inheritdoc */
|
|
66
|
-
get value(): Type | undefined;
|
|
67
|
-
constructor(parser: FieldParserInterfaceType, rawValue?: MetadataRawValue);
|
|
68
|
-
private parser;
|
|
69
|
-
private parseRawValue;
|
|
70
|
-
}
|