cocoda-sdk 3.4.6 → 3.4.8

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.
@@ -38,6 +38,7 @@ __export(src_exports, {
38
38
  LocalMappingsProvider: () => LocalMappingsProvider,
39
39
  MappingsApiProvider: () => MappingsApiProvider,
40
40
  MyCoReProvider: () => MyCoReProvider,
41
+ NoTApiProvider: () => NoTApiProvider,
41
42
  OccurrencesApiProvider: () => OccurrencesApiProvider,
42
43
  ReconciliationApiProvider: () => ReconciliationApiProvider,
43
44
  SkohubProvider: () => SkohubProvider,
@@ -121,7 +122,7 @@ var InvalidProviderError = class extends CDKError {
121
122
  };
122
123
 
123
124
  // src/lib/CocodaSDK.js
124
- var import_axios4 = __toESM(require("axios"), 1);
125
+ var import_axios5 = __toESM(require("axios"), 1);
125
126
 
126
127
  // src/utils/lodash.js
127
128
  var import_get = __toESM(require("lodash/get.js"), 1);
@@ -141,7 +142,7 @@ var import_omit = __toESM(require("lodash/omit.js"), 1);
141
142
  var import_concat = __toESM(require("lodash/concat.js"), 1);
142
143
 
143
144
  // src/lib/CocodaSDK.js
144
- var import_jskos_tools13 = __toESM(require("jskos-tools"), 1);
145
+ var import_jskos_tools14 = __toESM(require("jskos-tools"), 1);
145
146
 
146
147
  // src/providers/index.js
147
148
  var providers_exports = {};
@@ -154,6 +155,7 @@ __export(providers_exports, {
154
155
  LocalMappingsProvider: () => LocalMappingsProvider,
155
156
  MappingsApiProvider: () => MappingsApiProvider,
156
157
  MyCoReProvider: () => MyCoReProvider,
158
+ NoTApiProvider: () => NoTApiProvider,
157
159
  OccurrencesApiProvider: () => OccurrencesApiProvider,
158
160
  ReconciliationApiProvider: () => ReconciliationApiProvider,
159
161
  SkohubProvider: () => SkohubProvider,
@@ -423,8 +425,9 @@ var BaseProvider = class {
423
425
  const statusCode = import_get.default(error, "response.status");
424
426
  if (this._retryConfig.methods.includes(method) && this._retryConfig.statusCodes.includes(statusCode) && count < this._retryConfig.count) {
425
427
  error.config._retryCount = count + 1;
426
- if (error.config.data)
428
+ if (error.config.data) {
427
429
  error.config.data = JSON.parse(error.config.data);
430
+ }
428
431
  return new Promise((resolve, reject) => {
429
432
  setTimeout(() => {
430
433
  this.axios(error.config).then(resolve).catch(reject);
@@ -2549,8 +2552,9 @@ var LabelSearchSuggestionProvider = class extends BaseProvider {
2549
2552
  fallbackToUri: false,
2550
2553
  language
2551
2554
  });
2552
- if (!label2)
2555
+ if (!label2) {
2553
2556
  continue;
2557
+ }
2554
2558
  results = await this._getResults({ ...config, label: label2, targetScheme, limit });
2555
2559
  if (results.length) {
2556
2560
  break;
@@ -3645,6 +3649,9 @@ function toJSKOS(data3) {
3645
3649
  if (data3.variantName) {
3646
3650
  concept.altLabel = { de: data3.variantName };
3647
3651
  }
3652
+ if (data3.usingInstructions?.length) {
3653
+ concept.scopeNote = { de: data3.usingInstructions };
3654
+ }
3648
3655
  concept.type = data3.type.map((type) => gndTypeScheme.uriFromNotation(type)).filter(Boolean);
3649
3656
  concept.broader = [];
3650
3657
  broaderProps.forEach((prop) => {
@@ -3793,6 +3800,7 @@ var LobidApiProvider = class extends BaseProvider {
3793
3800
  }
3794
3801
  };
3795
3802
  LobidApiProvider.providerName = "LobidApi";
3803
+ LobidApiProvider.providerType = "http://bartoc.org/api-type/lobid-gnd";
3796
3804
 
3797
3805
  // src/providers/mycore-provider.js
3798
3806
  var import_jskos_tools12 = __toESM(require("jskos-tools"), 1);
@@ -3895,8 +3903,9 @@ var MyCoReProvider = class extends BaseProvider {
3895
3903
  * Helper function that replaces `narrower` key with [null] if it has values. Use this before returning concepts.
3896
3904
  */
3897
3905
  _removeNarrower(concept) {
3898
- if (!concept)
3906
+ if (!concept) {
3899
3907
  return concept;
3908
+ }
3900
3909
  return Object.assign({}, concept, { narrower: concept.narrower && concept.narrower.length ? [null] : [] });
3901
3910
  }
3902
3911
  /**
@@ -4047,6 +4056,148 @@ var MyCoReProvider = class extends BaseProvider {
4047
4056
  MyCoReProvider.providerName = "MyCoRe";
4048
4057
  MyCoReProvider.providerType = "http://bartoc.org/api-type/mycore";
4049
4058
 
4059
+ // src/providers/not-api-provider.js
4060
+ var import_axios4 = __toESM(require("axios"), 1);
4061
+ var import_jskos_tools13 = __toESM(require("jskos-tools"), 1);
4062
+ var cache3 = {
4063
+ schemes: []
4064
+ };
4065
+ var NoTApiProvider = class extends BaseProvider {
4066
+ _prepare() {
4067
+ this.has.schemes = true;
4068
+ this.has.top = false;
4069
+ this.has.data = true;
4070
+ this.has.concepts = true;
4071
+ this.has.narrower = false;
4072
+ this.has.ancestors = false;
4073
+ this.has.suggest = true;
4074
+ this.has.search = true;
4075
+ listOfCapabilities.filter((c) => !this.has[c]).forEach((c) => {
4076
+ this.has[c] = false;
4077
+ });
4078
+ }
4079
+ /**
4080
+ * Used by `registryForScheme` (see src/lib/CocodaSDK.js) to determine a provider config for a concept schceme.
4081
+ *
4082
+ * @param {Object} options
4083
+ * @param {Object} options.url API URL for server
4084
+ * @returns {Object} provider configuration
4085
+ */
4086
+ static _registryConfigForBartocApiConfig({ url } = {}) {
4087
+ if (!url) {
4088
+ return null;
4089
+ }
4090
+ return {
4091
+ api: url
4092
+ };
4093
+ }
4094
+ async getSchemes() {
4095
+ if (!cache3.schemes.length) {
4096
+ const result = await import_axios4.default.post(this._api.api, {
4097
+ query: "query sources { sources { name uri description alternateName } }",
4098
+ operationName: "sources"
4099
+ });
4100
+ const schemes = result?.data?.data?.sources || [];
4101
+ if (schemes.length) {
4102
+ cache3.schemes = schemes.map((scheme) => {
4103
+ const jskos15 = {
4104
+ uri: scheme.uri,
4105
+ prefLabel: { und: scheme.name }
4106
+ };
4107
+ if (scheme.desciption) {
4108
+ jskos15.description = { und: [scheme.description] };
4109
+ }
4110
+ if (scheme.alternateName) {
4111
+ jskos15.notation = [scheme.alternateName];
4112
+ }
4113
+ return jskos15;
4114
+ });
4115
+ } else {
4116
+ return [];
4117
+ }
4118
+ }
4119
+ return cache3.schemes;
4120
+ }
4121
+ // async getTop() {
4122
+ // }
4123
+ async getConcepts({ concepts }) {
4124
+ if (!concepts) {
4125
+ throw new InvalidOrMissingParameterError({ parameter: "concepts" });
4126
+ }
4127
+ if (!Array.isArray(concepts)) {
4128
+ concepts = [concepts];
4129
+ }
4130
+ const result = await import_axios4.default.post(this._api.api, {
4131
+ query: `query { lookup( uris: [${concepts.map((c) => `"${c.uri}"`)}], ) { uri source { ... on Source { uri } } result { ... on Term { uri prefLabel scopeNote altLabel broader { uri } narrower { uri } } } } }`
4132
+ });
4133
+ return (result.data?.data?.lookup || []).map((entry) => {
4134
+ const concept = {
4135
+ uri: entry.uri,
4136
+ inScheme: [cache3.schemes.find((scheme) => import_jskos_tools13.default.compare(scheme, { uri: entry.source.uri }))]
4137
+ };
4138
+ if (entry.result?.prefLabel?.[0]) {
4139
+ concept.prefLabel = { und: entry.result.prefLabel[0] };
4140
+ }
4141
+ if (entry.result?.altLabel?.[0]) {
4142
+ concept.altLabel = { und: entry.result.altLabel };
4143
+ }
4144
+ if (entry.result?.scopeNote?.[0]) {
4145
+ concept.scopeNote = { und: entry.result.scopeNote };
4146
+ }
4147
+ if (entry.result?.broader?.length) {
4148
+ concept.broader = entry.result.broader;
4149
+ }
4150
+ if (entry.result?.narrower?.length) {
4151
+ concept.narrower = entry.result.narrower;
4152
+ }
4153
+ return concept;
4154
+ });
4155
+ }
4156
+ // async getNarrower({ concept }) {
4157
+ // }
4158
+ // async getAncestors({ concept }) {
4159
+ // }
4160
+ async suggest(config) {
4161
+ const search = config.search;
4162
+ const results = await this.search(config);
4163
+ return [
4164
+ search,
4165
+ results.map((r) => import_jskos_tools13.default.prefLabel(r, { fallbackToUri: false })),
4166
+ [],
4167
+ results.map((r) => r.uri)
4168
+ ];
4169
+ }
4170
+ async search({ scheme, search }) {
4171
+ if (!search) {
4172
+ throw new InvalidOrMissingParameterError({ parameter: "search" });
4173
+ }
4174
+ if (!scheme || !import_jskos_tools13.default.isContainedIn(scheme, cache3.schemes)) {
4175
+ throw new InvalidOrMissingParameterError({ parameter: "scheme" });
4176
+ }
4177
+ const result = await import_axios4.default.post(this._api.api, {
4178
+ query: `query { terms( sources: ["${scheme.uri}"] query: "${search}" ) { source { uri } result { ... on Terms { terms { uri prefLabel scopeNote } } } }}`
4179
+ });
4180
+ return (result.data?.data?.terms?.[0]?.result?.terms || []).map((concept) => {
4181
+ const jskos15 = {
4182
+ uri: concept.uri,
4183
+ inScheme: [scheme]
4184
+ };
4185
+ if (concept.prefLabel?.[0]) {
4186
+ jskos15.prefLabel = { und: concept.prefLabel[0] };
4187
+ }
4188
+ if (concept.altLabel?.[0]) {
4189
+ jskos15.altLabel = { und: concept.altLabel };
4190
+ }
4191
+ if (concept.scopeNote?.[0]) {
4192
+ jskos15.scopeNote = { und: concept.scopeNote[0] };
4193
+ }
4194
+ return jskos15;
4195
+ });
4196
+ }
4197
+ };
4198
+ NoTApiProvider.providerName = "NoTApi";
4199
+ NoTApiProvider.providerType = "http://bartoc.org/api-type/noterms";
4200
+
4050
4201
  // src/lib/CocodaSDK.js
4051
4202
  var providers = {
4052
4203
  [BaseProvider.providerName]: BaseProvider,
@@ -4075,7 +4226,7 @@ var CocodaSDK = class {
4075
4226
  */
4076
4227
  constructor(config) {
4077
4228
  this.config = config;
4078
- this.axios = import_axios4.default.create();
4229
+ this.axios = import_axios5.default.create();
4079
4230
  }
4080
4231
  /**
4081
4232
  * Method to set the configuration.
@@ -4331,7 +4482,7 @@ var CocodaSDK = class {
4331
4482
  scheme._registry = registry;
4332
4483
  scheme.__DETAILSLOADED__ = 1;
4333
4484
  scheme.type = scheme.type || ["http://www.w3.org/2004/02/skos/core#ConceptScheme"];
4334
- let otherScheme = schemes.find((s) => import_jskos_tools13.default.compare(s, scheme)), prio, otherPrio, override = false;
4485
+ let otherScheme = schemes.find((s) => import_jskos_tools14.default.compare(s, scheme)), prio, otherPrio, override = false;
4335
4486
  if (otherScheme) {
4336
4487
  prio = this.config.registries.indexOf(registry);
4337
4488
  if (prio != -1) {
@@ -4353,19 +4504,19 @@ var CocodaSDK = class {
4353
4504
  }
4354
4505
  if (!otherScheme || override) {
4355
4506
  if (override) {
4356
- let otherSchemeIndex = schemes.findIndex((s) => import_jskos_tools13.default.compare(s, otherScheme));
4507
+ let otherSchemeIndex = schemes.findIndex((s) => import_jskos_tools14.default.compare(s, otherScheme));
4357
4508
  if (otherSchemeIndex != -1) {
4358
4509
  schemes.splice(otherSchemeIndex, 1);
4359
4510
  }
4360
- scheme = import_jskos_tools13.default.merge(scheme, import_omit.default(otherScheme, ["concepts", "topConcepts"]), { mergeUris: true, skipPaths: ["_registry"] });
4511
+ scheme = import_jskos_tools14.default.merge(scheme, import_omit.default(otherScheme, ["concepts", "topConcepts"]), { mergeUris: true, skipPaths: ["_registry"] });
4361
4512
  }
4362
4513
  scheme._registry = registry;
4363
4514
  schemes.push(scheme);
4364
4515
  } else {
4365
- const index = schemes.findIndex((s) => import_jskos_tools13.default.compare(s, scheme));
4516
+ const index = schemes.findIndex((s) => import_jskos_tools14.default.compare(s, scheme));
4366
4517
  if (index != -1) {
4367
4518
  const otherSchemeRegistry = schemes[index]._registry;
4368
- schemes[index] = import_jskos_tools13.default.merge(schemes[index], import_omit.default(scheme, ["concepts", "topConcepts"]), { mergeUris: true, skipPaths: ["_registry"] });
4519
+ schemes[index] = import_jskos_tools14.default.merge(schemes[index], import_omit.default(scheme, ["concepts", "topConcepts"]), { mergeUris: true, skipPaths: ["_registry"] });
4369
4520
  schemes[index]._registry = otherSchemeRegistry;
4370
4521
  }
4371
4522
  }
@@ -4387,7 +4538,7 @@ var CocodaSDK = class {
4387
4538
  scheme._registry = newRegistry;
4388
4539
  }
4389
4540
  });
4390
- return import_jskos_tools13.default.sortSchemes(schemes.filter(Boolean));
4541
+ return import_jskos_tools14.default.sortSchemes(schemes.filter(Boolean));
4391
4542
  }
4392
4543
  registryForScheme(scheme) {
4393
4544
  let registry = scheme._registry;
@@ -4398,7 +4549,7 @@ var CocodaSDK = class {
4398
4549
  const url = config.url;
4399
4550
  if (registryCache[url]) {
4400
4551
  const registry2 = registryCache[url];
4401
- if (Array.isArray(registry2._jskos.schemes) && !import_jskos_tools13.default.isContainedIn(scheme, registry2._jskos.schemes)) {
4552
+ if (Array.isArray(registry2._jskos.schemes) && !import_jskos_tools14.default.isContainedIn(scheme, registry2._jskos.schemes)) {
4402
4553
  registry2._jskos.schemes.push(scheme);
4403
4554
  }
4404
4555
  return registry2;
@@ -4449,6 +4600,7 @@ function addAllProviders(_cdk) {
4449
4600
  LocalMappingsProvider,
4450
4601
  MappingsApiProvider,
4451
4602
  MyCoReProvider,
4603
+ NoTApiProvider,
4452
4604
  OccurrencesApiProvider,
4453
4605
  ReconciliationApiProvider,
4454
4606
  SkohubProvider,