@studyportals/domain-client 6.0.0 → 6.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +13 -0
- package/.github/dependabot.yml +17 -0
- package/.github/stale.yml +10 -0
- package/.nycrc +15 -0
- package/README.md +117 -0
- package/bin/index.d.ts +81 -0
- package/bin/index.js +62 -0
- package/bin/index.js.map +1 -0
- package/bin/package.json +55 -0
- package/bin/src/domain-client.d.ts +14 -0
- package/bin/src/domain-client.js +61 -0
- package/bin/src/domain-client.js.map +1 -0
- package/bin/src/exceptions/bad-request-exception.js +7 -0
- package/bin/src/exceptions/bad-request-exception.js.map +1 -0
- package/bin/src/exceptions/client-exception.js +7 -0
- package/bin/src/exceptions/client-exception.js.map +1 -0
- package/bin/src/exceptions/internal-server-exception.js +7 -0
- package/bin/src/exceptions/internal-server-exception.js.map +1 -0
- package/bin/src/exceptions/not-found-exception.js +7 -0
- package/bin/src/exceptions/not-found-exception.js.map +1 -0
- package/bin/src/exceptions/property-not-available-exception.js +7 -0
- package/bin/src/exceptions/property-not-available-exception.js.map +1 -0
- package/bin/src/factories/DateFactory.js +10 -0
- package/bin/src/factories/DateFactory.js.map +1 -0
- package/bin/src/factories/InternalLinkFactory.d.ts +9 -0
- package/bin/src/factories/InternalLinkFactory.js +20 -0
- package/bin/src/factories/InternalLinkFactory.js.map +1 -0
- package/bin/src/i-api-response.d.ts +6 -0
- package/bin/src/i-api-response.js +3 -0
- package/bin/src/i-api-response.js.map +1 -0
- package/bin/src/i-class-factory.js +3 -0
- package/bin/src/i-class-factory.js.map +1 -0
- package/bin/src/i-model-description.js +10 -0
- package/bin/src/i-model-description.js.map +1 -0
- package/bin/src/model-client.js +46 -0
- package/bin/src/model-client.js.map +1 -0
- package/bin/src/model-factory.js +72 -0
- package/bin/src/model-factory.js.map +1 -0
- package/bin/src/models/bestfit-programme/bestfit-programme-client.js +17 -0
- package/bin/src/models/bestfit-programme/bestfit-programme-client.js.map +1 -0
- package/bin/src/models/bestfit-programme/i-best-fit-programme.js +3 -0
- package/bin/src/models/bestfit-programme/i-best-fit-programme.js.map +1 -0
- package/bin/src/models/bestfit-programme/i-city.js +3 -0
- package/bin/src/models/bestfit-programme/i-city.js.map +1 -0
- package/bin/src/models/bestfit-programme/i-living-cost.js +3 -0
- package/bin/src/models/bestfit-programme/i-living-cost.js.map +1 -0
- package/bin/src/models/common/i-city.js +3 -0
- package/bin/src/models/common/i-city.js.map +1 -0
- package/bin/src/models/common/i-country.js +3 -0
- package/bin/src/models/common/i-country.js.map +1 -0
- package/bin/src/models/common/i-english-requirements.js +3 -0
- package/bin/src/models/common/i-english-requirements.js.map +1 -0
- package/bin/src/models/common/i-g-p-a-requirement.js +3 -0
- package/bin/src/models/common/i-g-p-a-requirement.js.map +1 -0
- package/bin/src/models/common/i-internal-link.js +3 -0
- package/bin/src/models/common/i-internal-link.js.map +1 -0
- package/bin/src/models/common/i-logo.js +3 -0
- package/bin/src/models/common/i-logo.js.map +1 -0
- package/bin/src/models/common/i-tuition-fee.js +3 -0
- package/bin/src/models/common/i-tuition-fee.js.map +1 -0
- package/bin/src/models/copilot-country/copilot-country-client.js +17 -0
- package/bin/src/models/copilot-country/copilot-country-client.js.map +1 -0
- package/bin/src/models/copilot-country/i-copilot-country.js +3 -0
- package/bin/src/models/copilot-country/i-copilot-country.js.map +1 -0
- package/bin/src/models/copilot-country/i-copilot-ranking-card.js +3 -0
- package/bin/src/models/copilot-country/i-copilot-ranking-card.js.map +1 -0
- package/bin/src/models/copilot-programme/copilot-programme-client.js +17 -0
- package/bin/src/models/copilot-programme/copilot-programme-client.js.map +1 -0
- package/bin/src/models/copilot-programme/i-copilot-programme.js +3 -0
- package/bin/src/models/copilot-programme/i-copilot-programme.js.map +1 -0
- package/bin/src/models/customerio-organisation/customerio-organisation-client.js +17 -0
- package/bin/src/models/customerio-organisation/customerio-organisation-client.js.map +1 -0
- package/bin/src/models/customerio-organisation/i-customer-io-organisation.js +3 -0
- package/bin/src/models/customerio-organisation/i-customer-io-organisation.js.map +1 -0
- package/bin/src/models/customerio-organisation/i-review.js +3 -0
- package/bin/src/models/customerio-organisation/i-review.js.map +1 -0
- package/bin/src/models/customerio-programme/customerio-programme-client.js +17 -0
- package/bin/src/models/customerio-programme/customerio-programme-client.js.map +1 -0
- package/bin/src/models/customerio-programme/i-customer-io-programme.js +3 -0
- package/bin/src/models/customerio-programme/i-customer-io-programme.js.map +1 -0
- package/bin/src/models/customerio-programme/i-internal-link.js +3 -0
- package/bin/src/models/customerio-programme/i-internal-link.js.map +1 -0
- package/bin/src/models/organisation-card/i-organisation-card.d.ts +36 -0
- package/bin/src/models/organisation-card/i-organisation-card.js +3 -0
- package/bin/src/models/organisation-card/i-organisation-card.js.map +1 -0
- package/bin/src/models/organisation-card/i-ranking-discipline.js +3 -0
- package/bin/src/models/organisation-card/i-ranking-discipline.js.map +1 -0
- package/bin/src/models/organisation-card/organisation-card-client.js +17 -0
- package/bin/src/models/organisation-card/organisation-card-client.js.map +1 -0
- package/bin/src/models/organisation-for-search/i-organisation-for-search.js +3 -0
- package/bin/src/models/organisation-for-search/i-organisation-for-search.js.map +1 -0
- package/bin/src/models/organisation-for-search/public-organisation-for-search-client.js +17 -0
- package/bin/src/models/organisation-for-search/public-organisation-for-search-client.js.map +1 -0
- package/bin/src/models/organisation-search-document/i-organisation-search-document.js +3 -0
- package/bin/src/models/organisation-search-document/i-organisation-search-document.js.map +1 -0
- package/bin/src/models/organisation-search-document/organisation-search-document-client.js +17 -0
- package/bin/src/models/organisation-search-document/organisation-search-document-client.js.map +1 -0
- package/bin/src/models/programme-card/i-click-tracking-data.js +3 -0
- package/bin/src/models/programme-card/i-click-tracking-data.js.map +1 -0
- package/bin/src/models/programme-card/i-cover.js +3 -0
- package/bin/src/models/programme-card/i-cover.js.map +1 -0
- package/bin/src/models/programme-card/i-deadline.js +3 -0
- package/bin/src/models/programme-card/i-deadline.js.map +1 -0
- package/bin/src/models/programme-card/i-duration.js +3 -0
- package/bin/src/models/programme-card/i-duration.js.map +1 -0
- package/bin/src/models/programme-card/i-internal-link.js +3 -0
- package/bin/src/models/programme-card/i-internal-link.js.map +1 -0
- package/bin/src/models/programme-card/i-link.js +3 -0
- package/bin/src/models/programme-card/i-link.js.map +1 -0
- package/bin/src/models/programme-card/i-location.js +3 -0
- package/bin/src/models/programme-card/i-location.js.map +1 -0
- package/bin/src/models/programme-card/i-logo.js +3 -0
- package/bin/src/models/programme-card/i-logo.js.map +1 -0
- package/bin/src/models/programme-card/i-optional-link.js +3 -0
- package/bin/src/models/programme-card/i-optional-link.js.map +1 -0
- package/bin/src/models/programme-card/i-programme-card.d.ts +205 -0
- package/bin/src/models/programme-card/i-programme-card.js +3 -0
- package/bin/src/models/programme-card/i-programme-card.js.map +1 -0
- package/bin/src/models/programme-card/i-start-date.js +3 -0
- package/bin/src/models/programme-card/i-start-date.js.map +1 -0
- package/bin/src/models/programme-card/i-timing.js +3 -0
- package/bin/src/models/programme-card/i-timing.js.map +1 -0
- package/bin/src/models/programme-card/i-tracked-link.js +3 -0
- package/bin/src/models/programme-card/i-tracked-link.js.map +1 -0
- package/bin/src/models/programme-card/i-tracking.js +3 -0
- package/bin/src/models/programme-card/i-tracking.js.map +1 -0
- package/bin/src/models/programme-card/i-tuition-fee.js +3 -0
- package/bin/src/models/programme-card/i-tuition-fee.js.map +1 -0
- package/bin/src/models/programme-card/programme-card-client.js +17 -0
- package/bin/src/models/programme-card/programme-card-client.js.map +1 -0
- package/bin/src/models/ranking-cards/i-ranking.js +3 -0
- package/bin/src/models/ranking-cards/i-ranking.js.map +1 -0
- package/bin/src/models/scholarship-card/i-scholarship-card.js +3 -0
- package/bin/src/models/scholarship-card/i-scholarship-card.js.map +1 -0
- package/bin/src/models/scholarship-card/public-scholarship-card-client.js +17 -0
- package/bin/src/models/scholarship-card/public-scholarship-card-client.js.map +1 -0
- package/bin/src/models/scholarship-card/scholarship-card-v2-client.js +17 -0
- package/bin/src/models/scholarship-card/scholarship-card-v2-client.js.map +1 -0
- package/bin/src/models/scholarship-search-document/i-scholarship-search-document.js +3 -0
- package/bin/src/models/scholarship-search-document/i-scholarship-search-document.js.map +1 -0
- package/bin/src/models/scholarship-search-document/scholarship-search-document-client.js +17 -0
- package/bin/src/models/scholarship-search-document/scholarship-search-document-client.js.map +1 -0
- package/bin/src/models/search-discipline/i-search-discipline.js +3 -0
- package/bin/src/models/search-discipline/i-search-discipline.js.map +1 -0
- package/bin/src/models/search-discipline/public-search-discipline-client.js +17 -0
- package/bin/src/models/search-discipline/public-search-discipline-client.js.map +1 -0
- package/bin/src/models/search-projection/i-geo-targeting-configuration.js +3 -0
- package/bin/src/models/search-projection/i-geo-targeting-configuration.js.map +1 -0
- package/bin/src/models/search-projection/i-geo-targeting-values.js +3 -0
- package/bin/src/models/search-projection/i-geo-targeting-values.js.map +1 -0
- package/bin/src/models/search-projection/i-organisation-values.js +3 -0
- package/bin/src/models/search-projection/i-organisation-values.js.map +1 -0
- package/bin/src/models/search-projection/i-premium-values.js +3 -0
- package/bin/src/models/search-projection/i-premium-values.js.map +1 -0
- package/bin/src/models/search-projection/i-search-projection.js +3 -0
- package/bin/src/models/search-projection/i-search-projection.js.map +1 -0
- package/bin/src/models/search-projection/i-tuition-values.js +3 -0
- package/bin/src/models/search-projection/i-tuition-values.js.map +1 -0
- package/bin/src/models/search-projection/search-projection-client.js +17 -0
- package/bin/src/models/search-projection/search-projection-client.js.map +1 -0
- package/bin/src/models/sitemap-articles-info/i-sitemap-article-info.js +3 -0
- package/bin/src/models/sitemap-articles-info/i-sitemap-article-info.js.map +1 -0
- package/bin/src/models/sitemap-articles-info/sitemap-articles-info-client.js +17 -0
- package/bin/src/models/sitemap-articles-info/sitemap-articles-info-client.js.map +1 -0
- package/bin/src/models/sitemap-cities-info/i-sitemap-city-info.js +3 -0
- package/bin/src/models/sitemap-cities-info/i-sitemap-city-info.js.map +1 -0
- package/bin/src/models/sitemap-cities-info/sitemap-cities-info-client.js +17 -0
- package/bin/src/models/sitemap-cities-info/sitemap-cities-info-client.js.map +1 -0
- package/bin/src/models/sitemap-countries-info/i-sitemap-country-info.js +3 -0
- package/bin/src/models/sitemap-countries-info/i-sitemap-country-info.js.map +1 -0
- package/bin/src/models/sitemap-countries-info/sitemap-countries-info-client.js +17 -0
- package/bin/src/models/sitemap-countries-info/sitemap-countries-info-client.js.map +1 -0
- package/bin/src/models/sitemap-country-degree-info/i-degree-info.js +3 -0
- package/bin/src/models/sitemap-country-degree-info/i-degree-info.js.map +1 -0
- package/bin/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.js +3 -0
- package/bin/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.js.map +1 -0
- package/bin/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.js +17 -0
- package/bin/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.js.map +1 -0
- package/bin/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.js +3 -0
- package/bin/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.js.map +1 -0
- package/bin/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.js +17 -0
- package/bin/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.js.map +1 -0
- package/bin/src/models/sitemap-organisations-info/i-sitemap-organisation-info.js +3 -0
- package/bin/src/models/sitemap-organisations-info/i-sitemap-organisation-info.js.map +1 -0
- package/bin/src/models/sitemap-organisations-info/sitemap-organisations-info-client.js +17 -0
- package/bin/src/models/sitemap-organisations-info/sitemap-organisations-info-client.js.map +1 -0
- package/bin/src/models/sitemap-programme-info/i-sitemap-programme-info.js +3 -0
- package/bin/src/models/sitemap-programme-info/i-sitemap-programme-info.js.map +1 -0
- package/bin/src/models/sitemap-programme-info/sitemap-programme-info-client.js +17 -0
- package/bin/src/models/sitemap-programme-info/sitemap-programme-info-client.js.map +1 -0
- package/bin/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js +3 -0
- package/bin/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js.map +1 -0
- package/bin/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js +17 -0
- package/bin/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js.map +1 -0
- package/bin/src/types/portal-map.js +3 -0
- package/bin/src/types/portal-map.js.map +1 -0
- package/bin/src/types/portal-type.js +12 -0
- package/bin/src/types/portal-type.js.map +1 -0
- package/bin/src/types.js +3 -0
- package/bin/src/types.js.map +1 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +3940 -0
- package/coverage/coverage-final.json +149 -0
- package/coverage/domain-client/index.html +116 -0
- package/coverage/domain-client/index.ts.html +616 -0
- package/coverage/domain-client/protobuf/Area.ts.html +223 -0
- package/coverage/domain-client/protobuf/Article.ts.html +952 -0
- package/coverage/domain-client/protobuf/Body.ts.html +223 -0
- package/coverage/domain-client/protobuf/CampaignInformation.ts.html +223 -0
- package/coverage/domain-client/protobuf/ClickTracking.ts.html +223 -0
- package/coverage/domain-client/protobuf/CommercialEntity.ts.html +286 -0
- package/coverage/domain-client/protobuf/Cover.ts.html +208 -0
- package/coverage/domain-client/protobuf/Deadline.ts.html +223 -0
- package/coverage/domain-client/protobuf/Degree.ts.html +298 -0
- package/coverage/domain-client/protobuf/Description.ts.html +274 -0
- package/coverage/domain-client/protobuf/Discipline.ts.html +418 -0
- package/coverage/domain-client/protobuf/Duration.ts.html +223 -0
- package/coverage/domain-client/protobuf/EnglishRequirement.ts.html +223 -0
- package/coverage/domain-client/protobuf/EssentialInformation.ts.html +313 -0
- package/coverage/domain-client/protobuf/File.ts.html +388 -0
- package/coverage/domain-client/protobuf/GPARequirement.ts.html +223 -0
- package/coverage/domain-client/protobuf/InternalLink.ts.html +244 -0
- package/coverage/domain-client/protobuf/Link.ts.html +223 -0
- package/coverage/domain-client/protobuf/LivingCost.ts.html +223 -0
- package/coverage/domain-client/protobuf/Location.ts.html +316 -0
- package/coverage/domain-client/protobuf/Logo.ts.html +208 -0
- package/coverage/domain-client/protobuf/MiniProgrammeCard.ts.html +292 -0
- package/coverage/domain-client/protobuf/OptionalLink.ts.html +238 -0
- package/coverage/domain-client/protobuf/Organisation.ts.html +3280 -0
- package/coverage/domain-client/protobuf/OrganisationInformation.ts.html +187 -0
- package/coverage/domain-client/protobuf/OrganisationRanking.ts.html +259 -0
- package/coverage/domain-client/protobuf/Person.ts.html +256 -0
- package/coverage/domain-client/protobuf/ProgrammeCard.ts.html +826 -0
- package/coverage/domain-client/protobuf/ProgrammeGrid.ts.html +244 -0
- package/coverage/domain-client/protobuf/Ranking.ts.html +388 -0
- package/coverage/domain-client/protobuf/RankingInstitute.ts.html +271 -0
- package/coverage/domain-client/protobuf/Review.ts.html +301 -0
- package/coverage/domain-client/protobuf/ReviewRating.ts.html +238 -0
- package/coverage/domain-client/protobuf/RichText.ts.html +214 -0
- package/coverage/domain-client/protobuf/SocialLink.ts.html +373 -0
- package/coverage/domain-client/protobuf/StartDate.ts.html +247 -0
- package/coverage/domain-client/protobuf/Timing.ts.html +289 -0
- package/coverage/domain-client/protobuf/Topic.ts.html +208 -0
- package/coverage/domain-client/protobuf/TrackedLink.ts.html +241 -0
- package/coverage/domain-client/protobuf/Tracking.ts.html +322 -0
- package/coverage/domain-client/protobuf/TuitionFee.ts.html +253 -0
- package/coverage/domain-client/protobuf/Unibuddy.ts.html +208 -0
- package/coverage/domain-client/protobuf/index.html +746 -0
- package/coverage/domain-client/protobuf/index.ts.html +223 -0
- package/coverage/domain-client/src/clients/article-detail-page-client.ts.html +145 -0
- package/coverage/domain-client/src/clients/index.html +176 -0
- package/coverage/domain-client/src/clients/index.ts.html +109 -0
- package/coverage/domain-client/src/clients/organisation-page-client.ts.html +145 -0
- package/coverage/domain-client/src/clients/protobuf-client.ts.html +256 -0
- package/coverage/domain-client/src/clients/public-mini-programme-card-client.ts.html +145 -0
- package/coverage/domain-client/src/domain-client.ts.html +415 -0
- package/coverage/domain-client/src/exceptions/bad-request-exception.ts.html +91 -0
- package/coverage/domain-client/src/exceptions/client-exception.ts.html +91 -0
- package/coverage/domain-client/src/exceptions/index.html +176 -0
- package/coverage/domain-client/src/exceptions/internal-server-exception.ts.html +91 -0
- package/coverage/domain-client/src/exceptions/not-found-exception.ts.html +91 -0
- package/coverage/domain-client/src/exceptions/property-not-available-exception.ts.html +91 -0
- package/coverage/domain-client/src/factories/DateFactory.ts.html +109 -0
- package/coverage/domain-client/src/factories/InternalLinkFactory.ts.html +181 -0
- package/coverage/domain-client/src/factories/index.html +131 -0
- package/coverage/domain-client/src/i-api-response.ts.html +106 -0
- package/coverage/domain-client/src/i-class-factory.ts.html +100 -0
- package/coverage/domain-client/src/i-model-description.ts.html +124 -0
- package/coverage/domain-client/src/index.html +206 -0
- package/coverage/domain-client/src/model-client.ts.html +316 -0
- package/coverage/domain-client/src/model-factory.ts.html +367 -0
- package/coverage/domain-client/src/models/bestfit-programme/bestfit-programme-client.ts.html +133 -0
- package/coverage/domain-client/src/models/bestfit-programme/i-best-fit-programme.ts.html +391 -0
- package/coverage/domain-client/src/models/bestfit-programme/i-city.ts.html +133 -0
- package/coverage/domain-client/src/models/bestfit-programme/i-living-cost.ts.html +154 -0
- package/coverage/domain-client/src/models/bestfit-programme/index.html +161 -0
- package/coverage/domain-client/src/models/common/i-city.ts.html +133 -0
- package/coverage/domain-client/src/models/common/i-country.ts.html +154 -0
- package/coverage/domain-client/src/models/common/i-english-requirements.ts.html +283 -0
- package/coverage/domain-client/src/models/common/i-g-p-a-requirement.ts.html +154 -0
- package/coverage/domain-client/src/models/common/i-internal-link.ts.html +181 -0
- package/coverage/domain-client/src/models/common/i-logo.ts.html +133 -0
- package/coverage/domain-client/src/models/common/i-review-rating.ts.html +172 -0
- package/coverage/domain-client/src/models/common/i-tuition-fee.ts.html +256 -0
- package/coverage/domain-client/src/models/common/index.html +221 -0
- package/coverage/domain-client/src/models/copilot-country/copilot-country-client.ts.html +133 -0
- package/coverage/domain-client/src/models/copilot-country/i-copilot-country.ts.html +223 -0
- package/coverage/domain-client/src/models/copilot-country/i-copilot-ranking-card.ts.html +199 -0
- package/coverage/domain-client/src/models/copilot-country/index.html +146 -0
- package/coverage/domain-client/src/models/copilot-programme/copilot-programme-client.ts.html +133 -0
- package/coverage/domain-client/src/models/copilot-programme/i-copilot-programme.ts.html +526 -0
- package/coverage/domain-client/src/models/copilot-programme/index.html +131 -0
- package/coverage/domain-client/src/models/customerio-organisation/customerio-organisation-client.ts.html +133 -0
- package/coverage/domain-client/src/models/customerio-organisation/i-customer-io-organisation.ts.html +271 -0
- package/coverage/domain-client/src/models/customerio-organisation/i-review.ts.html +121 -0
- package/coverage/domain-client/src/models/customerio-organisation/index.html +146 -0
- package/coverage/domain-client/src/models/customerio-programme/customerio-programme-client.ts.html +133 -0
- package/coverage/domain-client/src/models/customerio-programme/i-customer-io-programme.ts.html +472 -0
- package/coverage/domain-client/src/models/customerio-programme/i-internal-link.ts.html +181 -0
- package/coverage/domain-client/src/models/customerio-programme/index.html +146 -0
- package/coverage/domain-client/src/models/faq-static-content/i-faq-static-content.ts.html +130 -0
- package/coverage/domain-client/src/models/faq-static-content/i-faq.ts.html +100 -0
- package/coverage/domain-client/src/models/faq-static-content/i-static-content-url.ts.html +100 -0
- package/coverage/domain-client/src/models/faq-static-content/index.html +161 -0
- package/coverage/domain-client/src/models/faq-static-content/public-faq-static-content-client.ts.html +133 -0
- package/coverage/domain-client/src/models/organisation-card/i-organisation-card.ts.html +304 -0
- package/coverage/domain-client/src/models/organisation-card/i-ranking-discipline.ts.html +103 -0
- package/coverage/domain-client/src/models/organisation-card/index.html +146 -0
- package/coverage/domain-client/src/models/organisation-card/organisation-card-client.ts.html +133 -0
- package/coverage/domain-client/src/models/organisation-for-search/i-organisation-for-search.ts.html +196 -0
- package/coverage/domain-client/src/models/organisation-for-search/index.html +131 -0
- package/coverage/domain-client/src/models/organisation-for-search/public-organisation-for-search-client.ts.html +133 -0
- package/coverage/domain-client/src/models/organisation-search-document/i-organisation-search-document.ts.html +616 -0
- package/coverage/domain-client/src/models/organisation-search-document/index.html +131 -0
- package/coverage/domain-client/src/models/organisation-search-document/organisation-search-document-client.ts.html +133 -0
- package/coverage/domain-client/src/models/programme-card/i-click-tracking-data.ts.html +109 -0
- package/coverage/domain-client/src/models/programme-card/i-cover.ts.html +133 -0
- package/coverage/domain-client/src/models/programme-card/i-deadline.ts.html +154 -0
- package/coverage/domain-client/src/models/programme-card/i-duration.ts.html +223 -0
- package/coverage/domain-client/src/models/programme-card/i-internal-link.ts.html +181 -0
- package/coverage/domain-client/src/models/programme-card/i-link.ts.html +160 -0
- package/coverage/domain-client/src/models/programme-card/i-location.ts.html +151 -0
- package/coverage/domain-client/src/models/programme-card/i-logo.ts.html +133 -0
- package/coverage/domain-client/src/models/programme-card/i-optional-link.ts.html +166 -0
- package/coverage/domain-client/src/models/programme-card/i-programme-card.ts.html +856 -0
- package/coverage/domain-client/src/models/programme-card/i-start-date.ts.html +202 -0
- package/coverage/domain-client/src/models/programme-card/i-timing.ts.html +244 -0
- package/coverage/domain-client/src/models/programme-card/i-tracked-link.ts.html +187 -0
- package/coverage/domain-client/src/models/programme-card/i-tracking.ts.html +250 -0
- package/coverage/domain-client/src/models/programme-card/i-tuition-fee.ts.html +256 -0
- package/coverage/domain-client/src/models/programme-card/index.html +341 -0
- package/coverage/domain-client/src/models/programme-card/programme-card-client.ts.html +133 -0
- package/coverage/domain-client/src/models/ranking-cards/i-ranking.ts.html +151 -0
- package/coverage/domain-client/src/models/ranking-cards/index.html +116 -0
- package/coverage/domain-client/src/models/scholarship-card/i-scholarship-card-v2.ts.html +199 -0
- package/coverage/domain-client/src/models/scholarship-card/i-scholarship-card.ts.html +169 -0
- package/coverage/domain-client/src/models/scholarship-card/index.html +161 -0
- package/coverage/domain-client/src/models/scholarship-card/public-scholarship-card-client.ts.html +133 -0
- package/coverage/domain-client/src/models/scholarship-card/scholarship-card-v2-client.ts.html +133 -0
- package/coverage/domain-client/src/models/scholarship-search-document/i-scholarship-search-document.ts.html +244 -0
- package/coverage/domain-client/src/models/scholarship-search-document/index.html +131 -0
- package/coverage/domain-client/src/models/scholarship-search-document/scholarship-search-document-client.ts.html +133 -0
- package/coverage/domain-client/src/models/search-discipline/i-search-discipline.ts.html +181 -0
- package/coverage/domain-client/src/models/search-discipline/index.html +131 -0
- package/coverage/domain-client/src/models/search-discipline/public-search-discipline-client.ts.html +133 -0
- package/coverage/domain-client/src/models/search-projection/i-geo-targeting-configuration.ts.html +217 -0
- package/coverage/domain-client/src/models/search-projection/i-geo-targeting-values.ts.html +199 -0
- package/coverage/domain-client/src/models/search-projection/i-organisation-values.ts.html +244 -0
- package/coverage/domain-client/src/models/search-projection/i-premium-values.ts.html +214 -0
- package/coverage/domain-client/src/models/search-projection/i-search-projection.ts.html +754 -0
- package/coverage/domain-client/src/models/search-projection/i-tuition-values.ts.html +274 -0
- package/coverage/domain-client/src/models/search-projection/index.html +206 -0
- package/coverage/domain-client/src/models/search-projection/search-projection-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-articles-info/i-sitemap-article-info.ts.html +184 -0
- package/coverage/domain-client/src/models/sitemap-articles-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-articles-info/sitemap-articles-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-cities-info/i-sitemap-city-info.ts.html +136 -0
- package/coverage/domain-client/src/models/sitemap-cities-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-cities-info/sitemap-cities-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-countries-info/i-sitemap-country-info.ts.html +136 -0
- package/coverage/domain-client/src/models/sitemap-countries-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-countries-info/sitemap-countries-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-country-degree-info/i-degree-info.ts.html +136 -0
- package/coverage/domain-client/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.ts.html +127 -0
- package/coverage/domain-client/src/models/sitemap-country-degree-info/index.html +146 -0
- package/coverage/domain-client/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.ts.html +136 -0
- package/coverage/domain-client/src/models/sitemap-disciplines-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-organisations-info/i-sitemap-organisation-info.ts.html +181 -0
- package/coverage/domain-client/src/models/sitemap-organisations-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-organisations-info/sitemap-organisations-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-programme-info/i-sitemap-programme-info.ts.html +181 -0
- package/coverage/domain-client/src/models/sitemap-programme-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-programme-info/sitemap-programme-info-client.ts.html +133 -0
- package/coverage/domain-client/src/models/sitemap-rankings-info/i-sitemap-rankings-info.ts.html +136 -0
- package/coverage/domain-client/src/models/sitemap-rankings-info/index.html +131 -0
- package/coverage/domain-client/src/models/sitemap-rankings-info/sitemap-rankings-info-client.ts.html +133 -0
- package/coverage/domain-client/src/types/index.html +131 -0
- package/coverage/domain-client/src/types/portal-map.ts.html +94 -0
- package/coverage/domain-client/src/types/portal-type.ts.html +106 -0
- package/coverage/domain-client/src/types.ts.html +97 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +566 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/index.ts +177 -0
- package/package.json +50 -52
- package/protobuf/Area.ts +46 -0
- package/protobuf/Article.ts +289 -0
- package/protobuf/Body.ts +46 -0
- package/protobuf/CampaignInformation.ts +46 -0
- package/protobuf/ClickTracking.ts +46 -0
- package/protobuf/CommercialEntity.ts +67 -0
- package/protobuf/Cover.ts +41 -0
- package/protobuf/Deadline.ts +46 -0
- package/protobuf/Degree.ts +71 -0
- package/protobuf/Description.ts +63 -0
- package/protobuf/Discipline.ts +111 -0
- package/protobuf/Duration.ts +46 -0
- package/protobuf/EnglishRequirement.ts +46 -0
- package/protobuf/EssentialInformation.ts +76 -0
- package/protobuf/File.ts +101 -0
- package/protobuf/GPARequirement.ts +46 -0
- package/protobuf/InternalLink.ts +53 -0
- package/protobuf/Link.ts +46 -0
- package/protobuf/LivingCost.ts +46 -0
- package/protobuf/Location.ts +77 -0
- package/protobuf/Logo.ts +41 -0
- package/protobuf/MiniProgrammeCard.ts +69 -0
- package/protobuf/OptionalLink.ts +51 -0
- package/protobuf/Organisation.ts +1065 -0
- package/protobuf/OrganisationInformation.ts +34 -0
- package/protobuf/OrganisationRanking.ts +58 -0
- package/protobuf/Person.ts +57 -0
- package/protobuf/ProgrammeCard.ts +247 -0
- package/protobuf/ProgrammeGrid.ts +53 -0
- package/protobuf/Ranking.ts +101 -0
- package/protobuf/RankingInstitute.ts +62 -0
- package/protobuf/Review.ts +72 -0
- package/protobuf/ReviewRating.ts +51 -0
- package/protobuf/RichText.ts +43 -0
- package/protobuf/SocialLink.ts +96 -0
- package/protobuf/StartDate.ts +54 -0
- package/protobuf/Timing.ts +68 -0
- package/protobuf/Topic.ts +41 -0
- package/protobuf/TrackedLink.ts +52 -0
- package/protobuf/Tracking.ts +79 -0
- package/protobuf/TuitionFee.ts +56 -0
- package/protobuf/Unibuddy.ts +41 -0
- package/protobuf/index.ts +46 -0
- package/src/clients/article-detail-page-client.ts +20 -0
- package/src/clients/index.ts +8 -0
- package/src/clients/organisation-page-client.ts +20 -0
- package/src/clients/protobuf-client.ts +57 -0
- package/src/clients/public-mini-programme-card-client.ts +20 -0
- package/src/domain-client.ts +110 -0
- package/src/factories/DateFactory.ts +8 -0
- package/src/factories/InternalLinkFactory.ts +32 -0
- package/src/i-api-response.ts +7 -0
- package/src/i-class-factory.ts +5 -0
- package/src/i-model-description.ts +13 -0
- package/src/model-client.ts +77 -0
- package/src/model-factory.ts +94 -0
- package/src/models/bestfit-programme/bestfit-programme-client.ts +16 -0
- package/src/models/bestfit-programme/i-best-fit-programme.ts +102 -0
- package/src/models/bestfit-programme/i-city.ts +16 -0
- package/src/models/bestfit-programme/i-living-cost.ts +23 -0
- package/src/models/common/i-city.ts +16 -0
- package/src/models/common/i-country.ts +23 -0
- package/src/models/common/i-english-requirements.ts +66 -0
- package/src/models/common/i-g-p-a-requirement.ts +23 -0
- package/src/models/common/i-internal-link.ts +32 -0
- package/src/models/common/i-logo.ts +16 -0
- package/src/models/common/i-review-rating.ts +30 -0
- package/src/models/common/i-tuition-fee.ts +57 -0
- package/src/models/copilot-country/copilot-country-client.ts +16 -0
- package/src/models/copilot-country/i-copilot-country.ts +46 -0
- package/src/models/copilot-country/i-copilot-ranking-card.ts +39 -0
- package/src/models/copilot-programme/copilot-programme-client.ts +16 -0
- package/src/models/copilot-programme/i-copilot-programme.ts +147 -0
- package/src/models/customerio-organisation/customerio-organisation-client.ts +16 -0
- package/src/models/customerio-organisation/i-customer-io-organisation.ts +62 -0
- package/src/models/customerio-organisation/i-review.ts +12 -0
- package/src/models/customerio-programme/customerio-programme-client.ts +16 -0
- package/src/models/customerio-programme/i-customer-io-programme.ts +129 -0
- package/src/models/customerio-programme/i-internal-link.ts +32 -0
- package/src/models/faq-static-content/i-faq-static-content.ts +15 -0
- package/src/models/faq-static-content/i-faq.ts +6 -0
- package/src/models/faq-static-content/i-static-content-url.ts +6 -0
- package/src/models/faq-static-content/public-faq-static-content-client.ts +16 -0
- package/src/models/organisation-card/i-organisation-card.ts +73 -0
- package/src/models/organisation-card/i-ranking-discipline.ts +6 -0
- package/src/models/organisation-card/organisation-card-client.ts +16 -0
- package/src/models/organisation-for-search/i-organisation-for-search.ts +37 -0
- package/src/models/organisation-for-search/public-organisation-for-search-client.ts +16 -0
- package/src/models/organisation-search-document/i-organisation-search-document.ts +177 -0
- package/src/models/organisation-search-document/organisation-search-document-client.ts +16 -0
- package/src/models/programme-card/i-click-tracking-data.ts +8 -0
- package/src/models/programme-card/i-cover.ts +16 -0
- package/src/models/programme-card/i-deadline.ts +23 -0
- package/src/models/programme-card/i-duration.ts +46 -0
- package/src/models/programme-card/i-internal-link.ts +32 -0
- package/src/models/programme-card/i-link.ts +25 -0
- package/src/models/programme-card/i-location.ts +22 -0
- package/src/models/programme-card/i-logo.ts +16 -0
- package/src/models/programme-card/i-optional-link.ts +27 -0
- package/src/models/programme-card/i-programme-card.ts +257 -0
- package/src/models/programme-card/i-start-date.ts +39 -0
- package/src/models/programme-card/i-timing.ts +53 -0
- package/src/models/programme-card/i-tracked-link.ts +34 -0
- package/src/models/programme-card/i-tracking.ts +55 -0
- package/src/models/programme-card/i-tuition-fee.ts +57 -0
- package/src/models/programme-card/programme-card-client.ts +16 -0
- package/src/models/ranking-cards/i-ranking.ts +22 -0
- package/src/models/scholarship-card/i-scholarship-card-v2.ts +38 -0
- package/src/models/scholarship-card/i-scholarship-card.ts +28 -0
- package/src/models/scholarship-card/public-scholarship-card-client.ts +16 -0
- package/src/models/scholarship-card/scholarship-card-v2-client.ts +16 -0
- package/src/models/scholarship-search-document/i-scholarship-search-document.ts +53 -0
- package/src/models/scholarship-search-document/scholarship-search-document-client.ts +16 -0
- package/src/models/search-discipline/i-search-discipline.ts +32 -0
- package/src/models/search-discipline/public-search-discipline-client.ts +16 -0
- package/src/models/search-projection/i-geo-targeting-configuration.ts +44 -0
- package/src/models/search-projection/i-geo-targeting-values.ts +38 -0
- package/src/models/search-projection/i-organisation-values.ts +53 -0
- package/src/models/search-projection/i-premium-values.ts +43 -0
- package/src/models/search-projection/i-search-projection.ts +223 -0
- package/src/models/search-projection/i-tuition-values.ts +63 -0
- package/src/models/search-projection/search-projection-client.ts +16 -0
- package/src/models/sitemap-articles-info/i-sitemap-article-info.ts +33 -0
- package/src/models/sitemap-articles-info/sitemap-articles-info-client.ts +16 -0
- package/src/models/sitemap-cities-info/i-sitemap-city-info.ts +17 -0
- package/src/models/sitemap-cities-info/sitemap-cities-info-client.ts +16 -0
- package/src/models/sitemap-countries-info/i-sitemap-country-info.ts +17 -0
- package/src/models/sitemap-countries-info/sitemap-countries-info-client.ts +16 -0
- package/src/models/sitemap-country-degree-info/i-degree-info.ts +17 -0
- package/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.ts +14 -0
- package/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.ts +16 -0
- package/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.ts +17 -0
- package/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.ts +16 -0
- package/src/models/sitemap-organisations-info/i-sitemap-organisation-info.ts +32 -0
- package/src/models/sitemap-organisations-info/sitemap-organisations-info-client.ts +16 -0
- package/src/models/sitemap-programme-info/i-sitemap-programme-info.ts +32 -0
- package/src/models/sitemap-programme-info/sitemap-programme-info-client.ts +16 -0
- package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.ts +17 -0
- package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.ts +16 -0
- package/src/types/portal-map.ts +3 -0
- package/src/types/portal-type.ts +7 -0
- package/src/types.ts +4 -0
- package/tsconfig.json +40 -0
- package/vitest.config.ts +10 -0
- package/vitest.setup.ts +6 -0
- package/index.d.ts +0 -88
- package/index.js +0 -33
- package/protobuf/Area.d.ts +0 -11
- package/protobuf/Area.js +0 -30
- package/protobuf/Article.d.ts +0 -60
- package/protobuf/Article.js +0 -226
- package/protobuf/Body.d.ts +0 -11
- package/protobuf/Body.js +0 -30
- package/protobuf/CampaignInformation.d.ts +0 -11
- package/protobuf/CampaignInformation.js +0 -30
- package/protobuf/ClickTracking.d.ts +0 -11
- package/protobuf/ClickTracking.js +0 -30
- package/protobuf/CommercialEntity.d.ts +0 -14
- package/protobuf/CommercialEntity.js +0 -48
- package/protobuf/Cover.d.ts +0 -10
- package/protobuf/Cover.js +0 -26
- package/protobuf/Deadline.d.ts +0 -11
- package/protobuf/Deadline.js +0 -30
- package/protobuf/Degree.d.ts +0 -16
- package/protobuf/Degree.js +0 -50
- package/protobuf/Description.d.ts +0 -16
- package/protobuf/Description.js +0 -45
- package/protobuf/Discipline.d.ts +0 -26
- package/protobuf/Discipline.js +0 -84
- package/protobuf/Duration.d.ts +0 -11
- package/protobuf/Duration.js +0 -30
- package/protobuf/EnglishRequirement.d.ts +0 -11
- package/protobuf/EnglishRequirement.js +0 -30
- package/protobuf/EssentialInformation.d.ts +0 -17
- package/protobuf/EssentialInformation.js +0 -54
- package/protobuf/File.d.ts +0 -22
- package/protobuf/File.js +0 -74
- package/protobuf/GPARequirement.d.ts +0 -11
- package/protobuf/GPARequirement.js +0 -30
- package/protobuf/InternalLink.d.ts +0 -12
- package/protobuf/InternalLink.js +0 -30
- package/protobuf/Link.d.ts +0 -11
- package/protobuf/Link.js +0 -30
- package/protobuf/LivingCost.d.ts +0 -11
- package/protobuf/LivingCost.js +0 -30
- package/protobuf/Location.d.ts +0 -18
- package/protobuf/Location.js +0 -56
- package/protobuf/Logo.d.ts +0 -10
- package/protobuf/Logo.js +0 -26
- package/protobuf/MiniProgrammeCard.d.ts +0 -18
- package/protobuf/MiniProgrammeCard.js +0 -50
- package/protobuf/OptionalLink.d.ts +0 -12
- package/protobuf/OptionalLink.js +0 -34
- package/protobuf/Organisation.d.ts +0 -211
- package/protobuf/Organisation.js +0 -853
- package/protobuf/OrganisationInformation.d.ts +0 -9
- package/protobuf/OrganisationInformation.js +0 -20
- package/protobuf/OrganisationRanking.d.ts +0 -15
- package/protobuf/OrganisationRanking.js +0 -41
- package/protobuf/Person.d.ts +0 -14
- package/protobuf/Person.js +0 -40
- package/protobuf/ProgrammeCard.d.ts +0 -60
- package/protobuf/ProgrammeCard.js +0 -197
- package/protobuf/ProgrammeGrid.d.ts +0 -14
- package/protobuf/ProgrammeGrid.js +0 -37
- package/protobuf/Ranking.d.ts +0 -22
- package/protobuf/Ranking.js +0 -76
- package/protobuf/RankingInstitute.d.ts +0 -15
- package/protobuf/RankingInstitute.js +0 -44
- package/protobuf/Review.d.ts +0 -17
- package/protobuf/Review.js +0 -52
- package/protobuf/ReviewRating.d.ts +0 -12
- package/protobuf/ReviewRating.js +0 -34
- package/protobuf/RichText.d.ts +0 -10
- package/protobuf/RichText.js +0 -28
- package/protobuf/SocialLink.d.ts +0 -21
- package/protobuf/SocialLink.js +0 -70
- package/protobuf/StartDate.d.ts +0 -13
- package/protobuf/StartDate.js +0 -38
- package/protobuf/Timing.d.ts +0 -17
- package/protobuf/Timing.js +0 -49
- package/protobuf/Topic.d.ts +0 -10
- package/protobuf/Topic.js +0 -26
- package/protobuf/TrackedLink.d.ts +0 -13
- package/protobuf/TrackedLink.js +0 -36
- package/protobuf/Tracking.d.ts +0 -18
- package/protobuf/Tracking.js +0 -58
- package/protobuf/TuitionFee.d.ts +0 -13
- package/protobuf/TuitionFee.js +0 -38
- package/protobuf/Unibuddy.d.ts +0 -10
- package/protobuf/Unibuddy.js +0 -26
- package/protobuf/index.d.ts +0 -45
- package/protobuf/index.js +0 -45
- package/src/clients/article-detail-page-client.d.ts +0 -8
- package/src/clients/article-detail-page-client.js +0 -16
- package/src/clients/index.d.ts +0 -7
- package/src/clients/index.js +0 -7
- package/src/clients/organisation-page-client.d.ts +0 -8
- package/src/clients/organisation-page-client.js +0 -16
- package/src/clients/protobuf-client.d.ts +0 -14
- package/src/clients/protobuf-client.js +0 -26
- package/src/clients/public-mini-programme-card-client.d.ts +0 -8
- package/src/clients/public-mini-programme-card-client.js +0 -16
- package/src/domain-client.d.ts +0 -14
- package/src/domain-client.js +0 -91
- package/src/factories/DateFactory.js +0 -5
- package/src/factories/InternalLinkFactory.d.ts +0 -9
- package/src/factories/InternalLinkFactory.js +0 -22
- package/src/i-api-response.d.ts +0 -6
- package/src/i-api-response.js +0 -1
- package/src/i-class-factory.js +0 -1
- package/src/i-model-description.js +0 -5
- package/src/model-client.js +0 -43
- package/src/model-factory.js +0 -68
- package/src/models/bestfit-programme/bestfit-programme-client.js +0 -12
- package/src/models/bestfit-programme/i-best-fit-programme.js +0 -1
- package/src/models/bestfit-programme/i-city.js +0 -1
- package/src/models/bestfit-programme/i-english-requirements.d.ts +0 -51
- package/src/models/bestfit-programme/i-english-requirements.js +0 -1
- package/src/models/bestfit-programme/i-g-p-a-requirement.js +0 -1
- package/src/models/bestfit-programme/i-living-cost.js +0 -1
- package/src/models/bestfit-programme/i-tuition-fee.js +0 -1
- package/src/models/common/i-city.js +0 -1
- package/src/models/common/i-country.js +0 -1
- package/src/models/common/i-english-requirements.js +0 -1
- package/src/models/common/i-g-p-a-requirement.d.ts +0 -20
- package/src/models/common/i-g-p-a-requirement.js +0 -1
- package/src/models/common/i-internal-link.js +0 -1
- package/src/models/common/i-logo.js +0 -1
- package/src/models/common/i-review-rating.d.ts +0 -26
- package/src/models/common/i-review-rating.js +0 -1
- package/src/models/common/i-tuition-fee.js +0 -1
- package/src/models/compare-programme/i-english-requirements.d.ts +0 -51
- package/src/models/compare-programme/i-english-requirements.js +0 -1
- package/src/models/compare-programme/i-g-p-a-requirement.d.ts +0 -20
- package/src/models/compare-programme/i-g-p-a-requirement.js +0 -1
- package/src/models/compare-programme/i-living-cost.d.ts +0 -20
- package/src/models/compare-programme/i-living-cost.js +0 -1
- package/src/models/copilot-country/copilot-country-client.js +0 -12
- package/src/models/copilot-country/i-copilot-country.js +0 -1
- package/src/models/copilot-country/i-copilot-ranking-card.js +0 -1
- package/src/models/copilot-programme/copilot-programme-client.js +0 -12
- package/src/models/copilot-programme/i-copilot-programme.js +0 -1
- package/src/models/copilot-programme/i-deadline.js +0 -1
- package/src/models/copilot-programme/i-english-requirements.d.ts +0 -51
- package/src/models/copilot-programme/i-english-requirements.js +0 -1
- package/src/models/copilot-programme/i-g-p-a-requirement.d.ts +0 -20
- package/src/models/copilot-programme/i-g-p-a-requirement.js +0 -1
- package/src/models/copilot-programme/i-geo-targeting-configuration.js +0 -1
- package/src/models/copilot-programme/i-geo-targeting-values.js +0 -1
- package/src/models/copilot-programme/i-internal-link.js +0 -1
- package/src/models/copilot-programme/i-link.js +0 -1
- package/src/models/copilot-programme/i-living-cost.d.ts +0 -20
- package/src/models/copilot-programme/i-living-cost.js +0 -1
- package/src/models/copilot-programme/i-start-date.js +0 -1
- package/src/models/copilot-programme/i-timing.js +0 -1
- package/src/models/copilot-programme/i-tuition-values.js +0 -1
- package/src/models/customerio-organisation/customerio-organisation-client.js +0 -12
- package/src/models/customerio-organisation/i-city.d.ts +0 -14
- package/src/models/customerio-organisation/i-city.js +0 -1
- package/src/models/customerio-organisation/i-country.d.ts +0 -20
- package/src/models/customerio-organisation/i-country.js +0 -1
- package/src/models/customerio-organisation/i-customer-i-o-organisation.d.ts +0 -35
- package/src/models/customerio-organisation/i-customer-i-o-organisation.js +0 -1
- package/src/models/customerio-organisation/i-customer-io-organisation.js +0 -1
- package/src/models/customerio-organisation/i-review.js +0 -1
- package/src/models/customerio-programme/customerio-programme-client.js +0 -12
- package/src/models/customerio-programme/i-country.d.ts +0 -20
- package/src/models/customerio-programme/i-country.js +0 -1
- package/src/models/customerio-programme/i-customer-i-o-programme.d.ts +0 -107
- package/src/models/customerio-programme/i-customer-i-o-programme.js +0 -1
- package/src/models/customerio-programme/i-customer-io-programme.js +0 -1
- package/src/models/customerio-programme/i-deadline.d.ts +0 -20
- package/src/models/customerio-programme/i-deadline.js +0 -1
- package/src/models/customerio-programme/i-english-requirements.d.ts +0 -51
- package/src/models/customerio-programme/i-english-requirements.js +0 -1
- package/src/models/customerio-programme/i-internal-link.js +0 -1
- package/src/models/customerio-programme/i-logo.js +0 -1
- package/src/models/customerio-programme/i-start-date.d.ts +0 -33
- package/src/models/customerio-programme/i-start-date.js +0 -1
- package/src/models/customerio-programme/i-timing.d.ts +0 -45
- package/src/models/customerio-programme/i-timing.js +0 -1
- package/src/models/customerio-programme/i-tuition-fee.d.ts +0 -50
- package/src/models/customerio-programme/i-tuition-fee.js +0 -1
- package/src/models/faq-static-content/i-faq-static-content.d.ts +0 -9
- package/src/models/faq-static-content/i-faq-static-content.js +0 -1
- package/src/models/faq-static-content/i-faq.d.ts +0 -4
- package/src/models/faq-static-content/i-faq.js +0 -1
- package/src/models/faq-static-content/i-static-content-url.d.ts +0 -4
- package/src/models/faq-static-content/i-static-content-url.js +0 -1
- package/src/models/faq-static-content/public-faq-static-content-client.d.ts +0 -7
- package/src/models/faq-static-content/public-faq-static-content-client.js +0 -12
- package/src/models/organisation-card/i-organisation-card.d.ts +0 -38
- package/src/models/organisation-card/i-organisation-card.js +0 -1
- package/src/models/organisation-card/i-ranking-discipline.js +0 -1
- package/src/models/organisation-card/i-review-rating-domain.d.ts +0 -6
- package/src/models/organisation-card/i-review-rating-domain.js +0 -1
- package/src/models/organisation-card/organisation-card-client.js +0 -12
- package/src/models/organisation-for-search/i-organisation-for-search.js +0 -1
- package/src/models/organisation-for-search/public-organisation-for-search-client.js +0 -12
- package/src/models/organisation-search-document/i-organisation-search-document.js +0 -1
- package/src/models/organisation-search-document/organisation-search-document-client.js +0 -12
- package/src/models/programme-card/i-click-tracking-data.js +0 -1
- package/src/models/programme-card/i-cover.js +0 -1
- package/src/models/programme-card/i-deadline.d.ts +0 -20
- package/src/models/programme-card/i-deadline.js +0 -1
- package/src/models/programme-card/i-duration.js +0 -1
- package/src/models/programme-card/i-english-requirements.d.ts +0 -51
- package/src/models/programme-card/i-english-requirements.js +0 -1
- package/src/models/programme-card/i-g-p-a-requirement.d.ts +0 -20
- package/src/models/programme-card/i-g-p-a-requirement.js +0 -1
- package/src/models/programme-card/i-internal-link.d.ts +0 -28
- package/src/models/programme-card/i-internal-link.js +0 -1
- package/src/models/programme-card/i-link.d.ts +0 -22
- package/src/models/programme-card/i-link.js +0 -1
- package/src/models/programme-card/i-living-cost.d.ts +0 -20
- package/src/models/programme-card/i-living-cost.js +0 -1
- package/src/models/programme-card/i-location.js +0 -1
- package/src/models/programme-card/i-logo.d.ts +0 -14
- package/src/models/programme-card/i-logo.js +0 -1
- package/src/models/programme-card/i-optional-link.js +0 -1
- package/src/models/programme-card/i-programme-card.d.ts +0 -212
- package/src/models/programme-card/i-programme-card.js +0 -1
- package/src/models/programme-card/i-review-rating-domain.d.ts +0 -6
- package/src/models/programme-card/i-review-rating-domain.js +0 -1
- package/src/models/programme-card/i-start-date.d.ts +0 -33
- package/src/models/programme-card/i-start-date.js +0 -1
- package/src/models/programme-card/i-timing.d.ts +0 -45
- package/src/models/programme-card/i-timing.js +0 -1
- package/src/models/programme-card/i-tracked-link.js +0 -1
- package/src/models/programme-card/i-tracking.js +0 -1
- package/src/models/programme-card/i-tuition-fee.d.ts +0 -50
- package/src/models/programme-card/i-tuition-fee.js +0 -1
- package/src/models/programme-card/programme-card-client.js +0 -12
- package/src/models/ranking-cards/i-ranking.js +0 -1
- package/src/models/scholarship-card/i-scholarship-card-v2.d.ts +0 -20
- package/src/models/scholarship-card/i-scholarship-card-v2.js +0 -1
- package/src/models/scholarship-card/i-scholarship-card.d.ts +0 -15
- package/src/models/scholarship-card/i-scholarship-card.js +0 -1
- package/src/models/scholarship-card/public-scholarship-card-client.js +0 -12
- package/src/models/scholarship-card/scholarship-card-v2-client.d.ts +0 -7
- package/src/models/scholarship-card/scholarship-card-v2-client.js +0 -12
- package/src/models/scholarship-card-v2/i-scholarship-card.js +0 -1
- package/src/models/scholarship-card-v2/scholarship-card-v2-client.js +0 -12
- package/src/models/scholarship-search-document/i-scholarship-search-document.js +0 -1
- package/src/models/scholarship-search-document/scholarship-search-document-client.js +0 -12
- package/src/models/search-discipline/i-search-discipline.js +0 -1
- package/src/models/search-discipline/public-search-discipline-client.js +0 -12
- package/src/models/search-projection/i-geo-targeting-configuration.d.ts +0 -38
- package/src/models/search-projection/i-geo-targeting-configuration.js +0 -1
- package/src/models/search-projection/i-geo-targeting-values.d.ts +0 -30
- package/src/models/search-projection/i-geo-targeting-values.js +0 -1
- package/src/models/search-projection/i-organisation-values.js +0 -1
- package/src/models/search-projection/i-premium-values.js +0 -1
- package/src/models/search-projection/i-search-projection.js +0 -1
- package/src/models/search-projection/i-tuition-values.d.ts +0 -50
- package/src/models/search-projection/i-tuition-values.js +0 -1
- package/src/models/search-projection/search-projection-client.js +0 -12
- package/src/models/sitemap-articles-info/i-sitemap-article-info.js +0 -1
- package/src/models/sitemap-articles-info/sitemap-articles-info-client.js +0 -12
- package/src/models/sitemap-cities-info/i-sitemap-city-info.js +0 -1
- package/src/models/sitemap-cities-info/sitemap-cities-info-client.js +0 -12
- package/src/models/sitemap-countries-info/i-sitemap-country-info.js +0 -1
- package/src/models/sitemap-countries-info/sitemap-countries-info-client.js +0 -12
- package/src/models/sitemap-country-degree-info/i-degree-info.js +0 -1
- package/src/models/sitemap-country-degree-info/i-sitemap-country-degree-info.js +0 -1
- package/src/models/sitemap-country-degree-info/sitemap-country-degree-info-client.js +0 -12
- package/src/models/sitemap-disciplines-info/i-sitemap-discipline-info.js +0 -1
- package/src/models/sitemap-disciplines-info/sitemap-disciplines-info-client.js +0 -12
- package/src/models/sitemap-organisations-info/i-sitemap-organisation-info.js +0 -1
- package/src/models/sitemap-organisations-info/sitemap-organisations-info-client.js +0 -12
- package/src/models/sitemap-programme-info/i-sitemap-programme-info.js +0 -1
- package/src/models/sitemap-programme-info/sitemap-programme-info-client.js +0 -12
- package/src/models/sitemap-rankings-info/i-sitemap-rankings-info.js +0 -1
- package/src/models/sitemap-rankings-info/sitemap-rankings-info-client.js +0 -12
- package/src/types/portal-map.js +0 -1
- package/src/types/portal-type.js +0 -8
- package/src/types.js +0 -1
- package/test.d.ts +0 -1
- package/test.js +0 -7
- package/vitest.config.d.ts +0 -2
- package/vitest.config.js +0 -9
- package/vitest.setup.d.ts +0 -1
- package/vitest.setup.js +0 -4
- /package/{src → bin/src}/exceptions/bad-request-exception.d.ts +0 -0
- /package/{src → bin/src}/exceptions/client-exception.d.ts +0 -0
- /package/{src → bin/src}/exceptions/internal-server-exception.d.ts +0 -0
- /package/{src → bin/src}/exceptions/not-found-exception.d.ts +0 -0
- /package/{src → bin/src}/exceptions/property-not-available-exception.d.ts +0 -0
- /package/{src → bin/src}/factories/DateFactory.d.ts +0 -0
- /package/{src → bin/src}/i-class-factory.d.ts +0 -0
- /package/{src → bin/src}/i-model-description.d.ts +0 -0
- /package/{src → bin/src}/model-client.d.ts +0 -0
- /package/{src → bin/src}/model-factory.d.ts +0 -0
- /package/{src → bin/src}/models/bestfit-programme/bestfit-programme-client.d.ts +0 -0
- /package/{src → bin/src}/models/bestfit-programme/i-best-fit-programme.d.ts +0 -0
- /package/{src → bin/src}/models/bestfit-programme/i-city.d.ts +0 -0
- /package/{src → bin/src}/models/bestfit-programme/i-living-cost.d.ts +0 -0
- /package/{src → bin/src}/models/common/i-city.d.ts +0 -0
- /package/{src → bin/src}/models/common/i-country.d.ts +0 -0
- /package/{src → bin/src}/models/common/i-english-requirements.d.ts +0 -0
- /package/{src/models/bestfit-programme → bin/src/models/common}/i-g-p-a-requirement.d.ts +0 -0
- /package/{src → bin/src}/models/common/i-internal-link.d.ts +0 -0
- /package/{src → bin/src}/models/common/i-logo.d.ts +0 -0
- /package/{src/models/bestfit-programme → bin/src/models/common}/i-tuition-fee.d.ts +0 -0
- /package/{src → bin/src}/models/copilot-country/copilot-country-client.d.ts +0 -0
- /package/{src → bin/src}/models/copilot-country/i-copilot-country.d.ts +0 -0
- /package/{src → bin/src}/models/copilot-country/i-copilot-ranking-card.d.ts +0 -0
- /package/{src → bin/src}/models/copilot-programme/copilot-programme-client.d.ts +0 -0
- /package/{src → bin/src}/models/copilot-programme/i-copilot-programme.d.ts +0 -0
- /package/{src → bin/src}/models/customerio-organisation/customerio-organisation-client.d.ts +0 -0
- /package/{src → bin/src}/models/customerio-organisation/i-customer-io-organisation.d.ts +0 -0
- /package/{src → bin/src}/models/customerio-organisation/i-review.d.ts +0 -0
- /package/{src → bin/src}/models/customerio-programme/customerio-programme-client.d.ts +0 -0
- /package/{src → bin/src}/models/customerio-programme/i-customer-io-programme.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/customerio-programme}/i-internal-link.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-card/i-ranking-discipline.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-card/organisation-card-client.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-for-search/i-organisation-for-search.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-for-search/public-organisation-for-search-client.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-search-document/i-organisation-search-document.d.ts +0 -0
- /package/{src → bin/src}/models/organisation-search-document/organisation-search-document-client.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-click-tracking-data.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-cover.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/programme-card}/i-deadline.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-duration.d.ts +0 -0
- /package/{src/models/customerio-programme → bin/src/models/programme-card}/i-internal-link.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/programme-card}/i-link.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-location.d.ts +0 -0
- /package/{src/models/customerio-programme → bin/src/models/programme-card}/i-logo.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-optional-link.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/programme-card}/i-start-date.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/programme-card}/i-timing.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-tracked-link.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/i-tracking.d.ts +0 -0
- /package/{src/models/common → bin/src/models/programme-card}/i-tuition-fee.d.ts +0 -0
- /package/{src → bin/src}/models/programme-card/programme-card-client.d.ts +0 -0
- /package/{src → bin/src}/models/ranking-cards/i-ranking.d.ts +0 -0
- /package/{src/models/scholarship-card-v2 → bin/src/models/scholarship-card}/i-scholarship-card.d.ts +0 -0
- /package/{src → bin/src}/models/scholarship-card/public-scholarship-card-client.d.ts +0 -0
- /package/{src/models/scholarship-card-v2 → bin/src/models/scholarship-card}/scholarship-card-v2-client.d.ts +0 -0
- /package/{src → bin/src}/models/scholarship-search-document/i-scholarship-search-document.d.ts +0 -0
- /package/{src → bin/src}/models/scholarship-search-document/scholarship-search-document-client.d.ts +0 -0
- /package/{src → bin/src}/models/search-discipline/i-search-discipline.d.ts +0 -0
- /package/{src → bin/src}/models/search-discipline/public-search-discipline-client.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/search-projection}/i-geo-targeting-configuration.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/search-projection}/i-geo-targeting-values.d.ts +0 -0
- /package/{src → bin/src}/models/search-projection/i-organisation-values.d.ts +0 -0
- /package/{src → bin/src}/models/search-projection/i-premium-values.d.ts +0 -0
- /package/{src → bin/src}/models/search-projection/i-search-projection.d.ts +0 -0
- /package/{src/models/copilot-programme → bin/src/models/search-projection}/i-tuition-values.d.ts +0 -0
- /package/{src → bin/src}/models/search-projection/search-projection-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-articles-info/i-sitemap-article-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-articles-info/sitemap-articles-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-cities-info/i-sitemap-city-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-cities-info/sitemap-cities-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-countries-info/i-sitemap-country-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-countries-info/sitemap-countries-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-country-degree-info/i-degree-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-country-degree-info/i-sitemap-country-degree-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-country-degree-info/sitemap-country-degree-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-disciplines-info/i-sitemap-discipline-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-disciplines-info/sitemap-disciplines-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-organisations-info/i-sitemap-organisation-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-organisations-info/sitemap-organisations-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-programme-info/i-sitemap-programme-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-programme-info/sitemap-programme-info-client.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-rankings-info/i-sitemap-rankings-info.d.ts +0 -0
- /package/{src → bin/src}/models/sitemap-rankings-info/sitemap-rankings-info-client.d.ts +0 -0
- /package/{src → bin/src}/types/portal-map.d.ts +0 -0
- /package/{src → bin/src}/types/portal-type.d.ts +0 -0
- /package/{src → bin/src}/types.d.ts +0 -0
- /package/src/exceptions/{bad-request-exception.js → bad-request-exception.ts} +0 -0
- /package/src/exceptions/{client-exception.js → client-exception.ts} +0 -0
- /package/src/exceptions/{internal-server-exception.js → internal-server-exception.ts} +0 -0
- /package/src/exceptions/{not-found-exception.js → not-found-exception.ts} +0 -0
- /package/src/exceptions/{property-not-available-exception.js → property-not-available-exception.ts} +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DomainClient } from "../domain-client";
|
|
2
|
+
import { PortalMap } from "../types/portal-map";
|
|
3
|
+
import { PortalType } from "../types/portal-type";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export abstract class ProtobufClient<T> {
|
|
7
|
+
public static portalMap: PortalMap = new Map<PortalType, string>();
|
|
8
|
+
private readonly domainClient: DomainClient<Record<string, unknown>>;
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
baseUrl: string,
|
|
12
|
+
seed: number,
|
|
13
|
+
apiKey?: string,
|
|
14
|
+
portalMap?: PortalMap
|
|
15
|
+
) {
|
|
16
|
+
if(portalMap) {
|
|
17
|
+
ProtobufClient.portalMap = portalMap;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
this.domainClient = new DomainClient(
|
|
21
|
+
baseUrl,
|
|
22
|
+
apiKey,
|
|
23
|
+
this.getModelName(),
|
|
24
|
+
this.getVersion(),
|
|
25
|
+
this.isPublic(),
|
|
26
|
+
seed
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
public async fetch(id: number): Promise<T> {
|
|
32
|
+
const results = await this.domainClient.doRequest([id])
|
|
33
|
+
return this.constructModel(results[0]);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public async fetchMultiple(ids: number[]): Promise<T[]> {
|
|
37
|
+
const results = await this.domainClient.doRequest(ids);
|
|
38
|
+
return results.map((data) => this.constructModel(data));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protected abstract constructModel(data: Record<string, any>): T;
|
|
42
|
+
protected abstract getModelName(): string;
|
|
43
|
+
|
|
44
|
+
protected abstract getVersion(): string;
|
|
45
|
+
|
|
46
|
+
public abstract isPublic(): boolean;
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
public static transformUrlUsingPortalMap(path: string, portalType: PortalType): string {
|
|
50
|
+
const baseUrl = ProtobufClient.portalMap.get(portalType)
|
|
51
|
+
if(baseUrl && !path.includes('https')) {
|
|
52
|
+
return baseUrl + path;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return path;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MiniProgrammeCard } from "../../protobuf";
|
|
2
|
+
import { ProtobufClient } from "./protobuf-client";
|
|
3
|
+
|
|
4
|
+
export class PublicMiniProgrammeCardClient extends ProtobufClient<MiniProgrammeCard> {
|
|
5
|
+
protected constructModel(data: Record<string, any>): MiniProgrammeCard {
|
|
6
|
+
return MiniProgrammeCard.fromJSON(data);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
protected getModelName(): string {
|
|
10
|
+
return 'mini-programme-card';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
protected getVersion(): string {
|
|
14
|
+
return 'v1';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public isPublic(): boolean {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { BadRequestException } from "./exceptions/bad-request-exception";
|
|
2
|
+
import { InternalServerException } from "./exceptions/internal-server-exception";
|
|
3
|
+
import { NotFoundException } from "./exceptions/not-found-exception";
|
|
4
|
+
import { IApiResponse } from "./i-api-response";
|
|
5
|
+
|
|
6
|
+
const decoder = new TextDecoder();
|
|
7
|
+
|
|
8
|
+
export class DomainClient<T> {
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
public readonly baseUrl: string,
|
|
12
|
+
public readonly apiKey: string | undefined,
|
|
13
|
+
public readonly model: string,
|
|
14
|
+
public readonly version: string,
|
|
15
|
+
public readonly isPublic: boolean,
|
|
16
|
+
public readonly seed: number
|
|
17
|
+
) {
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public async doRequest(ids: number[]): Promise<T[]> {
|
|
21
|
+
const url = `${this.baseUrl}/${this.buildUrl(ids)}`;
|
|
22
|
+
const headers: Record<string, string> = {};
|
|
23
|
+
|
|
24
|
+
if (this.apiKey !== undefined) {
|
|
25
|
+
headers["x-api-key"] = this.apiKey
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
|
|
30
|
+
const response = await fetch(url, {headers});
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
32
|
+
const data: IApiResponse = await response.json();
|
|
33
|
+
|
|
34
|
+
if (!response.ok || data.status !== 200) {
|
|
35
|
+
this.handleErrors(data);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const models: T[] = [];
|
|
39
|
+
|
|
40
|
+
for (const id of ids) {
|
|
41
|
+
const modelData = data.data[id];
|
|
42
|
+
if (!modelData) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if(typeof modelData === 'string') {
|
|
47
|
+
try {
|
|
48
|
+
models.push(await this.decompressModelData(modelData));
|
|
49
|
+
continue;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error(error);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
models.push(modelData as T);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return models;
|
|
62
|
+
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error('Error fetching data from API:', error);
|
|
65
|
+
if(error instanceof InternalServerException || error instanceof BadRequestException || error instanceof NotFoundException) {
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
throw new InternalServerException('Unable to fetch data from the API', error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private async decompressModelData(compressedData: string): Promise<T> {
|
|
74
|
+
const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));
|
|
75
|
+
|
|
76
|
+
const stream = new DecompressionStream('deflate');
|
|
77
|
+
const response = new Response(bytes as any);
|
|
78
|
+
const decompressedStream = response.body?.pipeThrough(stream);
|
|
79
|
+
const decompressedBytes = new Uint8Array(await new Response(decompressedStream).arrayBuffer());
|
|
80
|
+
|
|
81
|
+
return JSON.parse(decoder.decode(decompressedBytes)) as T;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
private handleErrors(response: IApiResponse): void {
|
|
85
|
+
if (!response.status) {
|
|
86
|
+
throw new InternalServerException(response.message);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (response.status === 400) {
|
|
90
|
+
throw new BadRequestException(response.message);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (response.status === 404) {
|
|
94
|
+
throw new NotFoundException(response.message);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private buildUrl(ids: number[]): string {
|
|
99
|
+
const publicPrefix = this.shouldAddPublicPrefix() ? 'public/' : '';
|
|
100
|
+
let query = `${publicPrefix}${this.model}/${this.version}/?seed=${this.seed}`;
|
|
101
|
+
for (const id of ids) {
|
|
102
|
+
query += `&id=${id}`;
|
|
103
|
+
}
|
|
104
|
+
return query;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private shouldAddPublicPrefix(): boolean {
|
|
108
|
+
return this.isPublic && this.apiKey === undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IClassFactory } from "../i-class-factory";
|
|
2
|
+
import { CallableReturnType, Model } from "../types";
|
|
3
|
+
|
|
4
|
+
export class DateFactory implements IClassFactory {
|
|
5
|
+
public create(data: Model, parameters: string[]): CallableReturnType {
|
|
6
|
+
return new Date(parameters[0]);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IClassFactory } from "../i-class-factory";
|
|
2
|
+
import { PortalType } from "../types/portal-type";
|
|
3
|
+
import { CallableReturnType, Model } from "../types";
|
|
4
|
+
import { PortalMap } from "../types/portal-map";
|
|
5
|
+
|
|
6
|
+
export class InternalLinkFactory implements IClassFactory {
|
|
7
|
+
private portalMap: PortalMap;
|
|
8
|
+
|
|
9
|
+
constructor(portalMap: PortalMap) {
|
|
10
|
+
this.portalMap = portalMap;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
+
public create(link: Model, parameters?: unknown): CallableReturnType {
|
|
15
|
+
const getPortalType = link['getPortalType'];
|
|
16
|
+
const portalType = getPortalType ? getPortalType() as PortalType : null;
|
|
17
|
+
const portalBaseUrl = portalType ? this.getPortalBaseUrl(portalType) : '';
|
|
18
|
+
|
|
19
|
+
const getUrl = link['getUrl'];
|
|
20
|
+
if (getUrl) {
|
|
21
|
+
const path = getUrl() as string;
|
|
22
|
+
link['getUrl'] = (): string => portalBaseUrl + path;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return link;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private getPortalBaseUrl(portalType: PortalType): string {
|
|
29
|
+
const url = this.portalMap.get(portalType);
|
|
30
|
+
return url || '';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AcceptedType } from "./types";
|
|
2
|
+
|
|
3
|
+
export interface IModelDescription {
|
|
4
|
+
class: string;
|
|
5
|
+
func: Record<string, AcceptedType | IModelDescription>;
|
|
6
|
+
parameters?: any[];
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// eslint-disable-next-line
|
|
10
|
+
export function isModelDescription(arg: any): arg is IModelDescription {
|
|
11
|
+
// eslint-disable-next-line
|
|
12
|
+
return arg && arg.class && (arg.func || arg.parameters);
|
|
13
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { DomainClient } from "./domain-client";
|
|
2
|
+
import { ClientException } from "./exceptions/client-exception";
|
|
3
|
+
import { IModelDescription } from "./i-model-description";
|
|
4
|
+
import { ModelFactory } from "./model-factory";
|
|
5
|
+
import { PortalMap } from "./types/portal-map";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export abstract class ModelClient<T> {
|
|
9
|
+
private readonly domainClient: DomainClient<IModelDescription> | null;
|
|
10
|
+
private readonly modelFactory: ModelFactory<T>;
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
baseUrl?: string,
|
|
14
|
+
apiKey?: string,
|
|
15
|
+
seed?: number,
|
|
16
|
+
portalMap?: PortalMap
|
|
17
|
+
) {
|
|
18
|
+
if (!baseUrl || !seed) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
this.modelFactory = new ModelFactory<T>(portalMap);
|
|
23
|
+
this.domainClient = new DomainClient(
|
|
24
|
+
baseUrl,
|
|
25
|
+
apiKey,
|
|
26
|
+
this.getModelName(),
|
|
27
|
+
this.getVersion(),
|
|
28
|
+
this.isPublic(),
|
|
29
|
+
seed
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public async fetch(id: number): Promise<T> {
|
|
34
|
+
const modelDescriptions = await this.fetchDescription(id);
|
|
35
|
+
return this.modelFactory.fromDescription(modelDescriptions);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public async fetchDescription(id: number): Promise<IModelDescription> {
|
|
39
|
+
if (!this.domainClient) {
|
|
40
|
+
throw new ClientException(
|
|
41
|
+
"Offline mode active: did you provide all parameters " +
|
|
42
|
+
"in the constructor?"
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
const result = await this.domainClient.doRequest([id]);
|
|
46
|
+
return result[0];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public async fetchMultiple(ids: number[]): Promise<T[]> {
|
|
50
|
+
const descriptions = await this.fetchMultipleDescriptions(ids);
|
|
51
|
+
return this.modelFactory.fromDescriptions(descriptions);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public async fetchMultipleDescriptions(ids: number[]): Promise<IModelDescription[]> {
|
|
55
|
+
if (!this.domainClient) {
|
|
56
|
+
throw new ClientException(
|
|
57
|
+
'Offline mode active: did you provide all parameters ' +
|
|
58
|
+
'in the constructor?'
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return await this.domainClient.doRequest(ids);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public fromDescription(description: IModelDescription): T {
|
|
65
|
+
return this.modelFactory.fromDescription(description);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public fromDescriptions(descriptions: IModelDescription[]): T[] {
|
|
69
|
+
return this.modelFactory.fromDescriptions(descriptions);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
protected abstract getModelName(): string;
|
|
73
|
+
|
|
74
|
+
protected abstract getVersion(): string;
|
|
75
|
+
|
|
76
|
+
public abstract isPublic(): boolean;
|
|
77
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { InternalLinkFactory } from "./factories/InternalLinkFactory";
|
|
2
|
+
import { DateFactory } from "./factories/DateFactory";
|
|
3
|
+
import { IClassFactory } from "./i-class-factory";
|
|
4
|
+
import { IModelDescription, isModelDescription } from "./i-model-description";
|
|
5
|
+
import { PropertyNotAvailableException } from "./exceptions/property-not-available-exception";
|
|
6
|
+
import { Callable, CallableReturnType, Model } from "./types";
|
|
7
|
+
import { PortalMap } from "./types/portal-map";
|
|
8
|
+
import { PortalType } from "./types/portal-type";
|
|
9
|
+
|
|
10
|
+
export class ModelFactory<T> {
|
|
11
|
+
|
|
12
|
+
private customClassFactories: Map<string, IClassFactory>;
|
|
13
|
+
|
|
14
|
+
constructor(portalMap: PortalMap = new Map<PortalType, string>()) {
|
|
15
|
+
const factories = new Map<string, IClassFactory>();
|
|
16
|
+
factories.set('IInternalLink', new InternalLinkFactory(portalMap));
|
|
17
|
+
factories.set('SerializableDateTime', new DateFactory());
|
|
18
|
+
|
|
19
|
+
this.customClassFactories = factories;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public fromDescription(data: IModelDescription): T {
|
|
23
|
+
return this.unpackClass(data) as unknown as T;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public fromDescriptions(data: IModelDescription[]): T[] {
|
|
27
|
+
const models: T[] = [];
|
|
28
|
+
for (const modelDescription of data) {
|
|
29
|
+
models.push(this.unpackClass(modelDescription) as unknown as T);
|
|
30
|
+
}
|
|
31
|
+
return models;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private unpackClass(data: IModelDescription): CallableReturnType {
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
const unpacked: Model = {};
|
|
38
|
+
for (const functionName in data.func) {
|
|
39
|
+
unpacked[functionName] = this.getCallable(functionName, data);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const factory = this.customClassFactories.get(data.class);
|
|
43
|
+
if (factory !== undefined) {
|
|
44
|
+
return factory.create(unpacked, data.parameters);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return unpacked;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private getCallable(
|
|
51
|
+
functionName: string,
|
|
52
|
+
data: IModelDescription
|
|
53
|
+
): Callable {
|
|
54
|
+
const propertyName = functionName.substr(3);
|
|
55
|
+
const canShowFunction = 'canShow' + propertyName;
|
|
56
|
+
|
|
57
|
+
const value: unknown = data.func[functionName];
|
|
58
|
+
let returnValue: CallableReturnType|CallableReturnType[];
|
|
59
|
+
|
|
60
|
+
if (isModelDescription(value)) {
|
|
61
|
+
returnValue = this.unpackClass(value);
|
|
62
|
+
} else if (Array.isArray(value)) {
|
|
63
|
+
returnValue = this.unpackArray(value);
|
|
64
|
+
} else {
|
|
65
|
+
returnValue = value as CallableReturnType;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (canShowFunction in data.func) {
|
|
69
|
+
return (): any => {
|
|
70
|
+
if (data.func[canShowFunction] === false) {
|
|
71
|
+
throw new PropertyNotAvailableException(
|
|
72
|
+
`Property '${propertyName}' not available`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
return returnValue;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return (): any => {
|
|
79
|
+
return returnValue;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private unpackArray(list: any[]): CallableReturnType[] {
|
|
84
|
+
return list.map(
|
|
85
|
+
item => {
|
|
86
|
+
if (isModelDescription(item)) {
|
|
87
|
+
return this.unpackClass(item)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return item as CallableReturnType;
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IBestFitProgramme } from "../../..";
|
|
2
|
+
import { ModelClient } from "../../model-client";
|
|
3
|
+
|
|
4
|
+
export class BestfitProgrammeClient extends ModelClient<IBestFitProgramme> {
|
|
5
|
+
protected getModelName(): string {
|
|
6
|
+
return 'bestfit-programme';
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
protected getVersion(): string {
|
|
10
|
+
return 'v1';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public isPublic(): boolean {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ICity, IEnglishRequirements, IGPARequirement, ILivingCost, ITuitionFee } from "../../..";
|
|
2
|
+
|
|
3
|
+
export interface IBestFitProgramme {
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Average university ranking across multiple ranking institutes.
|
|
7
|
+
*
|
|
8
|
+
* @return number
|
|
9
|
+
*/
|
|
10
|
+
getAverageRankingPosition(): number;
|
|
11
|
+
|
|
12
|
+
canShowAverageRankingPosition(): boolean;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* City which programme is given in
|
|
16
|
+
*
|
|
17
|
+
* @return ICity
|
|
18
|
+
*/
|
|
19
|
+
getCity(): ICity;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get country id the programme is teached in
|
|
23
|
+
*
|
|
24
|
+
* @return number
|
|
25
|
+
*/
|
|
26
|
+
getCountryId(): number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Discipline ids which the program is linked to.
|
|
30
|
+
*
|
|
31
|
+
* @return number[]
|
|
32
|
+
*/
|
|
33
|
+
getDisciplineIds(): number[];
|
|
34
|
+
|
|
35
|
+
canShowDisciplineIds(): boolean;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* English level requirements.
|
|
39
|
+
*
|
|
40
|
+
* @return IEnglishRequirements
|
|
41
|
+
*/
|
|
42
|
+
getEnglishRequirements(): IEnglishRequirements;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* GPA requirements
|
|
46
|
+
*
|
|
47
|
+
* @return IGPARequirement
|
|
48
|
+
*/
|
|
49
|
+
getGPA(): IGPARequirement;
|
|
50
|
+
|
|
51
|
+
canShowGPA(): boolean;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Id of the programme.
|
|
55
|
+
*
|
|
56
|
+
* @return number
|
|
57
|
+
*/
|
|
58
|
+
getId(): number;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Estimated living cost based on universities location.
|
|
62
|
+
*
|
|
63
|
+
* @return ILivingCost
|
|
64
|
+
*/
|
|
65
|
+
getLivingCost(): ILivingCost;
|
|
66
|
+
|
|
67
|
+
canShowLivingCost(): boolean;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Minimum required education level
|
|
71
|
+
*
|
|
72
|
+
* @return string | null
|
|
73
|
+
*/
|
|
74
|
+
getRequiredEducationalLevel(): string | null;
|
|
75
|
+
|
|
76
|
+
canShowRequiredEducationalLevel(): boolean;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The programmes tuition fees
|
|
80
|
+
*
|
|
81
|
+
* @return ITuitionFee[]
|
|
82
|
+
*/
|
|
83
|
+
getTuitionFees(): ITuitionFee[];
|
|
84
|
+
|
|
85
|
+
canShowTuitionFees(): boolean;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Amount of years required as work experience
|
|
89
|
+
*
|
|
90
|
+
* @return number
|
|
91
|
+
*/
|
|
92
|
+
getWorkExperienceYears(): number;
|
|
93
|
+
|
|
94
|
+
canShowWorkExperienceYears(): boolean;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Indicates whenever a programme is fully online or not
|
|
98
|
+
*
|
|
99
|
+
* @return boolean
|
|
100
|
+
*/
|
|
101
|
+
isFullyOnline(): boolean;
|
|
102
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ILivingCost {
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get the applicable currency.
|
|
5
|
+
*
|
|
6
|
+
* @return string
|
|
7
|
+
*/
|
|
8
|
+
getCurrency(): string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get the maximum living cost in the provided currency.
|
|
12
|
+
*
|
|
13
|
+
* @return number
|
|
14
|
+
*/
|
|
15
|
+
getMax(): number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Get the minimum living cost in the provided currency.
|
|
19
|
+
*
|
|
20
|
+
* @return number
|
|
21
|
+
*/
|
|
22
|
+
getMin(): number;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ICountry {
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get country iso code
|
|
5
|
+
*
|
|
6
|
+
* @return string
|
|
7
|
+
*/
|
|
8
|
+
getISOCode(): string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get country id
|
|
12
|
+
*
|
|
13
|
+
* @return number
|
|
14
|
+
*/
|
|
15
|
+
getId(): number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Get country name
|
|
19
|
+
*
|
|
20
|
+
* @return string
|
|
21
|
+
*/
|
|
22
|
+
getName(): string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export interface IEnglishRequirements {
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Required score for Cambridge english
|
|
5
|
+
*
|
|
6
|
+
* @return number
|
|
7
|
+
*/
|
|
8
|
+
getCambridgeEnglish(): number;
|
|
9
|
+
|
|
10
|
+
canShowCambridgeEnglish(): boolean;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Required score for Duolingo
|
|
14
|
+
*
|
|
15
|
+
* @return number
|
|
16
|
+
*/
|
|
17
|
+
getDuolingo(): number;
|
|
18
|
+
|
|
19
|
+
canShowDuolingo(): boolean;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Required score for IELTS tests
|
|
23
|
+
*
|
|
24
|
+
* @return number
|
|
25
|
+
*/
|
|
26
|
+
getIELTS(): number;
|
|
27
|
+
|
|
28
|
+
canShowIELTS(): boolean;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Required score for PTE
|
|
32
|
+
*
|
|
33
|
+
* @return number
|
|
34
|
+
*/
|
|
35
|
+
getPTE(): number;
|
|
36
|
+
|
|
37
|
+
canShowPTE(): boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Required score for TOEFL internet
|
|
41
|
+
*
|
|
42
|
+
* @return number
|
|
43
|
+
*/
|
|
44
|
+
getTOEFLInternet(): number;
|
|
45
|
+
|
|
46
|
+
canShowTOEFLInternet(): boolean;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Required score for TOEFL paper
|
|
50
|
+
*
|
|
51
|
+
* @return number
|
|
52
|
+
*/
|
|
53
|
+
getTOEFLPaper(): number;
|
|
54
|
+
|
|
55
|
+
canShowTOEFLPaper(): boolean;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Required score for OTE
|
|
59
|
+
*
|
|
60
|
+
* @return number
|
|
61
|
+
*/
|
|
62
|
+
getOte(): number;
|
|
63
|
+
|
|
64
|
+
canShowOte(): boolean;
|
|
65
|
+
|
|
66
|
+
}
|