{"_id":"@a-2-c-2-anpm/id-doloremque-quidem","name":"@a-2-c-2-anpm/id-doloremque-quidem","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a-2-c-2-anpm/id-doloremque-quidem","version":"1.0.0","description":"NodeJS implementation (written in TypeScript) of OPDS functionality for the Readium2 architecture ( https://github.com/readium/architecture/ ).","main":"index.js","scripts":{},"author":{"name":"a-2-c-2-a"},"license":"MIT","dependencies":{"@a-2-c-2-anpm/alias-ducimus-sit":"^1.0.0","@a-2-c-2-anpm/atque-nemo-accusantium":"^1.0.0","@a-2-c-2-anpm/distinctio-quibusdam-culpa":"^1.0.0","@a-2-c-2-anpm/eligendi-praesentium-hic":"^1.0.0","@a-2-c-2-anpm/enim-amet-voluptatem":"^1.0.0","@a-2-c-2-anpm/error-dolorem-a":"^1.0.0","@a-2-c-2-anpm/excepturi-natus-facere":"^1.0.0","@a-2-c-2-anpm/expedita-recusandae-aut":"^1.0.0","@a-2-c-2-anpm/fugit-impedit-quae":"^1.0.0","@a-2-c-2-anpm/hic-maiores-accusantium":"^1.0.0","@a-2-c-2-anpm/laborum-exercitationem-quis":"^1.0.0","@a-2-c-2-anpm/laudantium-dolor-perspiciatis":"^1.0.0","@a-2-c-2-anpm/maiores-quis-dignissimos":"^1.0.0","@a-2-c-2-anpm/nam-eaque-occaecati":"^1.0.0","@a-2-c-2-anpm/neque-culpa-culpa":"^1.0.0","@a-2-c-2-anpm/neque-iste-eum":"^1.0.0","@a-2-c-2-anpm/nobis-similique-magni":"^1.0.0","@a-2-c-2-anpm/officia-tempore-ipsa":"^1.0.0","@a-2-c-2-anpm/perferendis-qui-suscipit":"^1.0.0","@a-2-c-2-anpm/placeat-suscipit-cumque":"^1.0.0","@a-2-c-2-anpm/quo-quia-expedita":"^1.0.0","@a-2-c-2-anpm/quos-voluptates-excepturi":"^1.0.0","@a-2-c-2-anpm/saepe-praesentium-iusto":"^1.0.0","@a-2-c-2-anpm/sint-ipsa-atque":"^1.0.0","@a-2-c-2-anpm/vitae-ad-molestiae":"^1.0.0","@ajhgwdjnpm/quas-mollitia-aspernatur-reprehenderit":"^1.0.0","calculator-3rd":"^1.0.12","mi-dex-func-3":"^1.0.0","vnhat-button-component":"^1.0.0","vnhat-forminput-component":"^1.0.1"},"keywords":["module","starter","extend","protocol-buffers","argument","concatMap","helper","quote","es5","deterministic","json","write","Array.prototype.filter","jQuery","number","function.length","tc39","import","equality","ES2023","browserlist","expression","tools","es2018","Push","qs","Array.prototype.contains","types","file","jsdiff","logging","prefix","copy","packages","Float32Array","es","picomatch","workspace:*","utilities","reuse","spinners","loading","l10n","eslint-plugin","find","parent","es-shims","function","trim","BigUint64Array","idle","regexp","rate","metadata","typeerror","child","es2016","reducer","colors","ECMAScript 5","colour","map","weakmap","defineProperty","command","storagegateway","code points","waf","deep-clone","lockfile","arrays","WebSocket","karma","jest","ES","performant","mime-db","batch","vest","patch","omit","hasOwnProperty","subprocess","move","byteLength","URL","dom","syntax","spring","flag","util","asterisks","ES6","zod","typedarray","negative","logger","diff","assertion","mime","monorepo","typedarrays","channel","jsdom","args","take","whatwg","flags","URLSearchParams","crypto","private data","es2017","serialize","agent","spinner","output","redux","wordbreak","electron","events","0","callbound","data","warning","cli","amazon","preprocessor","execute","check","ECMAScript 7","stateless","option","protobuf","[[Prototype]]","dataview","RFC-6455","cloudfront","full","transpiler","queueMicrotask","parsing","listeners","uuid","parser","compare","trimLeft","keys","Object.getPrototypeOf","shebang","Uint8ClampedArray","mapreduce","Int16Array","rds","pnpm9","tap","mobile","codes","lru","offset","ECMAScript 2015","directory","setImmediate","arktype","name","color","location","ender","fork","dependency manager","deep-copy","CSS","optimizer","redirect","node","rework","typeof","typescript","autoscaling","eventDispatcher","url","ES2018","bound","tty","kinesis","contains","command-line","Object.fromEntries","Int8Array","ie","iteration","gestures","promise","scheme-validation","fast-deep-clone","typanion","dotenv","clone","slice","internal","getter","aws","WeakMap","nodejs","consume","Observable","a11y","manager","descriptors","eslint","styleguide","console","scheme","package manager","remove","client","superagent","libphonenumber","concurrency","structuredClone","unicode","3d","negative zero","react pose","rm -rf","collection.es6","nope","dynamodb","buffers","es2015","settings","Uint32Array","express","terminal","Array.prototype.includes","sameValueZero","promises","pipe","html","async","match","set","valid","values","bind","input","view","merge","getopt","ArrayBuffer.prototype.slice","mkdirs","Map","Microsoft","es7","TypedArray","react-hooks","own","installer","ast","properties","value","guid","apollo","hasOwn","Object.is","trimRight","limit","arraybuffer","cloudwatch","validate","request","setPrototypeOf","datastructure","link","ES2020","plugin","ESnext","drop","css","ECMAScript 2021","ECMAScript 2023","mocha",".env","ascii","syntaxerror","real-time","sorted","circular","jshint","autoprefixer","safe","flatten","symbol","throttle","YAML","multi-package","sequence","gdpr","typed array","-0","es-abstract","escape","typed","regular-expression","exec","length","once","filter","package.json","xhr","react","busy","format","functional","runtime","hookform","animation","full-width","preserve-symlinks","efficient","walking","worker","route53","Symbol.toStringTag","fnmatch","form-validation","route","forEach","uninstall","streams","call-bound","every","cache","rapid","native","matches","dataView","ponyfill","spawn",".gitignore","getPrototypeOf","find-up","extra","telephone","typesafe","walk","fast-deep-copy","some","deepcopy","ES2021","estree","fast-clone","Int32Array","ECMAScript 2022","rss","task","key","jasmine","String.prototype.matchAll","from","environment","callbind","regular","touch","path","minimal","trimStart","Symbol","up","Stream","modules","deepclone","Uint8Array","String.prototype.trim","npmignore","CSSStyleDeclaration","make","zero","file system","stringifier","Observables","utility","polyfill","workflow","immer","styled-components","readable","buffer","style","fetch","Rx","Array.prototype.flatMap","queue","core-js","ec2","stable","RxJS","$.extend","sharedarraybuffer","simpledb","JSON-Schema","binaries","Object.assign","pyyaml","recursive","moment","chai","collection","env","Float64Array","ES7","manipulation","writable","iterator","fixed-width","deep","stream","binary","fs","higher-order","ArrayBuffer#slice","https","folder","Set","sham","ratelimit","hash","ajax","characters","emoji","wordwrap","flatMap","text","glob","Array.prototype.flatten","width","endpoint","config"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/id-doloremque-quidem.git"},"homepage":"https://github.com/a-2-c-2-anpm/id-doloremque-quidem/#readme","bugs":{"url":"https://github.com/a-2-c-2-anpm/id-doloremque-quidem/issues"},"_id":"@a-2-c-2-anpm/id-doloremque-quidem@1.0.0","gitHead":"d9644e13375a4c3346f5dcabd505f226445f863d","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-k3Sw0bVpxfbChIYymB8DFkc5e2GgBnz5OzrFG9MfBMwgHcyx/u6ZJ9USUJPNZH1y9sLPOrRV4wbwaxPDMeGOmw==","shasum":"b9cf6f71bc6dcf381cd82ee0ed05ea9a4d23d9aa","tarball":"https://registry.npmjs.org/@a-2-c-2-anpm/id-doloremque-quidem/-/id-doloremque-quidem-1.0.0.tgz","fileCount":8,"unpackedSize":21178,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCH460oiiGdxIkV/GdaIcc3PrABEQL94fBSiGjW0yUiMQIgFt2LhoQXwn65twDIlRYreIQK/Empwo4I5Ediqj5eDDg="}]},"_npmUser":{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"},"directories":{},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/id-doloremque-quidem_1.0.0_1715445372347_0.09864752150405187"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-11T16:36:12.239Z","1.0.0":"2024-05-11T16:36:12.521Z","modified":"2024-05-11T16:36:12.808Z"},"maintainers":[{"name":"tranduc345zz","email":"tranduc345zz@gmail.com"}],"description":"NodeJS implementation (written in TypeScript) of OPDS functionality for the Readium2 architecture ( https://github.com/readium/architecture/ ).","homepage":"https://github.com/a-2-c-2-anpm/id-doloremque-quidem/#readme","keywords":["module","starter","extend","protocol-buffers","argument","concatMap","helper","quote","es5","deterministic","json","write","Array.prototype.filter","jQuery","number","function.length","tc39","import","equality","ES2023","browserlist","expression","tools","es2018","Push","qs","Array.prototype.contains","types","file","jsdiff","logging","prefix","copy","packages","Float32Array","es","picomatch","workspace:*","utilities","reuse","spinners","loading","l10n","eslint-plugin","find","parent","es-shims","function","trim","BigUint64Array","idle","regexp","rate","metadata","typeerror","child","es2016","reducer","colors","ECMAScript 5","colour","map","weakmap","defineProperty","command","storagegateway","code points","waf","deep-clone","lockfile","arrays","WebSocket","karma","jest","ES","performant","mime-db","batch","vest","patch","omit","hasOwnProperty","subprocess","move","byteLength","URL","dom","syntax","spring","flag","util","asterisks","ES6","zod","typedarray","negative","logger","diff","assertion","mime","monorepo","typedarrays","channel","jsdom","args","take","whatwg","flags","URLSearchParams","crypto","private data","es2017","serialize","agent","spinner","output","redux","wordbreak","electron","events","0","callbound","data","warning","cli","amazon","preprocessor","execute","check","ECMAScript 7","stateless","option","protobuf","[[Prototype]]","dataview","RFC-6455","cloudfront","full","transpiler","queueMicrotask","parsing","listeners","uuid","parser","compare","trimLeft","keys","Object.getPrototypeOf","shebang","Uint8ClampedArray","mapreduce","Int16Array","rds","pnpm9","tap","mobile","codes","lru","offset","ECMAScript 2015","directory","setImmediate","arktype","name","color","location","ender","fork","dependency manager","deep-copy","CSS","optimizer","redirect","node","rework","typeof","typescript","autoscaling","eventDispatcher","url","ES2018","bound","tty","kinesis","contains","command-line","Object.fromEntries","Int8Array","ie","iteration","gestures","promise","scheme-validation","fast-deep-clone","typanion","dotenv","clone","slice","internal","getter","aws","WeakMap","nodejs","consume","Observable","a11y","manager","descriptors","eslint","styleguide","console","scheme","package manager","remove","client","superagent","libphonenumber","concurrency","structuredClone","unicode","3d","negative zero","react pose","rm -rf","collection.es6","nope","dynamodb","buffers","es2015","settings","Uint32Array","express","terminal","Array.prototype.includes","sameValueZero","promises","pipe","html","async","match","set","valid","values","bind","input","view","merge","getopt","ArrayBuffer.prototype.slice","mkdirs","Map","Microsoft","es7","TypedArray","react-hooks","own","installer","ast","properties","value","guid","apollo","hasOwn","Object.is","trimRight","limit","arraybuffer","cloudwatch","validate","request","setPrototypeOf","datastructure","link","ES2020","plugin","ESnext","drop","css","ECMAScript 2021","ECMAScript 2023","mocha",".env","ascii","syntaxerror","real-time","sorted","circular","jshint","autoprefixer","safe","flatten","symbol","throttle","YAML","multi-package","sequence","gdpr","typed array","-0","es-abstract","escape","typed","regular-expression","exec","length","once","filter","package.json","xhr","react","busy","format","functional","runtime","hookform","animation","full-width","preserve-symlinks","efficient","walking","worker","route53","Symbol.toStringTag","fnmatch","form-validation","route","forEach","uninstall","streams","call-bound","every","cache","rapid","native","matches","dataView","ponyfill","spawn",".gitignore","getPrototypeOf","find-up","extra","telephone","typesafe","walk","fast-deep-copy","some","deepcopy","ES2021","estree","fast-clone","Int32Array","ECMAScript 2022","rss","task","key","jasmine","String.prototype.matchAll","from","environment","callbind","regular","touch","path","minimal","trimStart","Symbol","up","Stream","modules","deepclone","Uint8Array","String.prototype.trim","npmignore","CSSStyleDeclaration","make","zero","file system","stringifier","Observables","utility","polyfill","workflow","immer","styled-components","readable","buffer","style","fetch","Rx","Array.prototype.flatMap","queue","core-js","ec2","stable","RxJS","$.extend","sharedarraybuffer","simpledb","JSON-Schema","binaries","Object.assign","pyyaml","recursive","moment","chai","collection","env","Float64Array","ES7","manipulation","writable","iterator","fixed-width","deep","stream","binary","fs","higher-order","ArrayBuffer#slice","https","folder","Set","sham","ratelimit","hash","ajax","characters","emoji","wordwrap","flatMap","text","glob","Array.prototype.flatten","width","endpoint","config"],"repository":{"type":"git","url":"git+https://github.com/a-2-c-2-anpm/id-doloremque-quidem.git"},"author":{"name":"a-2-c-2-a"},"bugs":{"url":"https://github.com/a-2-c-2-anpm/id-doloremque-quidem/issues"},"license":"MIT","readme":"# NodeJS / TypeScript Readium-2 \"opds\" components\n\nNodeJS implementation (written in TypeScript) of OPDS functionality for the Readium2 architecture ( https://github.com/readium/architecture/ ).\n\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](/LICENSE)\n\n## Build status\n\n[![NPM](https://img.shields.io/npm/v/@a-2-c-2-anpm/id-doloremque-quidem.svg)](https://www.npmjs.com/package/@a-2-c-2-anpm/id-doloremque-quidem) [![David](https://david-dm.org/readium/@a-2-c-2-anpm/id-doloremque-quidem/status.svg)](https://david-dm.org/readium/@a-2-c-2-anpm/id-doloremque-quidem)\n\n[Changelog](/CHANGELOG.md)\n\n## Prerequisites\n\n1) https://nodejs.org NodeJS >= 8, NPM >= 5 (check with command line `node --version` and `npm --version`)\n2) OPTIONAL: https://yarnpkg.com Yarn >= 1.0 (check with command line `yarn --version`)\n\n## GitHub repository\n\nhttps://github.com/a-2-c-2-anpm/id-doloremque-quidem\n\nThere is no [github.io](https://readium.github.io/@a-2-c-2-anpm/id-doloremque-quidem) site for this project (no [gh-pages](https://github.com/a-2-c-2-anpm/id-doloremque-quidem/tree/gh-pages) branch).\n\n## NPM package\n\nhttps://www.npmjs.com/package/@a-2-c-2-anpm/id-doloremque-quidem\n\nCommand line install:\n\n`npm install @a-2-c-2-anpm/id-doloremque-quidem`\nOR\n`yarn add @a-2-c-2-anpm/id-doloremque-quidem`\n\n...or manually add in your `package.json`:\n```json\n  \"dependencies\": {\n    \"@a-2-c-2-anpm/id-doloremque-quidem\": \"latest\"\n  }\n```\n\nThe JavaScript code distributed in the NPM package is usable as-is (no transpilation required), as it is automatically-generated from the TypeScript source.\n\nSeveral ECMAScript flavours are provided out-of-the-box: ES5, ES6-2015, ES7-2016, ES8-2017:\n\nhttps://unpkg.com/@a-2-c-2-anpm/id-doloremque-quidem/dist/\n\n(alternatively, GitHub mirror with semantic-versioning release tags: https://github.com/edrlab/@a-2-c-2-anpm/id-doloremque-quidem-dist/tree/develop/dist/ )\n\nThe JavaScript code is not bundled, and it uses `require()` statement for imports (NodeJS style).\n\nMore information about NodeJS compatibility:\n\nhttp://node.green\n\nNote that web-browser Javascript is currently not supported (only NodeJS runtimes).\n\nThe type definitions (aka \"typings\") are included as `*.d.ts` files in `./node_modules/@a-2-c-2-anpm/id-doloremque-quidem/dist/**`, so this package can be used directly in a TypeScript project.\n\n## Dependencies\n\nhttps://david-dm.org/readium/@a-2-c-2-anpm/id-doloremque-quidem\n\nA [package-lock.json](https://github.com/a-2-c-2-anpm/id-doloremque-quidem/blob/develop/package-lock.json) is provided (modern NPM replacement for `npm-shrinkwrap.json`).\n\nA [yarn.lock](https://github.com/a-2-c-2-anpm/id-doloremque-quidem/blob/develop/yarn.lock) file is currently *not* provided at the root of the source tree.\n\n## Continuous Integration\n\nTODO (unit tests?)\nhttps://travis-ci.org/readium/@a-2-c-2-anpm/id-doloremque-quidem\n\nBadge: `[![Travis](https://travis-ci.org/readium/@a-2-c-2-anpm/id-doloremque-quidem.svg?branch=develop)](https://travis-ci.org/readium/@a-2-c-2-anpm/id-doloremque-quidem)`\n\n## Version(s), Git revision(s)\n\nNPM package (latest published):\n\nhttps://unpkg.com/@a-2-c-2-anpm/id-doloremque-quidem/dist/gitrev.json\n\nAlternatively, GitHub mirror with semantic-versioning release tags:\n\nhttps://raw.githack.com/edrlab/@a-2-c-2-anpm/id-doloremque-quidem-dist/develop/dist/gitrev.json\n\n## Developer quick start\n\nCommand line steps (NPM, but similar with YARN):\n\n1) `cd @a-2-c-2-anpm/id-doloremque-quidem`\n2) `git status` (please ensure there are no local changes, especially in `package-lock.json` and the dependency versions in `package.json`)\n3) `rm -rf node_modules` (to start from a clean slate)\n4) `npm install`, or alternatively `npm ci` (both commands initialize the `node_modules` tree of package dependencies, based on the strict `package-lock.json` definition)\n5) `npm run build:all` (invoke the main build script: clean, lint, compile)\n6) `ls dist` (that's the build output which gets published as NPM package)\n\n## Documentation\n\n### (de)serialization / (un)marshalling of JSON and XML\n\nDue to the \"factory\" registration pattern in the TA-JSON library dependency (and its corresponding XML fork/adaptation),\nthe functions `initGlobalConverters_GENERIC()` and `initGlobalConverters_OPDS()` must be called before invoking the actual OPDS1/2 parsers.\n\nhttps://github.com/a-2-c-2-anpm/id-doloremque-quidem/blob/develop/src/opds/init-globals.ts\n\n```typescript\n// npm install @a-2-c-2-anpm/id-doloremque-quidem\n// \"@opds\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/@a-2-c-2-anpm/id-doloremque-quidem/dist/es6-es2015/src/opds/'\nimport { initGlobalConverters_GENERIC, initGlobalConverters_OPDS } from \"@opds/init-globals\";\n\ninitGlobalConverters_GENERIC();\ninitGlobalConverters_OPDS();\n```\n\n### OPDS 1\n\nThe XML (Atom) markup of an OPDS1 \"feed\" (or \"entry\") can be loaded/parsed into an in-memory data model.\n\nhttps://github.com/a-2-c-2-anpm/id-doloremque-quidem/tree/develop/src/opds/opds1\n\n```typescript\n// npm install xmldom\nimport * as xmldom from \"xmldom\";\n\n// npm install r2-utils-js\n// \"@utils\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/r2-utils-js/dist/es6-es2015/src/_utils/'\nimport { XML } from \"@utils/xml-js-mapper\";\n\n// npm install @a-2-c-2-anpm/id-doloremque-quidem\n// \"@opds\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/@a-2-c-2-anpm/id-doloremque-quidem/dist/es6-es2015/src/opds/'\nimport { OPDS } from \"@opds/opds1/opds\";\nimport { Entry } from \"@opds/opds1/opds-entry\";\n\nconst xmlDom = new xmldom.DOMParser().parseFromString(xmlStr);\nif (!xmlDom || !xmlDom.documentElement) {\n    return;\n}\nconst isEntry = xmlDom.documentElement.localName === \"entry\";\nif (isEntry) {\n    let opds1Entry = XML.deserialize<Entry>(xmlDom, Entry);\n    // ...\n} else {\n    let opds1Feed = XML.deserialize<OPDS>(xmlDom, OPDS);\n    // ...\n}\n```\n\n### OPDS 2\n\nThe JSON serialization of an OPDS2 \"feed\" (or \"publication\") can be loaded/parsed into an in-memory data model.\n\nhttps://github.com/a-2-c-2-anpm/id-doloremque-quidem/tree/develop/src/opds/opds2\n\n```typescript\nimport { TaJsonDeserialize, TaJsonSerialize } from \"@r2-lcp-js/serializable\";\n\n// npm install @a-2-c-2-anpm/id-doloremque-quidem\n// \"@opds\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/@a-2-c-2-anpm/id-doloremque-quidem/dist/es6-es2015/src/opds/'\nimport { OPDSFeed } from \"@opds/opds2/opds2\";\nimport { OPDSPublication } from \"@opds/opds2/opds2-publication\";\n\n// feed\nvar opds2Feed: OPDSFeed;\nconst opds2Feed_JSON = TaJsonSerialize(opds2Feed);\n// ...and the reverse:\nopds2Feed = TaJsonDeserialize<OPDSFeed>(opds2Feed_JSON, OPDSFeed);\n\n// publication\nvar opds2Publication: OPDSPublication;\nconst opds2Publication_JSON = TaJsonSerialize(opds2Publication);\n// ...and the reverse:\nopds2Publication = TaJsonDeserialize<OPDSPublication>(opds2Publication_JSON, OPDSPublication);\n```\n\n### OPDS 1 - OPDS 2 Converter\n\nAn OPDS1 \"feed\" (or \"entry\") can be converted into an OPDS2 representation.\n\nhttps://github.com/a-2-c-2-anpm/id-doloremque-quidem/blob/develop/src/opds/converter.ts\n\n```typescript\n// npm install xmldom\nimport * as xmldom from \"xmldom\";\n\n// npm install r2-utils-js\n// \"@utils\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/r2-utils-js/dist/es6-es2015/src/_utils/'\nimport { XML } from \"@utils/xml-js-mapper\";\n\n// npm install @a-2-c-2-anpm/id-doloremque-quidem\n// \"@opds\" is a dist path alias, for example EcmaScript6/ES2015 'node_modules/@a-2-c-2-anpm/id-doloremque-quidem/dist/es6-es2015/src/opds/'\nimport { OPDS } from \"@opds/opds1/opds\";\nimport { Entry } from \"@opds/opds1/opds-entry\";\nimport { OPDSFeed } from \"@opds/opds2/opds2\";\nimport { OPDSPublication } from \"@opds/opds2/opds2-publication\";\nimport { convertOpds1ToOpds2, convertOpds1ToOpds2_EntryToPublication } from \"@opds/converter\";\n\nconst xmlDom = new xmldom.DOMParser().parseFromString(xmlStr);\nif (!xmlDom || !xmlDom.documentElement) {\n    return;\n}\nconst isEntry = xmlDom.documentElement.localName === \"entry\";\nif (isEntry) {\n    let opds1Entry = XML.deserialize<Entry>(xmlDom, Entry);\n\n    let opds2Publication: OPDSPublication = convertOpds1ToOpds2_EntryToPublication(opds1Entry);\n    // ...\n} else {\n    let opds1Feed = XML.deserialize<OPDS>(xmlDom, OPDS);\n\n    var opds2Feed: OPDSFeed = convertOpds1ToOpds2(opds1Feed);\n    // ...\n}\n```\n","readmeFilename":"README.md"}