@africanies/angular-web-sdk 0.1.4 → 0.1.5

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.
Files changed (46) hide show
  1. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/README.md +68 -0
  2. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/assets/brand/africanies-logo-mini.png +0 -0
  3. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/assets/brand/africanies-logo.png +0 -0
  4. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/assets/brand/africanies-logo.svg +5 -0
  5. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/assets/carriers/dhl.svg +7 -0
  6. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs +19375 -0
  7. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs.map +1 -0
  8. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/package.json +35 -0
  9. package/.nx/cache/14876618240301288353/dist/libs/africanies-ui/types/africanies-africanies-ui.d.ts +5490 -0
  10. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/README.md +46 -0
  11. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs +221 -0
  12. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs.map +1 -0
  13. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/package.json +35 -0
  14. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/tailwind-preset.cjs +253 -0
  15. package/.nx/cache/17626862048742598274/dist/libs/africanies-theme/types/africanies-africanies-theme.d.ts +166 -0
  16. package/.nx/cache/9040451482998546630/dist/libs/africanies-core/README.md +85 -0
  17. package/.nx/cache/9040451482998546630/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs +4511 -0
  18. package/.nx/cache/9040451482998546630/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs.map +1 -0
  19. package/.nx/cache/9040451482998546630/dist/libs/africanies-core/package.json +31 -0
  20. package/.nx/cache/9040451482998546630/dist/libs/africanies-core/types/africanies-africanies-core.d.ts +2741 -0
  21. package/.nx/cache/run.json +25 -25
  22. package/.nx/cache/terminalOutputs/13555699813138069787 +6 -0
  23. package/.nx/cache/terminalOutputs/14061940909886036014 +173 -0
  24. package/.nx/cache/terminalOutputs/14876618240301288353 +21 -0
  25. package/.nx/cache/terminalOutputs/17626862048742598274 +21 -0
  26. package/.nx/cache/terminalOutputs/7978448102466861029 +32 -0
  27. package/.nx/cache/terminalOutputs/9040451482998546630 +21 -0
  28. package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db +0 -0
  29. package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db-shm +0 -0
  30. package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db-wal +0 -0
  31. package/.nx/workspace-data/d/daemon.log +1518 -0
  32. package/.nx/workspace-data/d/server-process.json +2 -2
  33. package/.nx/workspace-data/file-map.json +3240 -3240
  34. package/.nx/workspace-data/nx_files.nxt +0 -0
  35. package/.nx/workspace-data/project-graph.json +2 -2
  36. package/apps/playground/src/app/app.routes.ts +15 -4
  37. package/apps/playground/src/app/app.ts +2 -2
  38. package/apps/playground/src/app/pages/home-page.ts +14 -14
  39. package/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs +8 -43
  40. package/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs.map +1 -1
  41. package/dist/libs/africanies-core/types/africanies-africanies-core.d.ts +6 -5
  42. package/dist/libs/africanies-ui/types/africanies-africanies-ui.d.ts +11 -11
  43. package/libs/africanies-core/src/lib/http/api-client.ts +4 -18
  44. package/libs/africanies-core/src/lib/http/is-retryable-get-error.ts +8 -4
  45. package/libs/africanies-core/src/lib/query/provide-africanies-query-defaults.ts +5 -6
  46. package/package.json +1 -1
Binary file
@@ -826,7 +826,7 @@
826
826
  "targetGroups": {},
827
827
  "js": {
828
828
  "packageName": "@africanies/angular-web-sdk",
829
- "packageVersion": "0.1.4",
829
+ "packageVersion": "0.1.5",
830
830
  "isInPackageManagerWorkspaces": true
831
831
  }
832
832
  },
@@ -42090,5 +42090,5 @@
42090
42090
  },
42091
42091
  "version": "6.0",
42092
42092
  "errors": [],
42093
- "computedAt": 1787928503397
42093
+ "computedAt": 1788261968389
42094
42094
  }
@@ -165,14 +165,25 @@ const appRoutes: Route[] = [
165
165
  loadComponent: () =>
166
166
  import('./pages/tokens-page').then((m) => m.TokensPage),
167
167
  },
168
+ // Temporarily blocked — restore loadComponent routes when re-enabling.
168
169
  {
169
170
  path: 'models',
170
- loadComponent: () =>
171
- import('./pages/models-page').then((m) => m.ModelsPage),
171
+ pathMatch: 'full',
172
+ redirectTo: 'overview',
172
173
  },
173
174
  {
174
175
  path: 'api',
175
- loadComponent: () =>
176
- import('./pages/api-page').then((m) => m.ApiPage),
176
+ pathMatch: 'full',
177
+ redirectTo: 'overview',
177
178
  },
179
+ // {
180
+ // path: 'models',
181
+ // loadComponent: () =>
182
+ // import('./pages/models-page').then((m) => m.ModelsPage),
183
+ // },
184
+ // {
185
+ // path: 'api',
186
+ // loadComponent: () =>
187
+ // import('./pages/api-page').then((m) => m.ApiPage),
188
+ // },
178
189
  ];
@@ -287,8 +287,8 @@ export class App {
287
287
  children: [
288
288
  { id: 'icons', label: 'Icons', routerLink: '/icons' },
289
289
  { id: 'tokens', label: 'Tokens', routerLink: '/tokens' },
290
- { id: 'models', label: 'Models', routerLink: '/models' },
291
- { id: 'api', label: 'SDK API', routerLink: '/api' },
290
+ // { id: 'models', label: 'Models', routerLink: '/models' },
291
+ // { id: 'api', label: 'SDK API', routerLink: '/api' },
292
292
  ],
293
293
  },
294
294
  {
@@ -239,20 +239,20 @@ export class HomePage {
239
239
  icon: 'palette',
240
240
  group: 'Foundation',
241
241
  },
242
- {
243
- path: '/models',
244
- title: 'Shared models',
245
- blurb: 'Field shapes from @africanies/africanies-models — types only.',
246
- icon: 'code',
247
- group: 'Foundation',
248
- },
249
- {
250
- path: '/api',
251
- title: 'SDK API',
252
- blurb: 'How to call services — ResourceId, paths, and usage snippets.',
253
- icon: 'globe',
254
- group: 'Foundation',
255
- },
242
+ // {
243
+ // path: '/models',
244
+ // title: 'Shared models',
245
+ // blurb: 'Field shapes from @africanies/africanies-models — types only.',
246
+ // icon: 'code',
247
+ // group: 'Foundation',
248
+ // },
249
+ // {
250
+ // path: '/api',
251
+ // title: 'SDK API',
252
+ // blurb: 'How to call services — ResourceId, paths, and usage snippets.',
253
+ // icon: 'globe',
254
+ // group: 'Foundation',
255
+ // },
256
256
  {
257
257
  path: '/lecture',
258
258
  title: 'Lecture',
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injector, signal, Injectable, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';
3
3
  import { SessionStorageService, AFRICANIES_SHIPPING_MODE_KEY, STORAGE_TOKEN, AFRICANIES_MODE_CONFIG_KEY, provideLocalStorage, AFRICANIES_ACCESS_TOKEN_KEY } from '@africanies/africanies-storage';
4
- import { of, retry, throwError, timer, timeout, map as map$1, tap as tap$1, catchError, finalize, firstValueFrom, forkJoin } from 'rxjs';
4
+ import { of, timeout, throwError, map as map$1, tap as tap$1, catchError, finalize, firstValueFrom, forkJoin } from 'rxjs';
5
5
  import { HttpErrorResponse, HttpContextToken, HttpContext, HttpClient, HttpHeaders, HttpParams, provideHttpClient, withInterceptors } from '@angular/common/http';
6
6
  import { DEFAULT_PAGE_SIZE, NOTIFICATION_PAGE_SIZE } from '@africanies/africanies-models';
7
7
  import { take, tap, map } from 'rxjs/operators';
@@ -687,31 +687,6 @@ class HttpResponseCache {
687
687
  }
688
688
  }
689
689
 
690
- /**
691
- * Whether a failed GET should be retried by {@link ApiClient}.
692
- *
693
- * Retries transient failures only (network blips, timeouts, 408/429, 5xx).
694
- * Auth and other 4xx errors fail fast — retrying 401 does not help and causes
695
- * duplicate requests + toasts.
696
- * @param err
697
- */
698
- function isRetryableGetError(err) {
699
- if (err instanceof HttpErrorResponse) {
700
- if (err.status === 0) {
701
- return true;
702
- }
703
- if (err.status === 408 || err.status === 429) {
704
- return true;
705
- }
706
- if (err.status >= 500) {
707
- return true;
708
- }
709
- return false;
710
- }
711
- // Non-HTTP failures (e.g. timeout operator) may still be transient.
712
- return true;
713
- }
714
-
715
690
  /**
716
691
  * Per-request shipping-mode override for {@link shipmentModeInterceptor}.
717
692
  *
@@ -979,7 +954,8 @@ function mapResourcePayload(id, raw, mapOne, mapMany) {
979
954
  * - HTTP failures rethrown as `Error` whose `.message` is already
980
955
  * user-facing ({@link formatApiErrorMessage}) — consumers do not need to
981
956
  * parse `HttpErrorResponse` bodies
982
- * - Exponential-backoff retry (max 1) for **GET only**
957
+ * - **No automatic retry** fail fast so UIs can show Select / table /
958
+ * error-state Retry instead of a stuck loading spinner
983
959
  * - Optional per-GET TTL cache via `cacheTtlMs`
984
960
  *
985
961
  * @example
@@ -1121,18 +1097,8 @@ class ApiClient {
1121
1097
  req$ = this.http.delete(url, hasBody ? { ...httpOpts, body } : httpOpts);
1122
1098
  break;
1123
1099
  }
1124
- // Retry only idempotent GETs on transient failures never replay 401/404 etc.
1125
- if (method === 'GET') {
1126
- req$ = req$.pipe(retry({
1127
- count: 1,
1128
- delay: (err, retryCount) => {
1129
- if (!isRetryableGetError(err)) {
1130
- return throwError(() => err);
1131
- }
1132
- return timer(2 ** (retryCount - 1) * 1000);
1133
- },
1134
- }));
1135
- }
1100
+ // No automatic GET retry admin shells own Retry via UI
1101
+ // (`africanies-select` showRetry, table error→refreshClick, error-state).
1136
1102
  if (this.config.timeout != null) {
1137
1103
  req$ = req$.pipe(timeout({
1138
1104
  each: this.config.timeout,
@@ -1808,8 +1774,8 @@ function listFetchKind(options) {
1808
1774
  * (no caret/tilde): TanStack marks the Angular adapter experimental and
1809
1775
  * breaking changes land without major bumps.
1810
1776
  *
1811
- * Retry/backoff here mirrors {@link ApiClient}'s GET retry (max 3,
1812
- * exponential) so HTTP-layer and query-layer behavior stay aligned.
1777
+ * Query retries default to **0** to match {@link ApiClient} (fail fast;
1778
+ * screens use manual Retry). Apps can override per `QueryClient` if needed.
1813
1779
  */
1814
1780
  /**
1815
1781
  * Factory for TanStack `QueryClient` `defaultOptions`.
@@ -1859,8 +1825,7 @@ function createAfricaniesQueryClientDefaults() {
1859
1825
  queries: {
1860
1826
  staleTime: 60_000,
1861
1827
  gcTime: 5 * 60_000,
1862
- retry: 3,
1863
- // attemptIndex is 0-based in TanStack; match 1s, 2s, 4s style backoff.
1828
+ retry: 0,
1864
1829
  retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30_000),
1865
1830
  },
1866
1831
  mutations: {