From 7445f81042f90448b64a6b9c4ac67856078ab4e6 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Tue, 10 Mar 2015 19:42:22 -0500 Subject: [PATCH 01/15] Port Zotero.Date.sqlToISO8601 from 755ead21194f57d11f00e80754d501ac0158bfb6 Copy-pasted, no modifications --- chrome/content/zotero/xpcom/date.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/chrome/content/zotero/xpcom/date.js b/chrome/content/zotero/xpcom/date.js index c92721c9c4..c41b5eec50 100644 --- a/chrome/content/zotero/xpcom/date.js +++ b/chrome/content/zotero/xpcom/date.js @@ -544,6 +544,29 @@ Zotero.Date = new function(){ return false; } + + this.sqlToISO8601 = function (sqlDate) { + var date = sqlDate.substr(0, 10); + var matches = date.match(/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})/); + if (!matches) { + return false; + } + date = matches[1]; + // Drop parts for reduced precision + if (matches[2] !== "00") { + date += "-" + matches[2]; + if (matches[3] !== "00") { + date += "-" + matches[3]; + } + } + var time = sqlDate.substr(11); + // TODO: validate times + if (time) { + date += "T" + time + "Z"; + } + return date; + } + function strToMultipart(str){ if (!str){ return ''; From 21cd15b0680617d92624d140fc9e0cd39169ce11 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Tue, 10 Mar 2015 19:46:48 -0500 Subject: [PATCH 02/15] Port Zotero.Item.toJSON from api_syncing branch * Modified to use synchronous DB access * Take patchBase argument as an option * Update to conform to v3 API --- chrome/content/zotero/xpcom/data/item.js | 186 +++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/chrome/content/zotero/xpcom/data/item.js b/chrome/content/zotero/xpcom/data/item.js index 68e488bc5e..e3fb3dba9c 100644 --- a/chrome/content/zotero/xpcom/data/item.js +++ b/chrome/content/zotero/xpcom/data/item.js @@ -4918,6 +4918,192 @@ Zotero.Item.prototype.serialize = function(mode) { return arr; } +/** + * Serializes Zotero Item into Zotero web server API JSON format + * + * @param {Object} options + * mode {String}: [new|full|patch] "new" is default. "full" mode includes all + * fields even if empty. "patch" returns only fields that are different from + * those in patchBase + * patchBase {Object}: Item in API JSON format to be compared to in + * "patch" mode. Required if "patch" mode is specified + */ +Zotero.Item.prototype.toJSON = function(options) { + if (this.id || this.key) { + if (!this._primaryDataLoaded) { + this.loadPrimaryData(true); + } + + if (this.id) { + if (!this._itemDataLoaded) this._loadItemData(); + if (this.isRegularItem() && !this._creatorsLoaded) this._loadCreators(); + if (!this._relatedItemsLoaded) this._loadRelatedItems(); + } + } + + if (this.hasChanged()) { + throw new Error("Cannot generate JSON from changed item"); + } + + options = options || {}; + let mode = options.mode || 'new'; + let patchBase = options.patchBase; + + if (mode == 'patch') { + if (!patchBase) { + throw new Error('Cannot use "patch" mode if patchBase not provided'); + } + } + else if (patchBase) { + Zotero.debug('Zotero.Item.toJSON: ignoring provided patchBase in "' + mode + '" mode', 2); + } + + let obj = { + key: this.key || false, + version: 1, + itemType: Zotero.ItemTypes.getName(this.itemTypeID), + tags: [], + collections: [], + relations: {} + }; + + // Type-specific fields + for (let i in this._itemData) { + let val = '' + this.getField(i); + if (val !== '' || mode == 'full') { + let name = Zotero.ItemFields.getName(i); + if (name == 'version') { + // Changed in API v3 to avoid clash with 'version' above + // Remove this after https://github.com/zotero/zotero/issues/670 + name = 'versionNumber'; + } + + obj[name] = val; + } + } + + if (this.isRegularItem()) { + // Creators + obj.creators = []; + let creators = this.getCreators(); + for (let i=0; i Date: Sun, 26 Apr 2015 18:14:38 -0500 Subject: [PATCH 03/15] Fix relations serialization in Zotero.Item::toJSON() --- chrome/content/zotero/xpcom/data/item.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/content/zotero/xpcom/data/item.js b/chrome/content/zotero/xpcom/data/item.js index e3fb3dba9c..8b581594b7 100644 --- a/chrome/content/zotero/xpcom/data/item.js +++ b/chrome/content/zotero/xpcom/data/item.js @@ -5062,7 +5062,7 @@ Zotero.Item.prototype.toJSON = function(options) { let uri = Zotero.URI.getItemURI(item); if (obj.relations[pred]) { if (typeof obj.relations[pred] == 'string') { - obj.relations[pred] = [uri]; + obj.relations[pred] = [obj.relations[pred]]; } obj.relations[pred].push(uri) } @@ -5284,7 +5284,7 @@ Zotero.Item.prototype._getRelatedItemsBidirectional = function () { } } } - else if (!related) { + else if (!related.length) { return []; } return related; From 12db2e6c51dd8ca22ecd91e24af070f39fc14949 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Tue, 10 Mar 2015 22:43:13 -0500 Subject: [PATCH 04/15] Don't throw if checking invalid field in ItemFields.isValidForType --- chrome/content/zotero/xpcom/data/itemFields.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/data/itemFields.js b/chrome/content/zotero/xpcom/data/itemFields.js index a2f4e5621c..e322be8742 100644 --- a/chrome/content/zotero/xpcom/data/itemFields.js +++ b/chrome/content/zotero/xpcom/data/itemFields.js @@ -130,7 +130,8 @@ Zotero.ItemFields = new function() { function isValidForType(fieldID, itemTypeID) { - _fieldCheck(fieldID, 'isValidForType'); + fieldID = getID(fieldID); + if (!fieldID) return false; if (!_fields[fieldID]['itemTypes']) { return false; From 47bf9c38e96e41d066a1c267365a6010be42b038 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Sun, 1 Mar 2015 23:49:23 -0600 Subject: [PATCH 05/15] Transition item Export Format to Zotero web API item JSON * Enable legacy mode for export translators compatible with pre-4.0.27: * Add compatibility mappings, so that current translators don't break if they specify minVersion lower than 4.0.27. This does introduce non-compatible changes, specifically, "version" field in legacy mode is "versionNumber" in the new format. "version" in the new format corresponds to the "version" as specified for Zotero API JSON format. New translators should expect Zotero web API JSON format and should specify minVersion 4.0.27. * Update CSL mappings to comply with new itemToExportFormat * CSL JSON export translator needs to be updated to be compatible with 4.0.27 to export correct CSL JSON * Use item URI for id in CSL JSON instead of item ID * Fix note and attachment handling in itemToCSLJSON --- .../zotero/xpcom/translation/translate.js | 4 + .../xpcom/translation/translate_item.js | 45 +----- chrome/content/zotero/xpcom/utilities.js | 79 ++++------- .../zotero/xpcom/utilities_internal.js | 131 +++++++++++++++++- test/tests/utilities.js | 100 +++++++++++++ 5 files changed, 264 insertions(+), 95 deletions(-) diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js index 060d1d2f14..920a2b5d3c 100644 --- a/chrome/content/zotero/xpcom/translation/translate.js +++ b/chrome/content/zotero/xpcom/translation/translate.js @@ -2186,6 +2186,10 @@ Zotero.Translate.Export.prototype._prepareTranslation = function() { // initialize ItemGetter this._itemGetter = new Zotero.Translate.ItemGetter(); + + // Toggle legacy mode for translators pre-4.0.27 + this._itemGetter.legacy = Services.vc.compare('4.0.27', this._translatorInfo.minVersion) > 0; + var configOptions = this._translatorInfo.configOptions || {}, getCollections = configOptions.getCollections || false; switch (this._export.type) { diff --git a/chrome/content/zotero/xpcom/translation/translate_item.js b/chrome/content/zotero/xpcom/translation/translate_item.js index 616040b870..68d0c18bb1 100644 --- a/chrome/content/zotero/xpcom/translation/translate_item.js +++ b/chrome/content/zotero/xpcom/translation/translate_item.js @@ -748,6 +748,7 @@ Zotero.Translate.ItemGetter = function() { this._itemsLeft = null; this._collectionsLeft = null; this._exportFileDirectory = null; + this.legacy = false; }; Zotero.Translate.ItemGetter.prototype = { @@ -828,13 +829,8 @@ Zotero.Translate.ItemGetter.prototype = { * Converts an attachment to array format and copies it to the export folder if desired */ "_attachmentToArray":function(attachment) { - var attachmentArray = this._itemToArray(attachment); + var attachmentArray = Zotero.Utilities.Internal.itemToExportFormat(attachment, this.legacy); var linkMode = attachment.attachmentLinkMode; - - // Get mime type - attachmentArray.mimeType = attachmentArray.uniqueFields.mimeType = attachment.attachmentMIMEType; - // Get charset - attachmentArray.charset = attachmentArray.uniqueFields.charset = attachment.attachmentCharset; if(linkMode != Zotero.Attachments.LINK_MODE_LINKED_URL) { var attachFile = attachment.getFile(); attachmentArray.localPath = attachFile.path; @@ -845,7 +841,7 @@ Zotero.Translate.ItemGetter.prototype = { // Add path and filename if not an internet link var attachFile = attachment.getFile(); if(attachFile) { - attachmentArray.defaultPath = "files/" + attachmentArray.itemID + "/" + attachFile.leafName; + attachmentArray.defaultPath = "files/" + attachment.id + "/" + attachFile.leafName; attachmentArray.filename = attachFile.leafName; /** @@ -959,39 +955,8 @@ Zotero.Translate.ItemGetter.prototype = { } } - attachmentArray.itemType = "attachment"; - return attachmentArray; }, - - /** - * Converts an item to array format - */ - "_itemToArray":function(returnItem) { - // TODO use Zotero.Item#serialize() - var returnItemArray = returnItem.toArray(); - - // Remove SQL date from multipart dates - if (returnItemArray.date) { - returnItemArray.date = Zotero.Date.multipartToStr(returnItemArray.date); - } - - var returnItemArray = Zotero.Utilities.itemToExportFormat(returnItemArray); - - // TODO: Change tag.tag references in translators to tag.name - // once translators are 1.5-only - // TODO: Preserve tag type? - if (returnItemArray.tags) { - for (var i in returnItemArray.tags) { - returnItemArray.tags[i].tag = returnItemArray.tags[i].fields.name; - } - } - - // add URI - returnItemArray.uri = Zotero.URI.getItemURI(returnItem); - - return returnItemArray; - }, /** * Retrieves the next available item @@ -1004,10 +969,10 @@ Zotero.Translate.ItemGetter.prototype = { var returnItemArray = this._attachmentToArray(returnItem); if(returnItemArray) return returnItemArray; } else { - var returnItemArray = this._itemToArray(returnItem); + var returnItemArray = Zotero.Utilities.Internal.itemToExportFormat(returnItem, this.legacy); // get attachments, although only urls will be passed if exportFileData is off - returnItemArray.attachments = new Array(); + returnItemArray.attachments = []; var attachments = returnItem.getAttachments(); for each(var attachmentID in attachments) { var attachment = Zotero.Items.get(attachmentID); diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js index eec16d1bb1..8ee2cec4a7 100644 --- a/chrome/content/zotero/xpcom/utilities.js +++ b/chrome/content/zotero/xpcom/utilities.js @@ -61,7 +61,7 @@ const CSL_TEXT_MAPPINGS = { "number-of-volumes":["numberOfVolumes"], "number-of-pages":["numPages"], "edition":["edition"], - "version":["version"], + "version":["versionNumber"], "section":["section", "committee"], "genre":["type", "programmingLanguage"], "source":["libraryCatalog"], @@ -133,7 +133,10 @@ const CSL_TYPE_MAPPINGS = { 'tvBroadcast':"broadcast", 'radioBroadcast':"broadcast", 'podcast':"song", // ?? - 'computerProgram':"book" // ?? + 'computerProgram':"book", // ?? + 'document':"article", + 'note':"article", + 'attachment':"article" }; /** @@ -1345,49 +1348,6 @@ Zotero.Utilities = { return dumpedText; }, - /** - * Adds all fields to an item in toArray() format and adds a unique (base) fields to - * uniqueFields array - */ - "itemToExportFormat":function(item) { - const CREATE_ARRAYS = ['creators', 'notes', 'tags', 'seeAlso', 'attachments']; - for(var i=0; iISSN:1234\xA0-\t5679(print)\neISSN (electronic):0028-0836'), '1234-5679'); }); }); + describe("itemToCSLJSON", function() { + it("should accept Zotero.Item and Zotero export item format", function() { + let data = populateDBWithSampleData(loadSampleData('journalArticle')); + let item = Zotero.Items.get(data.journalArticle.id); + + let fromZoteroItem; + try { + fromZoteroItem = Zotero.Utilities.itemToCSLJSON(item); + } catch(e) { + assert.fail(e, null, 'accepts Zotero Item'); + } + assert.isObject(fromZoteroItem, 'converts Zotero Item to object'); + assert.isNotNull(fromZoteroItem, 'converts Zotero Item to non-null object'); + + + let fromExportItem; + try { + fromExportItem = Zotero.Utilities.itemToCSLJSON( + Zotero.Utilities.Internal.itemToExportFormat(item) + ); + } catch(e) { + assert.fail(e, null, 'accepts Zotero export item'); + } + assert.isObject(fromExportItem, 'converts Zotero export item to object'); + assert.isNotNull(fromExportItem, 'converts Zotero export item to non-null object'); + + assert.deepEqual(fromZoteroItem, fromExportItem, 'conversion from Zotero Item and from export item are the same'); + }); + it("should convert standalone notes to expected format", function() { + let note = new Zotero.Item('note'); + note.setNote('Some note longer than 50 characters, which will become the title.'); + note = Zotero.Items.get(note.save()); + + let cslJSONNote = Zotero.Utilities.itemToCSLJSON(note); + assert.equal(cslJSONNote.type, 'article', 'note is exported as "article"'); + }); + it("should convert standalone attachments to expected format", function() { + let file = getTestDataDirectory(); + file.append("empty.pdf"); + + let attachment = Zotero.Items.get(Zotero.Attachments.importFromFile(file)); + attachment.setField('title', 'Empty'); + attachment.setField('accessDate', '2001-02-03 12:13:14'); + attachment.setField('url', 'http://example.com'); + attachment.setNote('Note'); + + attachment.save(); + + cslJSONAttachment = Zotero.Utilities.itemToCSLJSON(attachment); + assert.equal(cslJSONAttachment.type, 'article', 'attachment is exported as "article"'); + assert.equal(cslJSONAttachment.title, 'Empty', 'attachment title is correct'); + assert.deepEqual(cslJSONAttachment.accessed, {"date-parts":[["2001",2,3]]}, 'attachment access date is mapped correctly'); + }); + it("should refuse to convert unexpected item types", function() { + let data = populateDBWithSampleData(loadSampleData('journalArticle')); + let item = Zotero.Items.get(data.journalArticle.id); + + let exportFormat = Zotero.Utilities.Internal.itemToExportFormat(item); + exportFormat.itemType = 'foo'; + + assert.throws(Zotero.Utilities.itemToCSLJSON.bind(Zotero.Utilities, exportFormat), /^Unexpected Zotero Item type ".*"$/, 'throws an error when trying to map invalid item types'); + }); + it("should map additional fields from Extra field", function() { + let item = new Zotero.Item('journalArticle'); + item.setField('extra', 'PMID: 12345\nPMCID:123456'); + item = Zotero.Items.get(item.save()); + + let cslJSON = Zotero.Utilities.itemToCSLJSON(item); + + assert.equal(cslJSON.PMID, '12345', 'PMID from Extra is mapped to PMID'); + assert.equal(cslJSON.PMCID, '123456', 'PMCID from Extra is mapped to PMCID'); + + item.setField('extra', 'PMID: 12345'); + item.save(); + cslJSON = Zotero.Utilities.itemToCSLJSON(item); + + assert.equal(cslJSON.PMID, '12345', 'single-line entry is extracted correctly'); + + item.setField('extra', 'some junk: note\nPMID: 12345\nstuff in-between\nPMCID: 123456\nlast bit of junk!'); + item.save(); + cslJSON = Zotero.Utilities.itemToCSLJSON(item); + + assert.equal(cslJSON.PMID, '12345', 'PMID from mixed Extra field is mapped to PMID'); + assert.equal(cslJSON.PMCID, '123456', 'PMCID from mixed Extra field is mapped to PMCID'); + + item.setField('extra', 'a\n PMID: 12345\nfoo PMCID: 123456'); + item.save(); + cslJSON = Zotero.Utilities.itemToCSLJSON(item); + + assert.isUndefined(cslJSON.PMCID, 'field label must not be preceded by other text'); + assert.isUndefined(cslJSON.PMID, 'field label must not be preceded by a space'); + assert.equal(cslJSON.note, 'a\n PMID: 12345\nfoo PMCID: 123456', 'note is left untouched if nothing is extracted'); + + item.setField('extra', 'something\npmid: 12345\n'); + item.save(); + cslJSON = Zotero.Utilities.itemToCSLJSON(item); + + assert.isUndefined(cslJSON.PMID, 'field labels are case-sensitive'); + }); + }); }); From 9d5d8b525ad1479bfb5ce78a25dbcc3d68ae37e8 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Mon, 27 Apr 2015 19:32:45 -0500 Subject: [PATCH 06/15] Access date in Zotero.Item::toJSON should be in ISO-8601 format --- chrome/content/zotero/xpcom/data/item.js | 4 ++++ chrome/content/zotero/xpcom/utilities_internal.js | 3 +++ 2 files changed, 7 insertions(+) diff --git a/chrome/content/zotero/xpcom/data/item.js b/chrome/content/zotero/xpcom/data/item.js index 8b581594b7..242901415d 100644 --- a/chrome/content/zotero/xpcom/data/item.js +++ b/chrome/content/zotero/xpcom/data/item.js @@ -4978,6 +4978,10 @@ Zotero.Item.prototype.toJSON = function(options) { name = 'versionNumber'; } + if (name == 'accessDate') { + val = Zotero.Date.dateToISO(Zotero.Date.sqlToDate(val)); + } + obj[name] = val; } } diff --git a/chrome/content/zotero/xpcom/utilities_internal.js b/chrome/content/zotero/xpcom/utilities_internal.js index b791190a0b..fcbdfdc873 100644 --- a/chrome/content/zotero/xpcom/utilities_internal.js +++ b/chrome/content/zotero/xpcom/utilities_internal.js @@ -431,6 +431,9 @@ Zotero.Utilities.Internal = { // SQL instead of ISO-8601 item.dateAdded = zoteroItem.dateAdded; item.dateModified = zoteroItem.dateModified; + if (item.accessDate) { + item.accessDate = zoteroItem.getField('accessDate'); + } // Map base fields for (let field in item) { From 2ebce91ecf96486859d389e343c9e7d2e3aa66d4 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Mon, 23 Mar 2015 23:52:36 -0500 Subject: [PATCH 07/15] Add -g flag to runtests.sh to generate test data Add functions to generate sample data for various formats * Zotero Web API JSON (Zotero.Item::toJSON) * CiteProc-JS JSON * Export translator JSON * Direct serialization of Zotero.Item fields Add a way to load sample data into DB from JSON Add tests for loading sample data into DB Add tests for automatically generated data This will help us make sure that field mappings and data formats don't change --- test/components/zotero-unit.js | 3 + test/content/runtests.js | 78 +++++++- test/content/support.js | 315 ++++++++++++++++++++++++++++++++- test/runtests.sh | 39 ++-- test/tests/support.js | 182 ++++++++++++++++++- 5 files changed, 593 insertions(+), 24 deletions(-) diff --git a/test/components/zotero-unit.js b/test/components/zotero-unit.js index a1d3cc6854..2928cbdbd4 100644 --- a/test/components/zotero-unit.js +++ b/test/components/zotero-unit.js @@ -33,6 +33,9 @@ ZoteroUnit.prototype = { handle:function(cmdLine) { this.tests = cmdLine.handleFlagWithParam("test", false); this.noquit = cmdLine.handleFlag("noquit", false); + this.makeTestData = cmdLine.handleFlag("makeTestData", false); + this.noquit = !this.makeTestData && this.noquit; + this.runTests = !this.makeTestData; }, dump:function(x) { diff --git a/test/content/runtests.js b/test/content/runtests.js index 1b3d8dc9b7..7e3ddb1b37 100644 --- a/test/content/runtests.js +++ b/test/content/runtests.js @@ -1,17 +1,17 @@ -Components.utils.import("resource://gre/modules/FileUtils.jsm"); Components.utils.import("resource://gre/modules/osfile.jsm"); Components.utils.import("resource://zotero/q.js"); var EventUtils = Components.utils.import("resource://zotero-unit/EventUtils.jsm"); var ZoteroUnit = Components.classes["@mozilla.org/commandlinehandler/general-startup;1?type=zotero-unit"]. - getService(Components.interfaces.nsISupports). - wrappedJSObject; + getService(Components.interfaces.nsISupports). + wrappedJSObject; + var dump = ZoteroUnit.dump; function quit(failed) { // Quit with exit status if(!failed) { - OS.File.writeAtomic(FileUtils.getFile("ProfD", ["success"]).path, Uint8Array(0)); + OS.File.writeAtomic(OS.Path.join(OS.Constants.Path.profileDir, "success"), new Uint8Array(0)); } if(!ZoteroUnit.noquit) { Components.classes['@mozilla.org/toolkit/app-startup;1']. @@ -20,6 +20,72 @@ function quit(failed) { } } +if (ZoteroUnit.makeTestData) { + let dataPath = getTestDataDirectory().path; + + Zotero.Prefs.set("export.citePaperJournalArticleURL", true); + + let dataFiles = [ + { + name: 'allTypesAndFields', + func: generateAllTypesAndFieldsData + }, + { + name: 'itemJSON', + func: generateItemJSONData, + args: [null] + }, + { + name: 'citeProcJSExport', + func: generateCiteProcJSExportData + }, + { + name: 'translatorExportLegacy', + func: generateTranslatorExportData, + args: [true] + }, + { + name: 'translatorExport', + func: generateTranslatorExportData, + args: [false] + } + ]; + let p = Q.resolve(); + for (let i=0; i m.toLowerCase()); // not all-caps words + } + + itemFields[name] = value; + } + + let creatorTypes = Zotero.CreatorTypes.getTypesForItemType(itemTypes[i].id), + creators = itemFields.creators = []; + for (let j = 0; j < creatorTypes.length; j++) { + let typeName = creatorTypes[j].name; + creators.push({ + creatorType: typeName, + firstName: typeName + 'First', + lastName: typeName + 'Last' + }); + } + } + + return data; +} + +/** + * Populates the database with sample items + * The field values should be in the form exactly as they would appear in Zotero + */ +function populateDBWithSampleData(data) { + Zotero.DB.beginTransaction(); + + for (let itemName in data) { + let item = data[itemName]; + let zItem = new Zotero.Item(item.itemType); + for (let itemField in item) { + if (itemField == 'itemType') continue; + + if (itemField == 'creators') { + let creators = item[itemField]; + for (let i=0; i&2 < Date: Sun, 26 Apr 2015 01:31:03 -0500 Subject: [PATCH 08/15] Add getTempDirectory (async) method to support.js Returns a promise for a path to a new temporary directory --- test/content/runtests.js | 1 - test/content/support.js | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/test/content/runtests.js b/test/content/runtests.js index 7e3ddb1b37..b6c91b0429 100644 --- a/test/content/runtests.js +++ b/test/content/runtests.js @@ -1,5 +1,4 @@ Components.utils.import("resource://gre/modules/osfile.jsm"); -Components.utils.import("resource://zotero/q.js"); var EventUtils = Components.utils.import("resource://zotero-unit/EventUtils.jsm"); var ZoteroUnit = Components.classes["@mozilla.org/commandlinehandler/general-startup;1?type=zotero-unit"]. diff --git a/test/content/support.js b/test/content/support.js index 333616bc41..ff44fd84b1 100644 --- a/test/content/support.js +++ b/test/content/support.js @@ -1,3 +1,5 @@ +Components.utils.import("resource://zotero/q.js"); + // Useful "constants" var sqlDateTimeRe = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/; var isoDateTimeRe = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/; @@ -161,6 +163,28 @@ function getTestDataDirectory() { QueryInterface(Components.interfaces.nsIFileURL).file; } +/** + * Returns an absolute path to an empty temporary directory + * (i.e., test/tests/data) + */ +var getTempDirectory = Q.async(function getTempDirectory() { + Components.utils.import("resource://gre/modules/osfile.jsm"); + let path, + attempts = 3, + zoteroTmpDirPath = Zotero.getTempDirectory().path; + while (attempts--) { + path = OS.Path.join(zoteroTmpDirPath, Zotero.Utilities.randomString()); + try { + yield OS.File.makeDir(path, { ignoreExisting: false }); + break; + } catch (e) { + if (!attempts) throw e; // Throw on last attempt + } + } + + Q.return(path); +}); + /** * Resets the Zotero DB and restarts Zotero. Returns a promise resolved * when this finishes. From de0b7ba1812cabf70fc2be7421061b87c383c409 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Sun, 26 Apr 2015 01:42:25 -0500 Subject: [PATCH 09/15] ItemGetter shouldn't break with an empty DB --- chrome/content/zotero/xpcom/translation/translate_item.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/translation/translate_item.js b/chrome/content/zotero/xpcom/translation/translate_item.js index 68d0c18bb1..5eed86e2e4 100644 --- a/chrome/content/zotero/xpcom/translation/translate_item.js +++ b/chrome/content/zotero/xpcom/translation/translate_item.js @@ -745,7 +745,7 @@ Zotero.Translate.ItemSaver.prototype = { } Zotero.Translate.ItemGetter = function() { - this._itemsLeft = null; + this._itemsLeft = []; this._collectionsLeft = null; this._exportFileDirectory = null; this.legacy = false; From 1d1eb74e57f98e664fb6518e9ef5ba2a926c1d77 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Sun, 26 Apr 2015 01:44:29 -0500 Subject: [PATCH 10/15] Add tests for Zotero.Translate.ItemGetter.prototype.nextItem --- test/tests/data/empty.pdf | Bin 0 -> 79799 bytes test/tests/translateTest.js | 577 ++++++++++++++++++++++++++++++++++++ 2 files changed, 577 insertions(+) create mode 100644 test/tests/data/empty.pdf create mode 100644 test/tests/translateTest.js diff --git a/test/tests/data/empty.pdf b/test/tests/data/empty.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f4eedfef8edd599d54203f5e58fd8863a02c8f0c GIT binary patch literal 79799 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 literal 0 HcmV?d00001 diff --git a/test/tests/translateTest.js b/test/tests/translateTest.js new file mode 100644 index 0000000000..89ae84876a --- /dev/null +++ b/test/tests/translateTest.js @@ -0,0 +1,577 @@ +Components.utils.import("resource://gre/modules/osfile.jsm"); + +describe("Zotero.Translate.ItemGetter", function() { + describe("nextItem", function() { + it('should return false for an empty database', function() { + let getter = new Zotero.Translate.ItemGetter(); + assert.isFalse(getter.nextItem()); + }); + it('should return items in order they are supplied', function() { + let getter = new Zotero.Translate.ItemGetter(); + + Zotero.DB.beginTransaction(); + + let itemIDs = [ + (new Zotero.Item('journalArticle')).save(), + (new Zotero.Item('book')).save() + ]; + + let items = [ Zotero.Items.get(itemIDs[0]), Zotero.Items.get(itemIDs[1]) ]; + let itemURIs = items.map(i => Zotero.URI.getItemURI(i)); + + Zotero.DB.commitTransaction(); + + getter._itemsLeft = items; + + assert.equal(getter.nextItem().uri, itemURIs[0], 'first item comes out first'); + assert.equal(getter.nextItem().uri, itemURIs[1], 'second item comes out second'); + assert.isFalse(getter.nextItem(), 'end of item queue'); + }); + it('should return items with tags in expected format', function() { + let getter = new Zotero.Translate.ItemGetter(); + + Zotero.DB.beginTransaction(); + + let itemWithAutomaticTag = Zotero.Items.get((new Zotero.Item('journalArticle')).save()); + itemWithAutomaticTag.addTag('automatic tag', 0); + + let itemWithManualTag = Zotero.Items.get((new Zotero.Item('journalArticle')).save()); + itemWithManualTag.addTag('manual tag', 1); + + let itemWithMultipleTags = Zotero.Items.get((new Zotero.Item('journalArticle')).save()); + itemWithMultipleTags.addTag('tag1', 0); + itemWithMultipleTags.addTag('tag2', 1); + + Zotero.DB.commitTransaction(); + + let legacyMode = [false, true]; + for (let i=0; i Date: Tue, 28 Apr 2015 00:36:56 -0500 Subject: [PATCH 11/15] Fix display of pending tests --- test/content/runtests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/content/runtests.js b/test/content/runtests.js index b6c91b0429..5b1cb57c99 100644 --- a/test/content/runtests.js +++ b/test/content/runtests.js @@ -105,7 +105,7 @@ function Reporter(runner) { }); runner.on('pending', function(test){ - dump(indent()+"pending -"+test.title); + dump("\r"+indent()+"pending -"+test.title+"\n"); }); runner.on('pass', function(test){ From c84a16984b80b0a7d44f1ad835f47eab86f1f36d Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Tue, 12 May 2015 18:36:27 -0500 Subject: [PATCH 12/15] Map note excerpt to title in itemToCSLJSON This way notes have some sort of user-friendly way of being traced from Word documents to Zotero items in the library --- chrome/content/zotero/xpcom/utilities.js | 5 +++++ test/tests/utilities.js | 1 + 2 files changed, 6 insertions(+) diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js index 8ee2cec4a7..3204930261 100644 --- a/chrome/content/zotero/xpcom/utilities.js +++ b/chrome/content/zotero/xpcom/utilities.js @@ -1597,6 +1597,11 @@ Zotero.Utilities = { } } + // Special mapping for note title + if (zoteroItem.itemType == 'note' && zoteroItem.note) { + cslItem.title = Zotero.Notes.noteToTitle(zoteroItem.note); + } + // extract PMID var extra = zoteroItem.extra; if(typeof extra === "string") { diff --git a/test/tests/utilities.js b/test/tests/utilities.js index 55fcb4e914..4e2d7179cd 100644 --- a/test/tests/utilities.js +++ b/test/tests/utilities.js @@ -207,6 +207,7 @@ describe("Zotero.Utilities", function() { let cslJSONNote = Zotero.Utilities.itemToCSLJSON(note); assert.equal(cslJSONNote.type, 'article', 'note is exported as "article"'); + assert.equal(cslJSONNote.title, note.getNoteTitle(), 'note title is set to Zotero pseudo-title'); }); it("should convert standalone attachments to expected format", function() { let file = getTestDataDirectory(); From ec786bf15c3ef0831b381d49a3022555dd2d8b19 Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Wed, 13 May 2015 21:17:30 -0500 Subject: [PATCH 13/15] For now, use Zotero item DB ids when passing items to citeproc citeproc-js relies on this in several locations. Seems that Zotero passes these IDs to citeproc from the item picker. We also need to consider existing embedded items in Word/LO documents, but they do have embedded URIs, so it shouldn't be a problem. CC @fbennett --- chrome/content/zotero/xpcom/cite.js | 3 +++ test/content/support.js | 22 +++++----------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/chrome/content/zotero/xpcom/cite.js b/chrome/content/zotero/xpcom/cite.js index 6d3fb66633..fd8adbcd28 100644 --- a/chrome/content/zotero/xpcom/cite.js +++ b/chrome/content/zotero/xpcom/cite.js @@ -524,6 +524,9 @@ Zotero.Cite.System.prototype = { var cslItem = Zotero.Utilities.itemToCSLJSON(zoteroItem); + // TEMP: citeproc-js currently expects the id property to be the item DB id + cslItem.id = zoteroItem.id; + if (!Zotero.Prefs.get("export.citePaperJournalArticleURL")) { var itemType = Zotero.ItemTypes.getName(zoteroItem.itemTypeID); // don't return URL or accessed information for journal articles if a diff --git a/test/content/support.js b/test/content/support.js index ff44fd84b1..2f67b97f64 100644 --- a/test/content/support.js +++ b/test/content/support.js @@ -419,25 +419,13 @@ function generateCiteProcJSExportData(currentData) { let zItem = Zotero.Items.get(items[itemName].id); cslExportData[itemName] = Zotero.Cite.System.prototype.retrieveItem(zItem); - // Don't replace id as long as it follows expected format if (!currentData || !currentData[itemName]) continue; - // For simplicity, be more lenient than for item key - let idRe = /^http:\/\/zotero\.org\/users\/local\/\w{8}\/items\/\w{8}$/; - for (let field in cslExportData[itemName]) { - let oldVal = currentData[itemName][field]; - if (!oldVal) continue; - - let val = cslExportData[itemName][field]; - switch (field) { - case 'id': - if (!idRe.test(oldVal) || !idRe.test(val)) continue; - break; - default: - continue; - } - - cslExportData[itemName][field] = oldVal; + // Don't replace id as long as it follows expected format + if (Number.isInteger(currentData[itemName].id) + && Number.isInteger(cslExportData[itemName].id) + ) { + cslExportData[itemName].id = currentData[itemName].id; } } From daa92cb6ed6fb8243184785ce9f878c7b4d285bb Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Mon, 23 Mar 2015 23:53:29 -0500 Subject: [PATCH 14/15] Add auto-generated sample data allTypesAndFields: Direct serialization of all valid fields for all valid item types citeProcJSExport: All item types and fields as sent to citeproc-js itemJSON: Zotero.Item::toJSON serialization of all item types and fields translatorExport: items as presented to export translators after 4.0.27 translatorExportLegacy: items as presented to export translators before 4.0.27 (does not cover relations, collections, tags, attachments) --- test/tests/data/allTypesAndFields.js | 1366 ++++++++++++ test/tests/data/citeProcJSExport.js | 1668 ++++++++++++++ test/tests/data/itemJSON.js | 1604 +++++++++++++ test/tests/data/translatorExport.js | 1672 ++++++++++++++ test/tests/data/translatorExportLegacy.js | 2475 +++++++++++++++++++++ 5 files changed, 8785 insertions(+) create mode 100644 test/tests/data/allTypesAndFields.js create mode 100644 test/tests/data/citeProcJSExport.js create mode 100644 test/tests/data/itemJSON.js create mode 100644 test/tests/data/translatorExport.js create mode 100644 test/tests/data/translatorExportLegacy.js diff --git a/test/tests/data/allTypesAndFields.js b/test/tests/data/allTypesAndFields.js new file mode 100644 index 0000000000..c7db02eec1 --- /dev/null +++ b/test/tests/data/allTypesAndFields.js @@ -0,0 +1,1366 @@ +{ + "artwork": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "artworkSize": "Artwork size", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "artist", + "firstName": "artistFirst", + "lastName": "artistLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "artwork", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "audioRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "performer", + "firstName": "performerFirst", + "lastName": "performerLast" + }, + { + "creatorType": "composer", + "firstName": "composerFirst", + "lastName": "composerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "wordsBy", + "firstName": "wordsByFirst", + "lastName": "wordsByLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "audioRecording", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "numberOfVolumes": 7, + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "bill": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "code": "Code", + "creators": [ + { + "creatorType": "sponsor", + "firstName": "sponsorFirst", + "lastName": "sponsorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "cosponsor", + "firstName": "cosponsorFirst", + "lastName": "cosponsorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "itemType": "bill", + "language": "en-US", + "legislativeBody": "Legislative body", + "number": 3, + "pages": "1-10", + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "blogPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "commenter", + "firstName": "commenterFirst", + "lastName": "commenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "blogPost", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "book": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "book", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": 4, + "numberOfVolumes": 7, + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": 9, + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "bookSection": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "bookAuthor", + "firstName": "bookAuthorFirst", + "lastName": "bookAuthorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "bookSection", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": 7, + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": 9, + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "case": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "court": "Court", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "counsel", + "firstName": "counselFirst", + "lastName": "counselLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "itemType": "case", + "language": "en-US", + "number": 3, + "pages": "1-10", + "reporter": "Reporter", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "computerProgram": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "programmer", + "firstName": "programmerFirst", + "lastName": "programmerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "computerProgram", + "libraryCatalog": "Library catalog", + "place": "Place", + "programmingLanguage": "Programming language", + "publisher": "Publisher", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "system": "System", + "title": "Title", + "url": "http://www.example.com", + "version": "Version" + }, + "conferencePaper": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "conferenceName": "Conference name", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "conferencePaper", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "dictionaryEntry": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "dictionaryEntry", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": 7, + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": 9, + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "document": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "document", + "language": "en-US", + "libraryCatalog": "Library catalog", + "publisher": "Publisher", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "email": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "email", + "language": "en-US", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "encyclopediaArticle": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "encyclopediaArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": 7, + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": 9, + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "film": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "film", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "forumPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "forumPost", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "hearing": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "committee": "Committee", + "creators": [ + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "itemType": "hearing", + "language": "en-US", + "legislativeBody": "Legislative body", + "number": 3, + "numberOfVolumes": 7, + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "instantMessage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "instantMessage", + "language": "en-US", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "interview": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "interviewee", + "firstName": "intervieweeFirst", + "lastName": "intervieweeLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "interviewer", + "firstName": "interviewerFirst", + "lastName": "interviewerLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "interview", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "issue": 5, + "itemType": "journalArticle", + "journalAbbreviation": "Journal abbreviation", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "rights": "Rights", + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "letter": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "letter", + "language": "en-US", + "libraryCatalog": "Library catalog", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "magazineArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "issue": 5, + "itemType": "magazineArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "manuscript": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "manuscript", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": 4, + "place": "Place", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "map": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "cartographer", + "firstName": "cartographerFirst", + "lastName": "cartographerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "map", + "language": "en-US", + "libraryCatalog": "Library catalog", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "scale": "Scale", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "newspaperArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "edition": 8, + "extra": "Extra", + "itemType": "newspaperArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "rights": "Rights", + "section": "Section", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "patent": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "applicationNumber": "Application number", + "assignee": "Assignee", + "country": "Country", + "creators": [ + { + "creatorType": "inventor", + "firstName": "inventorFirst", + "lastName": "inventorLast" + }, + { + "creatorType": "attorneyAgent", + "firstName": "attorneyAgentFirst", + "lastName": "attorneyAgentLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "filingDate": "2000-01-02", + "issuingAuthority": "Issuing authority", + "itemType": "patent", + "language": "en-US", + "legalStatus": "Legal status", + "number": 3, + "pages": "1-10", + "place": "Place", + "priorityNumbers": "Priority numbers", + "references": "References", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "podcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "podcaster", + "firstName": "podcasterFirst", + "lastName": "podcasterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + } + ], + "extra": "Extra", + "itemType": "podcast", + "language": "en-US", + "medium": "Medium", + "number": 3, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "presentation": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "presenter", + "firstName": "presenterFirst", + "lastName": "presenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "presentation", + "language": "en-US", + "meetingName": "Meeting name", + "place": "Place", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "radioBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "radioBroadcast", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "number": 3, + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "report": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "report", + "language": "en-US", + "libraryCatalog": "Library catalog", + "number": 3, + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "statute": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "code": "Code", + "codeNumber": "Code number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "itemType": "statute", + "language": "en-US", + "number": 3, + "pages": "1-10", + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "thesis": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "thesis", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": 4, + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "tvBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "tvBroadcast", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "number": 3, + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "videoRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "videoRecording", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "numberOfVolumes": 7, + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + }, + "webpage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "itemType": "webpage", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + } +} \ No newline at end of file diff --git a/test/tests/data/citeProcJSExport.js b/test/tests/data/citeProcJSExport.js new file mode 100644 index 0000000000..eb24bc7f5d --- /dev/null +++ b/test/tests/data/citeProcJSExport.js @@ -0,0 +1,1668 @@ +{ + "artwork": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "artistLast", + "given": "artistFirst" + } + ], + "call-number": "Call number", + "dimensions": "Artwork size", + "id": 37, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "graphic" + }, + "audioRecording": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "performerLast", + "given": "performerFirst" + } + ], + "call-number": "Call number", + "collection-title": "Series title", + "composer": [ + { + "family": "composerLast", + "given": "composerFirst" + } + ], + "dimensions": "1:22:33", + "event-place": "Place", + "id": 38, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "number-of-volumes": "7", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "song", + "volume": "6" + }, + "bill": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "sponsorLast", + "given": "sponsorFirst" + } + ], + "authority": "Legislative body", + "chapter-number": "Session", + "container-title": "Code", + "id": 39, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "page": "1-10", + "references": "History", + "section": "Section", + "shortTitle": "Short title", + "title": "Title", + "type": "bill", + "volume": "6" + }, + "blogPost": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "container-title": "Publication title", + "genre": "Type", + "id": 40, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "shortTitle": "Short title", + "title": "Title", + "type": "post-weblog" + }, + "book": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-number": "9", + "collection-title": "Series", + "edition": "8", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "event-place": "Place", + "id": 41, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-pages": "4", + "number-of-volumes": "7", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "book", + "volume": "6" + }, + "bookSection": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-number": "9", + "collection-title": "Series", + "container-author": [ + { + "family": "bookAuthorLast", + "given": "bookAuthorFirst" + } + ], + "container-title": "Publication title", + "edition": "8", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "event-place": "Place", + "id": 42, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-volumes": "7", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "chapter", + "volume": "6" + }, + "case": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "authority": "Court", + "container-title": "Reporter", + "id": 43, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "page": "1-10", + "references": "History", + "shortTitle": "Short title", + "title": "Title", + "type": "legal_case", + "volume": "6" + }, + "computerProgram": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "programmerLast", + "given": "programmerFirst" + } + ], + "call-number": "Call number", + "collection-title": "Series title", + "event-place": "Place", + "genre": "Programming language", + "id": 44, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "medium": "System", + "note": "Extra", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "book", + "version": "Version" + }, + "conferencePaper": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-title": "Series", + "container-title": "Publication title", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "event": "Conference name", + "event-place": "Place", + "id": 45, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "paper-conference", + "volume": "6" + }, + "dictionaryEntry": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-number": "9", + "collection-title": "Series", + "container-title": "Publication title", + "edition": "8", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "event-place": "Place", + "id": 46, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-volumes": "7", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "entry-dictionary", + "volume": "6" + }, + "document": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "id": 47, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "publisher": "Publisher", + "reviewed-author": [ + { + "family": "reviewedAuthorLast", + "given": "reviewedAuthorFirst" + } + ], + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "article" + }, + "email": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "id": 48, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "recipient": [ + { + "family": "recipientLast", + "given": "recipientFirst" + } + ], + "shortTitle": "Short title", + "title": "Title", + "type": "personal_communication" + }, + "encyclopediaArticle": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-number": "9", + "collection-title": "Series", + "container-title": "Publication title", + "edition": "8", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "event-place": "Place", + "id": 49, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-volumes": "7", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "entry-encyclopedia", + "volume": "6" + }, + "film": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "directorLast", + "given": "directorFirst" + } + ], + "call-number": "Call number", + "dimensions": "1:22:33", + "genre": "Type", + "id": 50, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "publisher": "Publisher", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "motion_picture" + }, + "forumPost": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "container-title": "Publication title", + "genre": "Type", + "id": 51, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "shortTitle": "Short title", + "title": "Title", + "type": "post" + }, + "hearing": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "contributorLast", + "given": "contributorFirst" + } + ], + "authority": "Legislative body", + "chapter-number": "Session", + "event-place": "Place", + "id": 52, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "number-of-volumes": "7", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "references": "History", + "section": "Committee", + "shortTitle": "Short title", + "title": "Title", + "type": "bill" + }, + "instantMessage": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "id": 53, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "recipient": [ + { + "family": "recipientLast", + "given": "recipientFirst" + } + ], + "shortTitle": "Short title", + "title": "Title", + "type": "personal_communication" + }, + "interview": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "intervieweeLast", + "given": "intervieweeFirst" + } + ], + "call-number": "Call number", + "id": 54, + "interviewer": [ + { + "family": "interviewerLast", + "given": "interviewerFirst" + } + ], + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "interview" + }, + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-title": "Series title", + "container-title": "Publication title", + "editor": [ + { + "family": "editorLast", + "given": "editorFirst" + } + ], + "id": 55, + "issue": "5", + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "journalAbbreviation": "Journal abbreviation", + "language": "en-US", + "note": "Extra", + "page": "1-10", + "reviewed-author": [ + { + "family": "reviewedAuthorLast", + "given": "reviewedAuthorFirst" + } + ], + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "article-journal", + "volume": "6" + }, + "letter": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "genre": "Type", + "id": 56, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "recipient": [ + { + "family": "recipientLast", + "given": "recipientFirst" + } + ], + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "personal_communication" + }, + "magazineArticle": { + "ISSN": "1234-5679", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "container-title": "Publication title", + "id": 57, + "issue": "5", + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "page": "1-10", + "reviewed-author": [ + { + "family": "reviewedAuthorLast", + "given": "reviewedAuthorFirst" + } + ], + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "article-magazine", + "volume": "6" + }, + "manuscript": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "event-place": "Place", + "genre": "Type", + "id": 58, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-pages": "4", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "manuscript" + }, + "map": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "cartographerLast", + "given": "cartographerFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-title": "Series title", + "edition": "8", + "event-place": "Place", + "genre": "Type", + "id": 59, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "publisher": "Publisher", + "publisher-place": "Place", + "scale": "Scale", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "map" + }, + "newspaperArticle": { + "ISSN": "1234-5679", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "container-title": "Publication title", + "edition": "8", + "event-place": "Place", + "id": 60, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "page": "1-10", + "publisher-place": "Place", + "reviewed-author": [ + { + "family": "reviewedAuthorLast", + "given": "reviewedAuthorFirst" + } + ], + "section": "Section", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "article-newspaper" + }, + "patent": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "inventorLast", + "given": "inventorFirst" + } + ], + "authority": "Issuing authority", + "call-number": "Application number", + "event-place": "Place", + "id": 61, + "issue": "Priority numbers", + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "page": "1-10", + "publisher-place": "Place", + "references": "References", + "shortTitle": "Short title", + "status": "Legal status", + "submitted": { + "date-parts": [ + [ + "2000", + 1, + 2 + ] + ], + "season": "2000-01-02" + }, + "title": "Title", + "type": "patent" + }, + "podcast": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "podcasterLast", + "given": "podcasterFirst" + } + ], + "collection-title": "Series title", + "dimensions": "1:22:33", + "id": 62, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "number": "3", + "shortTitle": "Short title", + "title": "Title", + "type": "song" + }, + "presentation": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "presenterLast", + "given": "presenterFirst" + } + ], + "event": "Meeting name", + "event-place": "Place", + "genre": "Type", + "id": 63, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "publisher-place": "Place", + "shortTitle": "Short title", + "title": "Title", + "type": "speech" + }, + "radioBroadcast": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "directorLast", + "given": "directorFirst" + } + ], + "call-number": "Call number", + "container-title": "Publication title", + "dimensions": "1:22:33", + "event-place": "Place", + "id": 64, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "number": "3", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "broadcast" + }, + "report": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "collection-editor": [ + { + "family": "seriesEditorLast", + "given": "seriesEditorFirst" + } + ], + "collection-title": "Series title", + "event-place": "Place", + "genre": "Type", + "id": 65, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "page": "1-10", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "report" + }, + "statute": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "chapter-number": "Session", + "container-title": "Code", + "id": 66, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number": "3", + "page": "1-10", + "references": "History", + "section": "Section", + "shortTitle": "Short title", + "title": "Title", + "type": "legislation", + "volume": "Code number" + }, + "thesis": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "call-number": "Call number", + "event-place": "Place", + "genre": "Type", + "id": 67, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "number-of-pages": "4", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "thesis" + }, + "tvBroadcast": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "directorLast", + "given": "directorFirst" + } + ], + "call-number": "Call number", + "container-title": "Publication title", + "dimensions": "1:22:33", + "event-place": "Place", + "id": 68, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "number": "3", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "broadcast" + }, + "videoRecording": { + "ISBN": "978-1-234-56789-7", + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "archive": "Archive", + "archive_location": "Archive location", + "author": [ + { + "family": "directorLast", + "given": "directorFirst" + } + ], + "call-number": "Call number", + "collection-title": "Series title", + "dimensions": "1:22:33", + "event-place": "Place", + "id": 69, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "medium": "Medium", + "note": "Extra", + "number-of-volumes": "7", + "publisher": "Publisher", + "publisher-place": "Place", + "shortTitle": "Short title", + "source": "Library catalog", + "title": "Title", + "type": "motion_picture", + "volume": "6" + }, + "webpage": { + "URL": "http://www.example.com", + "abstract": "Abstract note", + "accessed": { + "date-parts": [ + [ + "1997", + 6, + 13 + ] + ] + }, + "author": [ + { + "family": "authorLast", + "given": "authorFirst" + } + ], + "container-title": "Publication title", + "genre": "Type", + "id": 70, + "issued": { + "date-parts": [ + [ + "1999", + 12, + 31 + ] + ] + }, + "language": "en-US", + "note": "Extra", + "shortTitle": "Short title", + "title": "Title", + "translator": [ + { + "family": "translatorLast", + "given": "translatorFirst" + } + ], + "type": "webpage" + } +} \ No newline at end of file diff --git a/test/tests/data/itemJSON.js b/test/tests/data/itemJSON.js new file mode 100644 index 0000000000..b2cedf2a67 --- /dev/null +++ b/test/tests/data/itemJSON.js @@ -0,0 +1,1604 @@ +{ + "artwork": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "artworkMedium": "Medium", + "artworkSize": "Artwork size", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "artist", + "firstName": "artistFirst", + "lastName": "artistLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "artwork", + "key": "C2U6JHJ5", + "language": "en-US", + "libraryCatalog": "Library catalog", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "audioRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "performer", + "firstName": "performerFirst", + "lastName": "performerLast" + }, + { + "creatorType": "composer", + "firstName": "composerFirst", + "lastName": "composerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "wordsBy", + "firstName": "wordsByFirst", + "lastName": "wordsByLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "audioRecording", + "key": "PN2JHBRN", + "label": "Publisher", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "place": "Place", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "bill": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "billNumber": "3", + "code": "Code", + "codePages": "1-10", + "codeVolume": "6", + "collections": [], + "creators": [ + { + "creatorType": "sponsor", + "firstName": "sponsorFirst", + "lastName": "sponsorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "cosponsor", + "firstName": "cosponsorFirst", + "lastName": "cosponsorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "history": "History", + "itemType": "bill", + "key": "6V75C9MH", + "language": "en-US", + "legislativeBody": "Legislative body", + "relations": {}, + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "blogPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "blogTitle": "Publication title", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "commenter", + "firstName": "commenterFirst", + "lastName": "commenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "blogPost", + "key": "BN2VE2RW", + "language": "en-US", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "websiteType": "Type" + }, + "book": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "edition": "8", + "extra": "Extra", + "itemType": "book", + "key": "A4HMTK44", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": "4", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "bookSection": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "bookTitle": "Publication title", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "bookAuthor", + "firstName": "bookAuthorFirst", + "lastName": "bookAuthorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "edition": "8", + "extra": "Extra", + "itemType": "bookSection", + "key": "DSEABJVM", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "case": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "caseName": "Title", + "collections": [], + "court": "Court", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "counsel", + "firstName": "counselFirst", + "lastName": "counselLast" + } + ], + "dateAdded": "2015-04-12T09:00:22Z", + "dateDecided": "1999-12-31", + "dateModified": "2015-04-12T09:00:22Z", + "docketNumber": "3", + "extra": "Extra", + "firstPage": "1-10", + "history": "History", + "itemType": "case", + "key": "9A2VVWGX", + "language": "en-US", + "relations": {}, + "reporter": "Reporter", + "reporterVolume": "6", + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "url": "http://www.example.com", + "version": 1 + }, + "computerProgram": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "company": "Publisher", + "creators": [ + { + "creatorType": "programmer", + "firstName": "programmerFirst", + "lastName": "programmerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "computerProgram", + "key": "8GM9MDIU", + "libraryCatalog": "Library catalog", + "place": "Place", + "programmingLanguage": "Programming language", + "relations": {}, + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "system": "System", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "versionNumber": "Version" + }, + "conferencePaper": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "conferenceName": "Conference name", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "conferencePaper", + "key": "CEPUN4W5", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "proceedingsTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "dictionaryEntry": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "dictionaryTitle": "Publication title", + "edition": "8", + "extra": "Extra", + "itemType": "dictionaryEntry", + "key": "E2P29JGR", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "document": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "document", + "key": "NGFWI347", + "language": "en-US", + "libraryCatalog": "Library catalog", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "email": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "email", + "key": "BMVVSV67", + "language": "en-US", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "subject": "Title", + "tags": [], + "url": "http://www.example.com", + "version": 1 + }, + "encyclopediaArticle": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "edition": "8", + "encyclopediaTitle": "Publication title", + "extra": "Extra", + "itemType": "encyclopediaArticle", + "key": "J35AAWKK", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "film": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "distributor": "Publisher", + "extra": "Extra", + "genre": "Type", + "itemType": "film", + "key": "AETM84WQ", + "language": "en-US", + "libraryCatalog": "Library catalog", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium" + }, + "forumPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "forumTitle": "Publication title", + "itemType": "forumPost", + "key": "53KM42VR", + "language": "en-US", + "postType": "Type", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "hearing": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "committee": "Committee", + "creators": [ + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "documentNumber": "3", + "extra": "Extra", + "history": "History", + "itemType": "hearing", + "key": "G2NRUQUQ", + "language": "en-US", + "legislativeBody": "Legislative body", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "instantMessage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "instantMessage", + "key": "373CN2R3", + "language": "en-US", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "interview": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "interviewee", + "firstName": "intervieweeFirst", + "lastName": "intervieweeLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "interviewer", + "firstName": "interviewerFirst", + "lastName": "interviewerLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "interviewMedium": "Medium", + "itemType": "interview", + "key": "Q99SF7NK", + "language": "en-US", + "libraryCatalog": "Library catalog", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "issue": "5", + "itemType": "journalArticle", + "journalAbbreviation": "Journal abbreviation", + "key": "UXSSZ972", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "letter": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "letter", + "key": "XC832NQ9", + "language": "en-US", + "letterType": "Type", + "libraryCatalog": "Library catalog", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "magazineArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "issue": "5", + "itemType": "magazineArticle", + "key": "7GR89G56", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "manuscript": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "manuscript", + "key": "RWBCKHFZ", + "language": "en-US", + "libraryCatalog": "Library catalog", + "manuscriptType": "Type", + "numPages": "4", + "place": "Place", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "map": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "cartographer", + "firstName": "cartographerFirst", + "lastName": "cartographerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "edition": "8", + "extra": "Extra", + "itemType": "map", + "key": "I63JAE4X", + "language": "en-US", + "libraryCatalog": "Library catalog", + "mapType": "Type", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "scale": "Scale", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "newspaperArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "edition": "8", + "extra": "Extra", + "itemType": "newspaperArticle", + "key": "DEDZ6I2G", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "section": "Section", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "patent": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "applicationNumber": "Application number", + "assignee": "Assignee", + "collections": [], + "country": "Country", + "creators": [ + { + "creatorType": "inventor", + "firstName": "inventorFirst", + "lastName": "inventorLast" + }, + { + "creatorType": "attorneyAgent", + "firstName": "attorneyAgentFirst", + "lastName": "attorneyAgentLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "filingDate": "2000-01-02 2000-01-02", + "issueDate": "1999-12-31", + "issuingAuthority": "Issuing authority", + "itemType": "patent", + "key": "MTZVXTRG", + "language": "en-US", + "legalStatus": "Legal status", + "pages": "1-10", + "patentNumber": "3", + "place": "Place", + "priorityNumbers": "Priority numbers", + "references": "References", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "podcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "audioFileType": "Medium", + "collections": [], + "creators": [ + { + "creatorType": "podcaster", + "firstName": "podcasterFirst", + "lastName": "podcasterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + } + ], + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "podcast", + "key": "6N3TDNFS", + "language": "en-US", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "presentation": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "creators": [ + { + "creatorType": "presenter", + "firstName": "presenterFirst", + "lastName": "presenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "presentation", + "key": "2JTV9A3T", + "language": "en-US", + "meetingName": "Meeting name", + "place": "Place", + "presentationType": "Type", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "radioBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "radioBroadcast", + "key": "KH7HSUMX", + "language": "en-US", + "libraryCatalog": "Library catalog", + "network": "Publisher", + "place": "Place", + "programTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "report": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "institution": "Publisher", + "itemType": "report", + "key": "V3MJGNVJ", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "relations": {}, + "reportNumber": "3", + "reportType": "Type", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1 + }, + "statute": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "code": "Code", + "codeNumber": "Code number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "dateAdded": "2015-04-12T09:00:22Z", + "dateEnacted": "1999-12-31", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "history": "History", + "itemType": "statute", + "key": "89B8MRBX", + "language": "en-US", + "nameOfAct": "Title", + "pages": "1-10", + "publicLawNumber": "3", + "relations": {}, + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "url": "http://www.example.com", + "version": 1 + }, + "thesis": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "thesis", + "key": "NCHRWGKP", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": "4", + "place": "Place", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "thesisType": "Type", + "title": "Title", + "university": "Publisher", + "url": "http://www.example.com", + "version": 1 + }, + "tvBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "tvBroadcast", + "key": "RJE8KPDJ", + "language": "en-US", + "libraryCatalog": "Library catalog", + "network": "Publisher", + "place": "Place", + "programTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium" + }, + "videoRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "videoRecording", + "key": "QP98PAM5", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "place": "Place", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "studio": "Publisher", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium", + "volume": "6" + }, + "webpage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T09:00:22Z", + "dateModified": "2015-04-12T09:00:22Z", + "extra": "Extra", + "itemType": "webpage", + "key": "MDFARNFI", + "language": "en-US", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "url": "http://www.example.com", + "version": 1, + "websiteTitle": "Publication title", + "websiteType": "Type" + } +} \ No newline at end of file diff --git a/test/tests/data/translatorExport.js b/test/tests/data/translatorExport.js new file mode 100644 index 0000000000..9e1bdc3eca --- /dev/null +++ b/test/tests/data/translatorExport.js @@ -0,0 +1,1672 @@ +{ + "artwork": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "artworkMedium": "Medium", + "artworkSize": "Artwork size", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "artist", + "firstName": "artistFirst", + "lastName": "artistLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "artwork", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/VXDHRHNP", + "url": "http://www.example.com", + "version": 1 + }, + "audioRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "performer", + "firstName": "performerFirst", + "lastName": "performerLast" + }, + { + "creatorType": "composer", + "firstName": "composerFirst", + "lastName": "composerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "wordsBy", + "firstName": "wordsByFirst", + "lastName": "wordsByLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "audioRecording", + "label": "Publisher", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numberOfVolumes": "7", + "place": "Place", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/H9KMDMKK", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "bill": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "billNumber": "3", + "code": "Code", + "codePages": "1-10", + "codeVolume": "6", + "collections": [], + "creators": [ + { + "creatorType": "sponsor", + "firstName": "sponsorFirst", + "lastName": "sponsorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "cosponsor", + "firstName": "cosponsorFirst", + "lastName": "cosponsorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "history": "History", + "itemType": "bill", + "language": "en-US", + "legislativeBody": "Legislative body", + "notes": [], + "relations": {}, + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/7UF9TWRI", + "url": "http://www.example.com", + "version": 1 + }, + "blogPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "blogTitle": "Publication title", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "commenter", + "firstName": "commenterFirst", + "lastName": "commenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "blogPost", + "language": "en-US", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/ABZPI5RA", + "url": "http://www.example.com", + "version": 1, + "websiteType": "Type" + }, + "book": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "edition": "8", + "extra": "Extra", + "itemType": "book", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numPages": "4", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/GW3SAWW6", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "bookSection": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "bookTitle": "Publication title", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "bookAuthor", + "firstName": "bookAuthorFirst", + "lastName": "bookAuthorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "edition": "8", + "extra": "Extra", + "itemType": "bookSection", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/RIPPV55H", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "case": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "caseName": "Title", + "collections": [], + "court": "Court", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "counsel", + "firstName": "counselFirst", + "lastName": "counselLast" + } + ], + "dateAdded": "2015-04-12T05:45:15Z", + "dateDecided": "1999-12-31", + "dateModified": "2015-04-12T05:45:15Z", + "docketNumber": "3", + "extra": "Extra", + "firstPage": "1-10", + "history": "History", + "itemType": "case", + "language": "en-US", + "notes": [], + "relations": {}, + "reporter": "Reporter", + "reporterVolume": "6", + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "uri": "http://zotero.org/users/local/riiZoBgm/items/QHZWSBCZ", + "url": "http://www.example.com", + "version": 1 + }, + "computerProgram": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "company": "Publisher", + "creators": [ + { + "creatorType": "programmer", + "firstName": "programmerFirst", + "lastName": "programmerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "computerProgram", + "libraryCatalog": "Library catalog", + "notes": [], + "place": "Place", + "programmingLanguage": "Programming language", + "relations": {}, + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "system": "System", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/KKPZKHNF", + "url": "http://www.example.com", + "version": 1, + "versionNumber": "Version" + }, + "conferencePaper": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "conferenceName": "Conference name", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "conferencePaper", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "pages": "1-10", + "place": "Place", + "proceedingsTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/6N2HGGGC", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "dictionaryEntry": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "dictionaryTitle": "Publication title", + "edition": "8", + "extra": "Extra", + "itemType": "dictionaryEntry", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/JPNX3J45", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "document": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "document", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/JC3ZJTHP", + "url": "http://www.example.com", + "version": 1 + }, + "email": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "email", + "language": "en-US", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "subject": "Title", + "tags": [], + "uri": "http://zotero.org/users/local/riiZoBgm/items/W2WFJDDP", + "url": "http://www.example.com", + "version": 1 + }, + "encyclopediaArticle": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "edition": "8", + "encyclopediaTitle": "Publication title", + "extra": "Extra", + "itemType": "encyclopediaArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/IQ4VQRZK", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "film": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "distributor": "Publisher", + "extra": "Extra", + "genre": "Type", + "itemType": "film", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/ASGNK9V4", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium" + }, + "forumPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "forumTitle": "Publication title", + "itemType": "forumPost", + "language": "en-US", + "notes": [], + "postType": "Type", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/VUMWB9BZ", + "url": "http://www.example.com", + "version": 1 + }, + "hearing": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "committee": "Committee", + "creators": [ + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "documentNumber": "3", + "extra": "Extra", + "history": "History", + "itemType": "hearing", + "language": "en-US", + "legislativeBody": "Legislative body", + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/3XQMN9Q5", + "url": "http://www.example.com", + "version": 1 + }, + "instantMessage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "instantMessage", + "language": "en-US", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/XEATTJU2", + "url": "http://www.example.com", + "version": 1 + }, + "interview": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "interviewee", + "firstName": "intervieweeFirst", + "lastName": "intervieweeLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "interviewer", + "firstName": "interviewerFirst", + "lastName": "interviewerLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "interviewMedium": "Medium", + "itemType": "interview", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/7WKVQVAR", + "url": "http://www.example.com", + "version": 1 + }, + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "issue": "5", + "itemType": "journalArticle", + "journalAbbreviation": "Journal abbreviation", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/SWW5XKNW", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "letter": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "letter", + "language": "en-US", + "letterType": "Type", + "libraryCatalog": "Library catalog", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/X3A224PG", + "url": "http://www.example.com", + "version": 1 + }, + "magazineArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "issue": "5", + "itemType": "magazineArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/CP6IHEZW", + "url": "http://www.example.com", + "version": 1, + "volume": "6" + }, + "manuscript": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "manuscript", + "language": "en-US", + "libraryCatalog": "Library catalog", + "manuscriptType": "Type", + "notes": [], + "numPages": "4", + "place": "Place", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/V7VMFMWK", + "url": "http://www.example.com", + "version": 1 + }, + "map": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "cartographer", + "firstName": "cartographerFirst", + "lastName": "cartographerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "edition": "8", + "extra": "Extra", + "itemType": "map", + "language": "en-US", + "libraryCatalog": "Library catalog", + "mapType": "Type", + "notes": [], + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "scale": "Scale", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/EE37TTFA", + "url": "http://www.example.com", + "version": 1 + }, + "newspaperArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "edition": "8", + "extra": "Extra", + "itemType": "newspaperArticle", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "section": "Section", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/AF7D3DBU", + "url": "http://www.example.com", + "version": 1 + }, + "patent": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "applicationNumber": "Application number", + "assignee": "Assignee", + "attachments": [], + "collections": [], + "country": "Country", + "creators": [ + { + "creatorType": "inventor", + "firstName": "inventorFirst", + "lastName": "inventorLast" + }, + { + "creatorType": "attorneyAgent", + "firstName": "attorneyAgentFirst", + "lastName": "attorneyAgentLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "filingDate": "2000-01-02 2000-01-02", + "issueDate": "1999-12-31", + "issuingAuthority": "Issuing authority", + "itemType": "patent", + "language": "en-US", + "legalStatus": "Legal status", + "notes": [], + "pages": "1-10", + "patentNumber": "3", + "place": "Place", + "priorityNumbers": "Priority numbers", + "references": "References", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/PJTMWECG", + "url": "http://www.example.com", + "version": 1 + }, + "podcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "audioFileType": "Medium", + "collections": [], + "creators": [ + { + "creatorType": "podcaster", + "firstName": "podcasterFirst", + "lastName": "podcasterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + } + ], + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "podcast", + "language": "en-US", + "notes": [], + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/QE7NSW5T", + "url": "http://www.example.com", + "version": 1 + }, + "presentation": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "presenter", + "firstName": "presenterFirst", + "lastName": "presenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "presentation", + "language": "en-US", + "meetingName": "Meeting name", + "notes": [], + "place": "Place", + "presentationType": "Type", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/VCJG5RX7", + "url": "http://www.example.com", + "version": 1 + }, + "radioBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "radioBroadcast", + "language": "en-US", + "libraryCatalog": "Library catalog", + "network": "Publisher", + "notes": [], + "place": "Place", + "programTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/H9KMVJH9", + "url": "http://www.example.com", + "version": 1 + }, + "report": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "institution": "Publisher", + "itemType": "report", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "pages": "1-10", + "place": "Place", + "relations": {}, + "reportNumber": "3", + "reportType": "Type", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/Z2IZ9JEP", + "url": "http://www.example.com", + "version": 1 + }, + "statute": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "code": "Code", + "codeNumber": "Code number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "dateAdded": "2015-04-12T05:45:15Z", + "dateEnacted": "1999-12-31", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "history": "History", + "itemType": "statute", + "language": "en-US", + "nameOfAct": "Title", + "notes": [], + "pages": "1-10", + "publicLawNumber": "3", + "relations": {}, + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "uri": "http://zotero.org/users/local/riiZoBgm/items/SJE3PIJT", + "url": "http://www.example.com", + "version": 1 + }, + "thesis": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "thesis", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numPages": "4", + "place": "Place", + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "thesisType": "Type", + "title": "Title", + "university": "Publisher", + "uri": "http://zotero.org/users/local/riiZoBgm/items/68UVS8EK", + "url": "http://www.example.com", + "version": 1 + }, + "tvBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "episodeNumber": "3", + "extra": "Extra", + "itemType": "tvBroadcast", + "language": "en-US", + "libraryCatalog": "Library catalog", + "network": "Publisher", + "notes": [], + "place": "Place", + "programTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/7WGRBEFW", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium" + }, + "videoRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "videoRecording", + "language": "en-US", + "libraryCatalog": "Library catalog", + "notes": [], + "numberOfVolumes": "7", + "place": "Place", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "studio": "Publisher", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/55G9KHBH", + "url": "http://www.example.com", + "version": 1, + "videoRecordingFormat": "Medium", + "volume": "6" + }, + "webpage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13T23:59:58Z", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-12T05:45:15Z", + "dateModified": "2015-04-12T05:45:15Z", + "extra": "Extra", + "itemType": "webpage", + "language": "en-US", + "notes": [], + "relations": {}, + "rights": "Rights", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uri": "http://zotero.org/users/local/riiZoBgm/items/M7X5Q2MA", + "url": "http://www.example.com", + "version": 1, + "websiteTitle": "Publication title", + "websiteType": "Type" + } +} \ No newline at end of file diff --git a/test/tests/data/translatorExportLegacy.js b/test/tests/data/translatorExportLegacy.js new file mode 100644 index 0000000000..b4c670a8d1 --- /dev/null +++ b/test/tests/data/translatorExportLegacy.js @@ -0,0 +1,2475 @@ +{ + "artwork": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "artworkMedium": "Medium", + "artworkSize": "Artwork size", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "artist", + "firstName": "artistFirst", + "lastName": "artistLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 71, + "itemType": "artwork", + "key": "URG4NG9K", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "notes": [], + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "artworkSize": "Artwork size", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/URG4NG9K", + "url": "http://www.example.com" + }, + "audioRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "performer", + "firstName": "performerFirst", + "lastName": "performerLast" + }, + { + "creatorType": "composer", + "firstName": "composerFirst", + "lastName": "composerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "wordsBy", + "firstName": "wordsByFirst", + "lastName": "wordsByLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 72, + "itemType": "audioRecording", + "key": "K3JPBCZP", + "label": "Publisher", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "notes": [], + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/K3JPBCZP", + "url": "http://www.example.com", + "volume": "6" + }, + "bill": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "billNumber": "3", + "code": "Code", + "codePages": "1-10", + "codeVolume": "6", + "collections": [], + "creators": [ + { + "creatorType": "sponsor", + "firstName": "sponsorFirst", + "lastName": "sponsorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "cosponsor", + "firstName": "cosponsorFirst", + "lastName": "cosponsorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "history": "History", + "itemID": 73, + "itemType": "bill", + "key": "XHEAETDQ", + "language": "en-US", + "legislativeBody": "Legislative body", + "libraryID": null, + "notes": [], + "number": "3", + "pages": "1-10", + "relations": {}, + "rights": "Rights", + "section": "Section", + "seeAlso": [], + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "code": "Code", + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "language": "en-US", + "legislativeBody": "Legislative body", + "number": "3", + "pages": "1-10", + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/XHEAETDQ", + "url": "http://www.example.com", + "volume": "6" + }, + "blogPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "blogTitle": "Publication title", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "commenter", + "firstName": "commenterFirst", + "lastName": "commenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 74, + "itemType": "blogPost", + "key": "P5CEI9PJ", + "language": "en-US", + "libraryID": null, + "notes": [], + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/P5CEI9PJ", + "url": "http://www.example.com", + "websiteType": "Type" + }, + "book": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "edition": "8", + "extra": "Extra", + "itemID": 75, + "itemType": "book", + "key": "SQW3USEX", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "numPages": "4", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": "4", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/SQW3USEX", + "url": "http://www.example.com", + "volume": "6" + }, + "bookSection": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "bookTitle": "Publication title", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "bookAuthor", + "firstName": "bookAuthorFirst", + "lastName": "bookAuthorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "edition": "8", + "extra": "Extra", + "itemID": 76, + "itemType": "bookSection", + "key": "I3R2EZA4", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/I3R2EZA4", + "url": "http://www.example.com", + "volume": "6" + }, + "case": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "caseName": "Title", + "collections": [], + "court": "Court", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "counsel", + "firstName": "counselFirst", + "lastName": "counselLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateDecided": "1999-12-31", + "dateModified": "2015-04-26 06:40:48", + "docketNumber": "3", + "extra": "Extra", + "firstPage": "1-10", + "history": "History", + "itemID": 77, + "itemType": "case", + "key": "27FBK7IW", + "language": "en-US", + "libraryID": null, + "notes": [], + "number": "3", + "pages": "1-10", + "relations": {}, + "reporter": "Reporter", + "reporterVolume": "6", + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "court": "Court", + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "language": "en-US", + "number": "3", + "pages": "1-10", + "reporter": "Reporter", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/27FBK7IW", + "url": "http://www.example.com", + "volume": "6" + }, + "computerProgram": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "company": "Publisher", + "creators": [ + { + "creatorType": "programmer", + "firstName": "programmerFirst", + "lastName": "programmerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 78, + "itemType": "computerProgram", + "key": "ZVFQ59AJ", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "place": "Place", + "programmingLanguage": "Programming language", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "system": "System", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "libraryCatalog": "Library catalog", + "place": "Place", + "programmingLanguage": "Programming language", + "publisher": "Publisher", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "system": "System", + "title": "Title", + "url": "http://www.example.com", + "version": "Version" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/ZVFQ59AJ", + "url": "http://www.example.com", + "version": "Version" + }, + "conferencePaper": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "conferenceName": "Conference name", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 79, + "itemType": "conferencePaper", + "key": "4X4JGKAA", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "pages": "1-10", + "place": "Place", + "proceedingsTitle": "Publication title", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "DOI": "10.1234/example.doi", + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "conferenceName": "Conference name", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/4X4JGKAA", + "url": "http://www.example.com", + "volume": "6" + }, + "dictionaryEntry": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "dictionaryTitle": "Publication title", + "edition": "8", + "extra": "Extra", + "itemID": 80, + "itemType": "dictionaryEntry", + "key": "8MFTU597", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/8MFTU597", + "url": "http://www.example.com", + "volume": "6" + }, + "document": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 81, + "itemType": "document", + "key": "TRVQD4MU", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "publisher": "Publisher", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/TRVQD4MU", + "url": "http://www.example.com" + }, + "email": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 82, + "itemType": "email", + "key": "B972FZG7", + "language": "en-US", + "libraryID": null, + "notes": [], + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "subject": "Title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/B972FZG7", + "url": "http://www.example.com" + }, + "encyclopediaArticle": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "edition": "8", + "encyclopediaTitle": "Publication title", + "extra": "Extra", + "itemID": 83, + "itemType": "encyclopediaArticle", + "key": "QS8M3X6Q", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "series": "Series", + "seriesNumber": "9", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/QS8M3X6Q", + "url": "http://www.example.com", + "volume": "6" + }, + "film": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "distributor": "Publisher", + "extra": "Extra", + "genre": "Type", + "itemID": 84, + "itemType": "film", + "key": "CJAAM7US", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "notes": [], + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/CJAAM7US", + "url": "http://www.example.com", + "videoRecordingFormat": "Medium" + }, + "forumPost": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "forumTitle": "Publication title", + "itemID": 85, + "itemType": "forumPost", + "key": "4HQTXH7A", + "language": "en-US", + "libraryID": null, + "notes": [], + "postType": "Type", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/4HQTXH7A", + "url": "http://www.example.com" + }, + "hearing": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "committee": "Committee", + "creators": [ + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "documentNumber": "3", + "extra": "Extra", + "history": "History", + "itemID": 86, + "itemType": "hearing", + "key": "ZFDSUNIK", + "language": "en-US", + "legislativeBody": "Legislative body", + "libraryID": null, + "notes": [], + "number": "3", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "committee": "Committee", + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "language": "en-US", + "legislativeBody": "Legislative body", + "number": "3", + "numberOfVolumes": "7", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/ZFDSUNIK", + "url": "http://www.example.com" + }, + "instantMessage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 87, + "itemType": "instantMessage", + "key": "XJ3877Z8", + "language": "en-US", + "libraryID": null, + "notes": [], + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/XJ3877Z8", + "url": "http://www.example.com" + }, + "interview": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "interviewee", + "firstName": "intervieweeFirst", + "lastName": "intervieweeLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "interviewer", + "firstName": "interviewerFirst", + "lastName": "interviewerLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "interviewMedium": "Medium", + "itemID": 88, + "itemType": "interview", + "key": "KW98WHF4", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "notes": [], + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/KW98WHF4", + "url": "http://www.example.com" + }, + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "issue": "5", + "itemID": 89, + "itemType": "journalArticle", + "journalAbbreviation": "Journal abbreviation", + "key": "B4GITB3Z", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "issue": "5", + "journalAbbreviation": "Journal abbreviation", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "rights": "Rights", + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/B4GITB3Z", + "url": "http://www.example.com", + "volume": "6" + }, + "letter": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "recipient", + "firstName": "recipientFirst", + "lastName": "recipientLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 90, + "itemType": "letter", + "key": "262GGUWT", + "language": "en-US", + "letterType": "Type", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/262GGUWT", + "url": "http://www.example.com" + }, + "magazineArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "issue": "5", + "itemID": 91, + "itemType": "magazineArticle", + "key": "S8SKUS3I", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "pages": "1-10", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "issue": "5", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/S8SKUS3I", + "url": "http://www.example.com", + "volume": "6" + }, + "manuscript": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 92, + "itemType": "manuscript", + "key": "BZPATRCB", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "manuscriptType": "Type", + "notes": [], + "numPages": "4", + "place": "Place", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": "4", + "place": "Place", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/BZPATRCB", + "url": "http://www.example.com" + }, + "map": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "cartographer", + "firstName": "cartographerFirst", + "lastName": "cartographerLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "edition": "8", + "extra": "Extra", + "itemID": 93, + "itemType": "map", + "key": "WGRTVIWS", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "mapType": "Type", + "notes": [], + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "scale": "Scale", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "scale": "Scale", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/WGRTVIWS", + "url": "http://www.example.com" + }, + "newspaperArticle": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "edition": "8", + "extra": "Extra", + "itemID": 94, + "itemType": "newspaperArticle", + "key": "4PHE8AXE", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "section": "Section", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "edition": "8", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "place": "Place", + "publicationTitle": "Publication title", + "rights": "Rights", + "section": "Section", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/4PHE8AXE", + "url": "http://www.example.com" + }, + "patent": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "applicationNumber": "Application number", + "assignee": "Assignee", + "attachments": [], + "collections": [], + "country": "Country", + "creators": [ + { + "creatorType": "inventor", + "firstName": "inventorFirst", + "lastName": "inventorLast" + }, + { + "creatorType": "attorneyAgent", + "firstName": "attorneyAgentFirst", + "lastName": "attorneyAgentLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "filingDate": "2000-01-02 2000-01-02", + "issueDate": "1999-12-31", + "issuingAuthority": "Issuing authority", + "itemID": 95, + "itemType": "patent", + "key": "URAE2N3M", + "language": "en-US", + "legalStatus": "Legal status", + "libraryID": null, + "notes": [], + "number": "3", + "pages": "1-10", + "patentNumber": "3", + "place": "Place", + "priorityNumbers": "Priority numbers", + "references": "References", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "applicationNumber": "Application number", + "assignee": "Assignee", + "country": "Country", + "date": "1999-12-31", + "extra": "Extra", + "filingDate": "2000-01-02 2000-01-02", + "issuingAuthority": "Issuing authority", + "language": "en-US", + "legalStatus": "Legal status", + "number": "3", + "pages": "1-10", + "place": "Place", + "priorityNumbers": "Priority numbers", + "references": "References", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/URAE2N3M", + "url": "http://www.example.com" + }, + "podcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "audioFileType": "Medium", + "collections": [], + "creators": [ + { + "creatorType": "podcaster", + "firstName": "podcasterFirst", + "lastName": "podcasterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + } + ], + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "episodeNumber": "3", + "extra": "Extra", + "itemID": 96, + "itemType": "podcast", + "key": "CDUFPIKZ", + "language": "en-US", + "libraryID": null, + "medium": "Medium", + "notes": [], + "number": "3", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "extra": "Extra", + "language": "en-US", + "medium": "Medium", + "number": "3", + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/CDUFPIKZ", + "url": "http://www.example.com" + }, + "presentation": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "presenter", + "firstName": "presenterFirst", + "lastName": "presenterLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 97, + "itemType": "presentation", + "key": "HQ38BFRE", + "language": "en-US", + "libraryID": null, + "meetingName": "Meeting name", + "notes": [], + "place": "Place", + "presentationType": "Type", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "meetingName": "Meeting name", + "place": "Place", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/HQ38BFRE", + "url": "http://www.example.com" + }, + "radioBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "audioRecordingFormat": "Medium", + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "episodeNumber": "3", + "extra": "Extra", + "itemID": 98, + "itemType": "radioBroadcast", + "key": "IANDVIRR", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "network": "Publisher", + "notes": [], + "number": "3", + "place": "Place", + "programTitle": "Publication title", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "number": "3", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/IANDVIRR", + "url": "http://www.example.com" + }, + "report": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "seriesEditor", + "firstName": "seriesEditorFirst", + "lastName": "seriesEditorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "institution": "Publisher", + "itemID": 99, + "itemType": "report", + "key": "2MBIEXX8", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "number": "3", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "reportNumber": "3", + "reportType": "Type", + "rights": "Rights", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "number": "3", + "pages": "1-10", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/2MBIEXX8", + "url": "http://www.example.com" + }, + "statute": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "code": "Code", + "codeNumber": "Code number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateEnacted": "1999-12-31", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "history": "History", + "itemID": 100, + "itemType": "statute", + "key": "ZZWC5DCZ", + "language": "en-US", + "libraryID": null, + "nameOfAct": "Title", + "notes": [], + "number": "3", + "pages": "1-10", + "publicLawNumber": "3", + "relations": {}, + "rights": "Rights", + "section": "Section", + "seeAlso": [], + "session": "Session", + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "code": "Code", + "codeNumber": "Code number", + "date": "1999-12-31", + "extra": "Extra", + "history": "History", + "language": "en-US", + "number": "3", + "pages": "1-10", + "rights": "Rights", + "section": "Section", + "session": "Session", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/ZZWC5DCZ", + "url": "http://www.example.com" + }, + "thesis": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 101, + "itemType": "thesis", + "key": "IZIFIQ9N", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "notes": [], + "numPages": "4", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "thesisType": "Type", + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "numPages": "4", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "university": "Publisher", + "uri": "http://zotero.org/users/local/GtG6GoZj/items/IZIFIQ9N", + "url": "http://www.example.com" + }, + "tvBroadcast": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "guest", + "firstName": "guestFirst", + "lastName": "guestLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "episodeNumber": "3", + "extra": "Extra", + "itemID": 102, + "itemType": "tvBroadcast", + "key": "K88A7XD3", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "network": "Publisher", + "notes": [], + "number": "3", + "place": "Place", + "programTitle": "Publication title", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "number": "3", + "place": "Place", + "publicationTitle": "Publication title", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/K88A7XD3", + "url": "http://www.example.com", + "videoRecordingFormat": "Medium" + }, + "videoRecording": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "attachments": [], + "callNumber": "Call number", + "collections": [], + "creators": [ + { + "creatorType": "director", + "firstName": "directorFirst", + "lastName": "directorLast" + }, + { + "creatorType": "castMember", + "firstName": "castMemberFirst", + "lastName": "castMemberLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "producer", + "firstName": "producerFirst", + "lastName": "producerLast" + }, + { + "creatorType": "scriptwriter", + "firstName": "scriptwriterFirst", + "lastName": "scriptwriterLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 103, + "itemType": "videoRecording", + "key": "6VRTBPRB", + "language": "en-US", + "libraryCatalog": "Library catalog", + "libraryID": null, + "medium": "Medium", + "notes": [], + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "relations": {}, + "rights": "Rights", + "runningTime": "1:22:33", + "seeAlso": [], + "seriesTitle": "Series title", + "shortTitle": "Short title", + "studio": "Publisher", + "tags": [], + "title": "Title", + "uniqueFields": { + "ISBN": "978-1-234-56789-7", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "libraryCatalog": "Library catalog", + "medium": "Medium", + "numberOfVolumes": "7", + "place": "Place", + "publisher": "Publisher", + "rights": "Rights", + "runningTime": "1:22:33", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": "6" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/6VRTBPRB", + "url": "http://www.example.com", + "videoRecordingFormat": "Medium", + "volume": "6" + }, + "webpage": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "attachments": [], + "collections": [], + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "dateAdded": "2015-04-26 06:40:48", + "dateModified": "2015-04-26 06:40:48", + "extra": "Extra", + "itemID": 104, + "itemType": "webpage", + "key": "CTAR75NZ", + "language": "en-US", + "libraryID": null, + "notes": [], + "publicationTitle": "Publication title", + "relations": {}, + "rights": "Rights", + "seeAlso": [], + "shortTitle": "Short title", + "tags": [], + "title": "Title", + "type": "Type", + "uniqueFields": { + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "date": "1999-12-31", + "extra": "Extra", + "language": "en-US", + "publicationTitle": "Publication title", + "rights": "Rights", + "shortTitle": "Short title", + "title": "Title", + "type": "Type", + "url": "http://www.example.com" + }, + "uri": "http://zotero.org/users/local/GtG6GoZj/items/CTAR75NZ", + "url": "http://www.example.com", + "websiteTitle": "Publication title", + "websiteType": "Type" + } +} \ No newline at end of file From 920969bb29c59111b86d1df2aa0344d5dba340bb Mon Sep 17 00:00:00 2001 From: Aurimas Vinckevicius Date: Sun, 26 Apr 2015 19:14:02 -0500 Subject: [PATCH 15/15] Add journalArticle JSON data for lighter testing --- test/tests/data/journalArticle.js | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 test/tests/data/journalArticle.js diff --git a/test/tests/data/journalArticle.js b/test/tests/data/journalArticle.js new file mode 100644 index 0000000000..7af20cbc76 --- /dev/null +++ b/test/tests/data/journalArticle.js @@ -0,0 +1,55 @@ +{ + "journalArticle": { + "DOI": "10.1234/example.doi", + "ISSN": "1234-5679", + "abstractNote": "Abstract note", + "accessDate": "1997-06-13 23:59:58", + "archive": "Archive", + "archiveLocation": "Archive location", + "callNumber": "Call number", + "creators": [ + { + "creatorType": "author", + "firstName": "authorFirst", + "lastName": "authorLast" + }, + { + "creatorType": "contributor", + "firstName": "contributorFirst", + "lastName": "contributorLast" + }, + { + "creatorType": "editor", + "firstName": "editorFirst", + "lastName": "editorLast" + }, + { + "creatorType": "reviewedAuthor", + "firstName": "reviewedAuthorFirst", + "lastName": "reviewedAuthorLast" + }, + { + "creatorType": "translator", + "firstName": "translatorFirst", + "lastName": "translatorLast" + } + ], + "date": "1999-12-31", + "extra": "Extra", + "issue": 5, + "itemType": "journalArticle", + "journalAbbreviation": "Journal abbreviation", + "language": "en-US", + "libraryCatalog": "Library catalog", + "pages": "1-10", + "publicationTitle": "Publication title", + "rights": "Rights", + "series": "Series", + "seriesText": "Series text", + "seriesTitle": "Series title", + "shortTitle": "Short title", + "title": "Title", + "url": "http://www.example.com", + "volume": 6 + } +} \ No newline at end of file