@viu/emporix-sdk 2.38.1 → 3.1.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +1 -1
  3. package/dist/availability.d.cts +1 -1
  4. package/dist/availability.d.ts +1 -1
  5. package/dist/cart.d.cts +1 -1
  6. package/dist/cart.d.ts +1 -1
  7. package/dist/category.d.cts +1 -1
  8. package/dist/category.d.ts +1 -1
  9. package/dist/checkout.d.cts +1 -1
  10. package/dist/checkout.d.ts +1 -1
  11. package/dist/companies.d.cts +1 -1
  12. package/dist/companies.d.ts +1 -1
  13. package/dist/contacts.d.cts +1 -1
  14. package/dist/contacts.d.ts +1 -1
  15. package/dist/{context-D64-B1Rz.d.cts → context-CcU93eAL.d.cts} +1 -1
  16. package/dist/{context-D64-B1Rz.d.ts → context-CcU93eAL.d.ts} +1 -1
  17. package/dist/{customer-groups-B6xrwf59.d.cts → customer-groups-Tt9VIA-m.d.cts} +1 -1
  18. package/dist/{customer-groups-YZg22bFc.d.ts → customer-groups-wmO0f-vj.d.ts} +1 -1
  19. package/dist/customer-groups.d.cts +2 -2
  20. package/dist/customer-groups.d.ts +2 -2
  21. package/dist/customer.d.cts +1 -1
  22. package/dist/customer.d.ts +1 -1
  23. package/dist/index.cjs +353 -144
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +158 -54
  26. package/dist/index.d.ts +158 -54
  27. package/dist/index.js +344 -144
  28. package/dist/index.js.map +1 -1
  29. package/dist/locations.d.cts +1 -1
  30. package/dist/locations.d.ts +1 -1
  31. package/dist/media.d.cts +1 -1
  32. package/dist/media.d.ts +1 -1
  33. package/dist/orders.d.cts +1 -1
  34. package/dist/orders.d.ts +1 -1
  35. package/dist/payment.d.cts +1 -1
  36. package/dist/payment.d.ts +1 -1
  37. package/dist/price.d.cts +1 -1
  38. package/dist/price.d.ts +1 -1
  39. package/dist/product.d.cts +1 -1
  40. package/dist/product.d.ts +1 -1
  41. package/dist/segment.d.cts +1 -1
  42. package/dist/segment.d.ts +1 -1
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,74 @@
1
1
  # @viu/emporix-sdk
2
2
 
3
+ ## 3.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#301](https://github.com/viuteam/emporix-sdk/pull/301) [`edf1e03`](https://github.com/viuteam/emporix-sdk/commit/edf1e03a3fc95c47023016de0ffeb1c12a9dd46e) Thanks [@amnael1](https://github.com/amnael1)! - feat(sdk): move the query-key builder, customer-session store and browser storage backends into the core SDK
8
+
9
+ `emporixKey`, `siteMeta`, `getCustomerSessionStore`, `createListenerSet` and the
10
+ browser storage backends (`createMemoryStorage`, `createLocalStorage`,
11
+ `createSessionStorage`, `createCookieStorage`, `fromWebStorage`) are now defined
12
+ in `@viu/emporix-sdk` and re-exported from `@viu/emporix-sdk-react`.
13
+
14
+ **No breaking change and no behaviour change.** Every existing import keeps
15
+ working, and each moved symbol is the same object through both paths — asserted
16
+ by identity, not deep equality, in `tests/agnostic-single-source.test.ts`,
17
+ because a duplicated implementation would pass a `toEqual` check and then drift.
18
+ The React suite passes unchanged: every file it touched became a re-export of
19
+ the same object.
20
+
21
+ This is the third instance of a move this repo has already made twice, for the
22
+ same reason: `STORAGE_KEYS` and `EmporixStorage` went down so
23
+ `@viu/emporix-sdk-next` could stop depending on the React bindings. These go
24
+ down so an Angular binding can do the same. A cache-key builder duplicated per
25
+ framework agrees on the day it is written and splits every cache entry in half
26
+ thereafter.
27
+
28
+ **The SDK stays DOM-free at the type level.** It compiles with `lib: ["ES2022"]`
29
+ and no `"DOM"`, which is what keeps it runnable on Node, edge runtimes and
30
+ workers. Rather than switch that guard off for all ~60 services to satisfy one
31
+ file, `core/browser-storage.ts` reaches `localStorage`, `sessionStorage`,
32
+ `document` and `location` through a narrowed `globalThis` — the pattern the
33
+ localStorage availability check already used before the move.
34
+
35
+ `scripts/check-treeshake.mjs` now also probes for `localStorage` and
36
+ `document.cookie`, so a Node or edge consumer that never imports a browser
37
+ backend provably does not pay for one. A `createEmporixClient`-only bundle is
38
+ 29.1 KB, unchanged by this move.
39
+
40
+ ## 3.0.0
41
+
42
+ ### Major Changes
43
+
44
+ - [#302](https://github.com/viuteam/emporix-sdk/pull/302) [`148e09a`](https://github.com/viuteam/emporix-sdk/commit/148e09a687ad1a33d2451e383527245e2c10333d) Thanks [@amnael1](https://github.com/amnael1)! - feat(sdk): remove the SEPA Export service — upstream End of Life
45
+
46
+ **Breaking: `client.sepaExport` and every `Sepa*` type are gone.**
47
+
48
+ Emporix retired the SEPA Export Service. It was deprecated on 2026-05-25 with
49
+ removal announced for 2026-08-24, and on that date the endpoints and the API
50
+ reference were both taken down — see the
51
+ [Emporix changelog](https://developer.emporix.io/changelog). The service's
52
+ `@deprecated` marker in this SDK already carried that removal date.
53
+
54
+ Nothing here could keep working: `GET /sepa-export/{tenant}/files/{id}`,
55
+ `GET /sepa-export/{tenant}/jobs` and `POST /sepa-export/{tenant}/jobs` no longer
56
+ exist. Keeping `client.sepaExport` would have shipped a facade that only ever
57
+ answers 404 while looking like a working API, which is worse than removing it.
58
+
59
+ Removed: the `sepaExport` client property, `SepaExportService`, its input and
60
+ result types, the generated types, the vendored spec, the `"sepa-export"` logger
61
+ channel and `docs/sepa-export.md`.
62
+
63
+ **If you used it:** there is no replacement in the Emporix API. Export
64
+ functionality has to come from somewhere other than this service.
65
+
66
+ This also unblocks the `Emporix API Sync` workflow, which had been failing on
67
+ every run since the takedown — `fetch-specs` requests each vendored spec and
68
+ throws on a non-200, so one 404 stopped the whole sync. That fail-fast is
69
+ deliberate and stays: a silently skipped spec would regenerate types without a
70
+ service and nobody would notice.
71
+
3
72
  ## 2.38.1
4
73
 
5
74
  ### Patch Changes
package/README.md CHANGED
@@ -65,7 +65,7 @@ property on the `EmporixClient` instance:
65
65
  | Cart & checkout | `carts`, `checkout`, `payments`, `coupons`, `taxes`, `shipping`, `fees` |
66
66
  | Orders & fulfilment | `orders`, `salesOrders`, `quotes`, `invoices`, `returns`, `pickPack`, `availability`, `indexing` |
67
67
  | Customers & B2B | `customers`, `customerAdmin`, `companies`, `contacts`, `locations`, `customerGroups`, `approvals`, `rewardPoints`, `segments`, `iam` |
68
- | Platform & config | `sites`, `sessionContext`, `tenantConfig`, `clientConfig`, `media`, `schemas`, `webhooks`, `sequentialIds`, `units`, `countries`, `currencies`, `vendors`, `shoppingLists`, `sepaExport`, `cloudFunctions`, `ai`, `ragIndexer`, `imports` |
68
+ | Platform & config | `sites`, `sessionContext`, `tenantConfig`, `clientConfig`, `media`, `schemas`, `webhooks`, `sequentialIds`, `units`, `countries`, `currencies`, `vendors`, `shoppingLists`, `cloudFunctions`, `ai`, `ragIndexer`, `imports` |
69
69
 
70
70
  The sections below highlight the most-used services; per-service guides live in
71
71
  [`../../docs/`](../../docs).
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-CcU93eAL.cjs';
2
2
 
3
3
  type AvailabilityDto = {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-CcU93eAL.js';
2
2
 
3
3
  type AvailabilityDto = {
4
4
  /**
package/dist/cart.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
 
3
3
  /**
4
4
  * Access control identifier that determines who can view or manage the cart.
package/dist/cart.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.js';
2
2
 
3
3
  /**
4
4
  * Access control identifier that determines who can view or manage the cart.
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-CcU93eAL.cjs';
2
2
  import { a as QueryFor } from './query-mLQs2WFr.cjs';
3
3
  import { Product } from './product.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext, P as PaginatedItems } from './context-CcU93eAL.js';
2
2
  import { a as QueryFor } from './query-mLQs2WFr.js';
3
3
  import { Product } from './product.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
 
3
3
  /**
4
4
  * Information about the customer's address.
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.js';
2
2
 
3
3
  /**
4
4
  * Information about the customer's address.
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
  import { L as LegalEntity, e as LegalEntityCreate, f as LegalEntityUpdate } from './types.gen-fWB4nrso.cjs';
3
3
  export { A as AccountLimit, d as CustomerGroup, g as LegalInfo } from './types.gen-fWB4nrso.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.js';
2
2
  import { L as LegalEntity, e as LegalEntityCreate, f as LegalEntityUpdate } from './types.gen-fWB4nrso.js';
3
3
  export { A as AccountLimit, d as CustomerGroup, g as LegalInfo } from './types.gen-fWB4nrso.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
  import { C as ContactAssignment, a as ContactAssignmentCreate, b as ContactAssignmentUpdate } from './types.gen-fWB4nrso.cjs';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.js';
2
2
  import { C as ContactAssignment, a as ContactAssignmentCreate, b as ContactAssignmentUpdate } from './types.gen-fWB4nrso.js';
3
3
 
4
4
  /**
@@ -3,7 +3,7 @@ type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "silent";
3
3
  /** Numeric ordering used for fast comparison. */
4
4
  declare const LEVEL: Record<LogLevel, number>;
5
5
  /** Services that bind their own logger and are independently level-controllable. */
6
- type ServiceName = "customer" | "product" | "category" | "cart" | "checkout" | "payment" | "price" | "media" | "segment" | "site" | "session-context" | "customer-management" | "iam" | "orders" | "sales-orders" | "availability" | "configuration" | "shopping-list" | "ai-rag-indexer" | "sequential-id" | "fee" | "webhook" | "schema" | "ai" | "tax" | "coupon" | "reward-points" | "brand" | "label" | "country" | "currency" | "shipping" | "returns" | "sepa-export" | "indexing" | "import" | "unit-handling" | "catalog" | "vendor" | "pick-pack" | "customer-admin" | "approval" | "invoice" | "quote" | "cloud-functions" | "http" | "auth";
6
+ type ServiceName = "customer" | "product" | "category" | "cart" | "checkout" | "payment" | "price" | "media" | "segment" | "site" | "session-context" | "customer-management" | "iam" | "orders" | "sales-orders" | "availability" | "configuration" | "shopping-list" | "ai-rag-indexer" | "sequential-id" | "fee" | "webhook" | "schema" | "ai" | "tax" | "coupon" | "reward-points" | "brand" | "label" | "country" | "currency" | "shipping" | "returns" | "indexing" | "import" | "unit-handling" | "catalog" | "vendor" | "pick-pack" | "customer-admin" | "approval" | "invoice" | "quote" | "cloud-functions" | "http" | "auth";
7
7
  /** Arbitrary structured fields attached to a log line. */
8
8
  interface LogFields {
9
9
  [key: string]: unknown;
@@ -3,7 +3,7 @@ type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "silent";
3
3
  /** Numeric ordering used for fast comparison. */
4
4
  declare const LEVEL: Record<LogLevel, number>;
5
5
  /** Services that bind their own logger and are independently level-controllable. */
6
- type ServiceName = "customer" | "product" | "category" | "cart" | "checkout" | "payment" | "price" | "media" | "segment" | "site" | "session-context" | "customer-management" | "iam" | "orders" | "sales-orders" | "availability" | "configuration" | "shopping-list" | "ai-rag-indexer" | "sequential-id" | "fee" | "webhook" | "schema" | "ai" | "tax" | "coupon" | "reward-points" | "brand" | "label" | "country" | "currency" | "shipping" | "returns" | "sepa-export" | "indexing" | "import" | "unit-handling" | "catalog" | "vendor" | "pick-pack" | "customer-admin" | "approval" | "invoice" | "quote" | "cloud-functions" | "http" | "auth";
6
+ type ServiceName = "customer" | "product" | "category" | "cart" | "checkout" | "payment" | "price" | "media" | "segment" | "site" | "session-context" | "customer-management" | "iam" | "orders" | "sales-orders" | "availability" | "configuration" | "shopping-list" | "ai-rag-indexer" | "sequential-id" | "fee" | "webhook" | "schema" | "ai" | "tax" | "coupon" | "reward-points" | "brand" | "label" | "country" | "currency" | "shipping" | "returns" | "indexing" | "import" | "unit-handling" | "catalog" | "vendor" | "pick-pack" | "customer-admin" | "approval" | "invoice" | "quote" | "cloud-functions" | "http" | "auth";
7
7
  /** Arbitrary structured fields attached to a log line. */
8
8
  interface LogFields {
9
9
  [key: string]: unknown;
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
 
3
3
  /**
4
4
  * Access control metadata.
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, b as AuthContext } from './context-CcU93eAL.js';
2
2
 
3
3
  /**
4
4
  * Access control metadata.
@@ -1,2 +1,2 @@
1
- export { g as CustomerGroupsService, j as IamGroup, c as IamGroupMemberAssignment } from './customer-groups-B6xrwf59.cjs';
2
- import './context-D64-B1Rz.cjs';
1
+ export { g as CustomerGroupsService, j as IamGroup, c as IamGroupMemberAssignment } from './customer-groups-Tt9VIA-m.cjs';
2
+ import './context-CcU93eAL.cjs';
@@ -1,2 +1,2 @@
1
- export { g as CustomerGroupsService, j as IamGroup, c as IamGroupMemberAssignment } from './customer-groups-YZg22bFc.js';
2
- import './context-D64-B1Rz.js';
1
+ export { g as CustomerGroupsService, j as IamGroup, c as IamGroupMemberAssignment } from './customer-groups-wmO0f-vj.js';
2
+ import './context-CcU93eAL.js';
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, A as AnonymousSession, b as AuthContext } from './context-D64-B1Rz.cjs';
1
+ import { C as ClientContext, A as AnonymousSession, b as AuthContext } from './context-CcU93eAL.cjs';
2
2
 
3
3
  type AccountId = {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { C as ClientContext, A as AnonymousSession, b as AuthContext } from './context-D64-B1Rz.js';
1
+ import { C as ClientContext, A as AnonymousSession, b as AuthContext } from './context-CcU93eAL.js';
2
2
 
3
3
  type AccountId = {
4
4
  /**