@prodigio-io/sdk 2.1.7 → 2.1.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.
package/dist/index.js CHANGED
@@ -347,13 +347,17 @@ var _Prodigio = class _Prodigio {
347
347
  const hostname = window.location.hostname;
348
348
  const domainAllowed = bestToken ? bestToken.allowedDomains.length === 0 || bestToken.allowedDomains.includes(hostname) : true;
349
349
  const isExempt = bestToken !== null && !bestToken.badgeRequired && domainAllowed;
350
- let careersPath = null;
350
+ let configState = { status: "loading" };
351
351
  function reconcile() {
352
352
  cancelPending();
353
353
  if (isExempt) {
354
354
  removeBadge();
355
355
  return;
356
356
  }
357
+ if (configState.status === "loading" || configState.status === "error") {
358
+ return;
359
+ }
360
+ const { careersPath } = configState;
357
361
  if (!careersPath) {
358
362
  if (bestToken && cached) {
359
363
  const cacheAge = Date.now() - cached.cachedAt;
@@ -390,12 +394,16 @@ var _Prodigio = class _Prodigio {
390
394
  installRouteWatcher();
391
395
  _routeChangeCallbacks.push(reconcile);
392
396
  setTimeout(async () => {
393
- var _a2, _b;
397
+ var _a2, _b, _c;
394
398
  try {
395
399
  const res = await fetch(`${baseUrl}/api/sdk/config?key=${encodeURIComponent(key)}`);
396
400
  if (!res.ok) return;
397
401
  const data = await res.json();
398
- if (data.careersPath !== void 0) careersPath = data.careersPath;
402
+ configState = {
403
+ status: "loaded",
404
+ careersPath: (_a2 = data.careersPath) != null ? _a2 : null,
405
+ badgeRequired: data.badgeRequired
406
+ };
399
407
  if (data.badgeRequired) {
400
408
  reconcile();
401
409
  return;
@@ -403,13 +411,14 @@ var _Prodigio = class _Prodigio {
403
411
  if (data.badgeToken) {
404
412
  const refreshedClaims = await verifyBadgeToken(data.badgeToken);
405
413
  if (refreshedClaims && !refreshedClaims.badgeRequired) {
406
- cacheToken(key, data.badgeToken, (_a2 = data.badgeExemptUntil) != null ? _a2 : "", (_b = data.configVersion) != null ? _b : 1);
414
+ cacheToken(key, data.badgeToken, (_b = data.badgeExemptUntil) != null ? _b : "", (_c = data.configVersion) != null ? _c : 1);
407
415
  removeBadge();
408
416
  return;
409
417
  }
410
418
  }
411
419
  reconcile();
412
420
  } catch {
421
+ configState = { status: "error" };
413
422
  }
414
423
  }, 0);
415
424
  }
package/dist/index.mjs CHANGED
@@ -321,13 +321,17 @@ var _Prodigio = class _Prodigio {
321
321
  const hostname = window.location.hostname;
322
322
  const domainAllowed = bestToken ? bestToken.allowedDomains.length === 0 || bestToken.allowedDomains.includes(hostname) : true;
323
323
  const isExempt = bestToken !== null && !bestToken.badgeRequired && domainAllowed;
324
- let careersPath = null;
324
+ let configState = { status: "loading" };
325
325
  function reconcile() {
326
326
  cancelPending();
327
327
  if (isExempt) {
328
328
  removeBadge();
329
329
  return;
330
330
  }
331
+ if (configState.status === "loading" || configState.status === "error") {
332
+ return;
333
+ }
334
+ const { careersPath } = configState;
331
335
  if (!careersPath) {
332
336
  if (bestToken && cached) {
333
337
  const cacheAge = Date.now() - cached.cachedAt;
@@ -364,12 +368,16 @@ var _Prodigio = class _Prodigio {
364
368
  installRouteWatcher();
365
369
  _routeChangeCallbacks.push(reconcile);
366
370
  setTimeout(async () => {
367
- var _a2, _b;
371
+ var _a2, _b, _c;
368
372
  try {
369
373
  const res = await fetch(`${baseUrl}/api/sdk/config?key=${encodeURIComponent(key)}`);
370
374
  if (!res.ok) return;
371
375
  const data = await res.json();
372
- if (data.careersPath !== void 0) careersPath = data.careersPath;
376
+ configState = {
377
+ status: "loaded",
378
+ careersPath: (_a2 = data.careersPath) != null ? _a2 : null,
379
+ badgeRequired: data.badgeRequired
380
+ };
373
381
  if (data.badgeRequired) {
374
382
  reconcile();
375
383
  return;
@@ -377,13 +385,14 @@ var _Prodigio = class _Prodigio {
377
385
  if (data.badgeToken) {
378
386
  const refreshedClaims = await verifyBadgeToken(data.badgeToken);
379
387
  if (refreshedClaims && !refreshedClaims.badgeRequired) {
380
- cacheToken(key, data.badgeToken, (_a2 = data.badgeExemptUntil) != null ? _a2 : "", (_b = data.configVersion) != null ? _b : 1);
388
+ cacheToken(key, data.badgeToken, (_b = data.badgeExemptUntil) != null ? _b : "", (_c = data.configVersion) != null ? _c : 1);
381
389
  removeBadge();
382
390
  return;
383
391
  }
384
392
  }
385
393
  reconcile();
386
394
  } catch {
395
+ configState = { status: "error" };
387
396
  }
388
397
  }, 0);
389
398
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prodigio-io/sdk",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "description": "Official JavaScript SDK for the Prodigio hiring API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",