Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/feeds/atom/generate/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,7 @@ describe('generate', () => {
updated: new Date('2023-03-15T12:00:00Z'),
dc: {
creator: 'John Doe',
rights: 'Copyright 2023',
rights: ['Copyright 2023'],
},
sy: {
updatePeriod: 'daily',
Expand Down
6 changes: 3 additions & 3 deletions src/feeds/atom/generate/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@ describe('generateFeed', () => {
updated: new Date('2023-03-15T12:00:00Z'),
dc: {
creator: 'Jane Smith',
rights: 'Copyright 2023',
rights: ['Copyright 2023'],
},
sy: {
updatePeriod: 'hourly',
Expand Down Expand Up @@ -1005,7 +1005,7 @@ describe('generateFeed', () => {
updated: new Date('2023-03-15T12:00:00Z'),
dc: {
creator: 'Jane Smith',
rights: 'Copyright 2023',
rights: ['Copyright 2023'],
},
}
const expected = {
Expand All @@ -1016,7 +1016,7 @@ describe('generateFeed', () => {
title: 'Feed with namespaces',
updated: '2023-03-15T12:00:00.000Z',
'dc:creator': 'Jane Smith',
'dc:rights': 'Copyright 2023',
'dc:rights': ['Copyright 2023'],
},
}

Expand Down
8 changes: 4 additions & 4 deletions src/feeds/atom/references/atom-ns.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-entry"],
"coverages": ["United States"],
"rights": ["Copyright 2025 Example News Organization"],
"title": "Dublin Core Enhanced Entry Title",
"creator": "Jack Jackson",
"subject": "Article, Tutorial, Example",
Expand All @@ -33,8 +34,7 @@
"source": "https://example.org/entry-source",
"language": "en-US",
"relation": "https://example.org/related-entry",
"coverage": "United States",
"rights": "Copyright 2025 Example News Organization"
"coverage": "United States"
},
"dcterms": {
"created": "2022-01-01T12:00:00.000Z",
Expand Down Expand Up @@ -723,6 +723,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-content"],
"coverages": ["Global"],
"rights": ["Copyright 2025 Example Publishing Company"],
"title": "Dublin Core Enhanced Feed Title",
"creator": "John Doe",
"subject": "Technology, Programming, Web Development",
Expand All @@ -736,8 +737,7 @@
"source": "https://example.org/original-source",
"language": "en-US",
"relation": "https://example.org/related-content",
"coverage": "Global",
"rights": "Copyright 2025 Example Publishing Company"
"coverage": "Global"
},
"dcterms": {
"created": "2022-01-01T12:00:00.000Z",
Expand Down
8 changes: 4 additions & 4 deletions src/feeds/rdf/references/rdf-ns.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-article"],
"coverages": ["United States"],
"rights": ["Copyright 2025 Example News Organization"],
"title": "Dublin Core Enhanced Item Title",
"creator": "Jack Jackson",
"subject": "Article, Tutorial, Example",
Expand All @@ -36,8 +37,7 @@
"source": "https://example.org/item-source",
"language": "en-US",
"relation": "https://example.org/related-article",
"coverage": "United States",
"rights": "Copyright 2025 Example News Organization"
"coverage": "United States"
},
"dcterms": {
"created": "2022-01-01T12:00+00:00",
Expand Down Expand Up @@ -651,6 +651,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-content"],
"coverages": ["Global"],
"rights": ["Copyright 2025 Example Publishing Company"],
"title": "Dublin Core Enhanced Feed Title",
"creator": "John Doe",
"subject": "Technology, Programming, Web Development",
Expand All @@ -664,8 +665,7 @@
"source": "https://example.org/original-source",
"language": "en-US",
"relation": "https://example.org/related-content",
"coverage": "Global",
"rights": "Copyright 2025 Example Publishing Company"
"coverage": "Global"
},
"dcterms": {
"created": "2022-01-01T12:00+00:00",
Expand Down
8 changes: 4 additions & 4 deletions src/feeds/rss/references/rss-ns.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-article"],
"coverages": ["United States"],
"rights": ["Copyright 2025 Example News Organization"],
"title": "Dublin Core Enhanced Item Title",
"creator": "Jack Jackson",
"subject": "Article, Tutorial, Example",
Expand All @@ -37,8 +38,7 @@
"source": "https://example.org/item-source",
"language": "en-US",
"relation": "https://example.org/related-article",
"coverage": "United States",
"rights": "Copyright 2025 Example News Organization"
"coverage": "United States"
},
"dcterms": {
"created": "2022-01-01T12:00:00.000Z",
Expand Down Expand Up @@ -955,6 +955,7 @@
"languages": ["en-US"],
"relations": ["https://example.org/related-content"],
"coverages": ["Global"],
"rights": ["Copyright 2025 Example Publishing Company"],
"title": "Dublin Core Enhanced Feed Title",
"creator": "John Doe",
"subject": "Technology, Programming, Web Development",
Expand All @@ -968,8 +969,7 @@
"source": "https://example.org/original-source",
"language": "en-US",
"relation": "https://example.org/related-content",
"coverage": "Global",
"rights": "Copyright 2025 Example Publishing Company"
"coverage": "Global"
},
"dcterms": {
"created": "2022-01-01T12:00:00.000Z",
Expand Down
3 changes: 1 addition & 2 deletions src/namespaces/dc/common/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export namespace DcNs {
languages?: Array<string>
relations?: Array<string>
coverages?: Array<string>
rights?: Array<string>

/** @deprecated Use `titles` (array) instead. Dublin Core fields are repeatable. */
title?: string
Expand Down Expand Up @@ -46,8 +47,6 @@ export namespace DcNs {
relation?: string
/** @deprecated Use `coverages` (array) instead. Dublin Core fields are repeatable. */
coverage?: string
/** @deprecated This field type will be changed to array in the next major version of the package. Dublin Core fields are repeatable. */
rights?: string
}
}
// #endregion reference
6 changes: 4 additions & 2 deletions src/namespaces/dc/generate/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ describe('generateItemOrFeed', () => {
language: 'en-US',
relation: 'https://example.com/related',
coverage: 'Global',
rights: 'Copyright 2023',
}
const expected = {
'dc:title': 'Test Title',
Expand All @@ -35,7 +34,6 @@ describe('generateItemOrFeed', () => {
'dc:language': 'en-US',
'dc:relation': 'https://example.com/related',
'dc:coverage': 'Global',
'dc:rights': 'Copyright 2023',
}

expect(generateItemOrFeed(value)).toEqual(expected)
Expand All @@ -57,6 +55,7 @@ describe('generateItemOrFeed', () => {
languages: ['en-US'],
relations: ['https://example.com/related'],
coverages: ['Global'],
rights: ['Copyright 2023'],
}
const expected = {
'dc:title': ['Test Title'],
Expand All @@ -73,6 +72,7 @@ describe('generateItemOrFeed', () => {
'dc:language': ['en-US'],
'dc:relation': ['https://example.com/related'],
'dc:coverage': ['Global'],
'dc:rights': ['Copyright 2023'],
}

expect(generateItemOrFeed(value)).toEqual(expected)
Expand All @@ -94,6 +94,7 @@ describe('generateItemOrFeed', () => {
languages: ['en-US', 'fr-FR'],
relations: ['https://example.com/related', 'https://example.com/also-related'],
coverages: ['Global', 'North America'],
rights: ['Copyright 2023', 'CC BY-NC-SA 4.0'],
}
const expected = {
'dc:title': ['Test Title', 'Alternative Title'],
Expand All @@ -110,6 +111,7 @@ describe('generateItemOrFeed', () => {
'dc:language': ['en-US', 'fr-FR'],
'dc:relation': ['https://example.com/related', 'https://example.com/also-related'],
'dc:coverage': ['Global', 'North America'],
'dc:rights': ['Copyright 2023', 'CC BY-NC-SA 4.0'],
}

expect(generateItemOrFeed(value)).toEqual(expected)
Expand Down
2 changes: 1 addition & 1 deletion src/namespaces/dc/generate/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export const generateItemOrFeed: GenerateUtil<DcNs.ItemOrFeed<DateLike>> = (item
itemOrFeed.coverage,
generateCdataString,
),
'dc:rights': generateCdataString(itemOrFeed.rights),
'dc:rights': generateArrayOrSingular(itemOrFeed.rights, undefined, generateCdataString),
}

return trimObject(value)
Expand Down
4 changes: 2 additions & 2 deletions src/namespaces/dc/parse/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ describe('retrieveItemOrFeed', () => {
languages: ['en-US'],
relations: ['https://example.org/related'],
coverages: ['Worldwide'],
rights: ['Copyright 2023, All rights reserved'],
title: 'Sample Title',
creator: 'John Doe',
subject: 'Test Subject',
Expand All @@ -31,7 +32,6 @@ describe('retrieveItemOrFeed', () => {
language: 'en-US',
relation: 'https://example.org/related',
coverage: 'Worldwide',
rights: 'Copyright 2023, All rights reserved',
}

it('should parse complete item or feed object with all properties (with #text)', () => {
Expand Down Expand Up @@ -132,7 +132,7 @@ describe('retrieveItemOrFeed', () => {
languages: ['en-US', 'fr-FR'],
relations: ['https://example.org/related', 'https://example.org/also-related'],
coverages: ['Worldwide', 'North America'],
rights: 'Copyright 2023, All rights reserved',
rights: ['Copyright 2023, All rights reserved', 'Creative Commons BY-NC-SA 4.0'],
}

expect(retrieveItemOrFeed(value)).toEqual(expected)
Expand Down
2 changes: 1 addition & 1 deletion src/namespaces/dc/parse/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export const retrieveItemOrFeed: ParsePartialUtil<DcNs.ItemOrFeed<string>> = (va
languages: parseArrayOf(value['dc:language'], (value) => parseString(retrieveText(value))),
relations: parseArrayOf(value['dc:relation'], (value) => parseString(retrieveText(value))),
coverages: parseArrayOf(value['dc:coverage'], (value) => parseString(retrieveText(value))),
rights: parseArrayOf(value['dc:rights'], (value) => parseString(retrieveText(value))),

// Deprecated fields for backward compatibility.
title: parseSingularOf(value['dc:title'], (value) => parseString(retrieveText(value))),
Expand All @@ -56,7 +57,6 @@ export const retrieveItemOrFeed: ParsePartialUtil<DcNs.ItemOrFeed<string>> = (va
language: parseSingularOf(value['dc:language'], (value) => parseString(retrieveText(value))),
relation: parseSingularOf(value['dc:relation'], (value) => parseString(retrieveText(value))),
coverage: parseSingularOf(value['dc:coverage'], (value) => parseString(retrieveText(value))),
rights: parseSingularOf(value['dc:rights'], (value) => parseString(retrieveText(value))),
}

return trimObject(itemOrFeed)
Expand Down