@viu/emporix-sdk 3.5.0 → 4.0.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/CHANGELOG.md +148 -0
- package/README.md +2 -2
- package/dist/availability.d.cts +1 -1
- package/dist/availability.d.ts +1 -1
- package/dist/cart.d.cts +1 -1
- package/dist/cart.d.ts +1 -1
- package/dist/category.d.cts +1 -1
- package/dist/category.d.ts +1 -1
- package/dist/checkout.d.cts +1 -1
- package/dist/checkout.d.ts +1 -1
- package/dist/{chunk-JQWUGGRV.js → chunk-2SHTDVOC.js} +22 -2
- package/dist/chunk-2SHTDVOC.js.map +1 -0
- package/dist/{chunk-TI56QENX.js → chunk-CSYXGTOH.js} +31 -2
- package/dist/chunk-CSYXGTOH.js.map +1 -0
- package/dist/{chunk-3G5KROEC.js → chunk-XJJDCK2Z.js} +80 -3
- package/dist/chunk-XJJDCK2Z.js.map +1 -0
- package/dist/companies.d.cts +1 -1
- package/dist/companies.d.ts +1 -1
- package/dist/contacts.d.cts +1 -1
- package/dist/contacts.d.ts +1 -1
- package/dist/{context-CZdtWgQO.d.cts → context-5lt8Q0MT.d.cts} +1 -1
- package/dist/{context-CZdtWgQO.d.ts → context-5lt8Q0MT.d.ts} +1 -1
- package/dist/{customer-groups-OEnqHFsX.d.cts → customer-groups-8cgS8S5d.d.cts} +1 -1
- package/dist/{customer-groups-DhrOoC8M.d.ts → customer-groups-DizW_a-w.d.ts} +1 -1
- package/dist/customer-groups.d.cts +2 -2
- package/dist/customer-groups.d.ts +2 -2
- package/dist/customer.d.cts +1 -1
- package/dist/customer.d.ts +1 -1
- package/dist/index.cjs +272 -132
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +333 -591
- package/dist/index.d.ts +333 -591
- package/dist/index.js +152 -137
- package/dist/index.js.map +1 -1
- package/dist/locations.d.cts +1 -1
- package/dist/locations.d.ts +1 -1
- package/dist/media.cjs +29 -0
- package/dist/media.cjs.map +1 -1
- package/dist/media.d.cts +45 -3
- package/dist/media.d.ts +45 -3
- package/dist/media.js +1 -1
- package/dist/orders.d.cts +1 -1
- package/dist/orders.d.ts +1 -1
- package/dist/payment.d.cts +1 -1
- package/dist/payment.d.ts +1 -1
- package/dist/price.d.cts +1 -1
- package/dist/price.d.ts +1 -1
- package/dist/product.cjs +20 -0
- package/dist/product.cjs.map +1 -1
- package/dist/product.d.cts +24 -2
- package/dist/product.d.ts +24 -2
- package/dist/product.js +1 -1
- package/dist/segment.cjs +78 -1
- package/dist/segment.cjs.map +1 -1
- package/dist/segment.d.cts +90 -3
- package/dist/segment.d.ts +90 -3
- package/dist/segment.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-3G5KROEC.js.map +0 -1
- package/dist/chunk-JQWUGGRV.js.map +0 -1
- package/dist/chunk-TI56QENX.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1242,7 +1242,7 @@ var HttpClient = class {
|
|
|
1242
1242
|
};
|
|
1243
1243
|
|
|
1244
1244
|
// package.json
|
|
1245
|
-
var version = "
|
|
1245
|
+
var version = "4.0.0";
|
|
1246
1246
|
|
|
1247
1247
|
// src/version.ts
|
|
1248
1248
|
var SDK_VERSION = version;
|
|
@@ -1872,6 +1872,20 @@ var ProductService = class {
|
|
|
1872
1872
|
/**
|
|
1873
1873
|
* Partially updates a product (`PATCH /products/{productId}`). Default auth:
|
|
1874
1874
|
* service. Use {@link replace} for a full replace (PUT).
|
|
1875
|
+
*
|
|
1876
|
+
* Omitted fields stay as they are. **Mixins merge rather than replace**, and
|
|
1877
|
+
* the corollary catches people out: there is no way to delete a mixin here.
|
|
1878
|
+
* - a mixin name you omit stays on the product;
|
|
1879
|
+
* - fields you send inside a mixin are merged recursively, and fields you
|
|
1880
|
+
* omit inside that mixin keep their values;
|
|
1881
|
+
* - `null` does **not** delete a mixin — it stores `null` as its value.
|
|
1882
|
+
*
|
|
1883
|
+
* To actually remove one, read the product and send it back through
|
|
1884
|
+
* {@link replace} with `partial: false`, leaving the mixin out of both
|
|
1885
|
+
* `mixins` and `metadata.mixins`.
|
|
1886
|
+
*
|
|
1887
|
+
* Despite the HTTP verb this is **not** a JSON-Patch endpoint: an op-array of
|
|
1888
|
+
* `{ op, path, value }` is rejected. Send a partial product document.
|
|
1875
1889
|
*/
|
|
1876
1890
|
async update(productId, input, options = {}, auth2 = SERVICE) {
|
|
1877
1891
|
const query = {
|
|
@@ -1891,6 +1905,12 @@ var ProductService = class {
|
|
|
1891
1905
|
* Full-replaces a product (`PUT /products/{productId}`). Returns the created
|
|
1892
1906
|
* resource on 201 (upsert) and nothing on 204. `options.partial` sends
|
|
1893
1907
|
* `?partial=true` for a merge-style replace. Default auth: service.
|
|
1908
|
+
*
|
|
1909
|
+
* With `partial: false` (the default) the body must be the **complete**
|
|
1910
|
+
* product document, and any mixin name missing from it is removed — which is
|
|
1911
|
+
* what makes this the only way to delete a mixin, since {@link update} merges
|
|
1912
|
+
* them. The flip side is that a body you did not build from a fresh read will
|
|
1913
|
+
* silently drop mixins.
|
|
1894
1914
|
*/
|
|
1895
1915
|
async replace(productId, input, options = {}, auth2 = SERVICE) {
|
|
1896
1916
|
const query = {
|
|
@@ -3453,6 +3473,35 @@ var MediaService = class {
|
|
|
3453
3473
|
body: input.body
|
|
3454
3474
|
});
|
|
3455
3475
|
}
|
|
3476
|
+
/**
|
|
3477
|
+
* Partially update an asset with an RFC-6902 JSON-Patch op-array
|
|
3478
|
+
* (`PATCH /assets/{id}`, HTTP 204 — nothing is returned).
|
|
3479
|
+
*
|
|
3480
|
+
* This is the way to change one field without resending the whole asset, and
|
|
3481
|
+
* the only way to touch a `BLOB` asset's metadata **without re-uploading the
|
|
3482
|
+
* file** — {@link update} in `blob` mode always replaces the bytes.
|
|
3483
|
+
*
|
|
3484
|
+
* Append to an array with a path ending in `/-`, which preserves the existing
|
|
3485
|
+
* entries:
|
|
3486
|
+
*
|
|
3487
|
+
* ```ts
|
|
3488
|
+
* await client.media.patch(assetId, [
|
|
3489
|
+
* { op: "add", path: "/refIds/-", value: { id: "product1", type: "PRODUCT" } },
|
|
3490
|
+
* ]);
|
|
3491
|
+
* ```
|
|
3492
|
+
*
|
|
3493
|
+
* `type` and `access` are immutable here too, as with {@link update}. Only
|
|
3494
|
+
* `add`, `remove` and `replace` are accepted, and optimistic locking still
|
|
3495
|
+
* applies — a stale `metadata.version` gets a 409.
|
|
3496
|
+
*/
|
|
3497
|
+
async patch(assetId, ops, auth2 = SERVICE5) {
|
|
3498
|
+
await this.ctx.http.request({
|
|
3499
|
+
method: "PATCH",
|
|
3500
|
+
path: `${this.base()}/${encodeURIComponent(assetId)}`,
|
|
3501
|
+
auth: auth2,
|
|
3502
|
+
body: ops
|
|
3503
|
+
});
|
|
3504
|
+
}
|
|
3456
3505
|
/** Remove an asset. */
|
|
3457
3506
|
async remove(assetId, auth2 = SERVICE5) {
|
|
3458
3507
|
await this.ctx.http.request({
|
|
@@ -3616,7 +3665,12 @@ var SegmentService = class {
|
|
|
3616
3665
|
base() {
|
|
3617
3666
|
return `/customer-segment/${this.ctx.tenant}/segments`;
|
|
3618
3667
|
}
|
|
3619
|
-
/**
|
|
3668
|
+
/**
|
|
3669
|
+
* Lists segments via the generic `GET /segments` (with `segment_read_own`).
|
|
3670
|
+
* Its documentation does not say whether segments inherited through IAM
|
|
3671
|
+
* groups are included — for "which segments is this customer in", use
|
|
3672
|
+
* {@link listMine}, which is documented to include them.
|
|
3673
|
+
*/
|
|
3620
3674
|
async list(query = {}, auth2) {
|
|
3621
3675
|
const q = {};
|
|
3622
3676
|
setIfDefined(q, "q", query.q);
|
|
@@ -3629,6 +3683,26 @@ var SegmentService = class {
|
|
|
3629
3683
|
...Object.keys(q).length ? { query: q } : {}
|
|
3630
3684
|
});
|
|
3631
3685
|
}
|
|
3686
|
+
/**
|
|
3687
|
+
* The authenticated customer's **active** segments (`GET /segments/me`,
|
|
3688
|
+
* `segment_read_own`): assigned directly, and inherited through the
|
|
3689
|
+
* customer's IAM groups — groups not bound to a legal entity, plus groups
|
|
3690
|
+
* bound to the customer's *current* legal entity. Switching the active company
|
|
3691
|
+
* can therefore change the result.
|
|
3692
|
+
*/
|
|
3693
|
+
async listMine(query = {}, auth2) {
|
|
3694
|
+
const q = {};
|
|
3695
|
+
setIfDefined(q, "q", query.q);
|
|
3696
|
+
setIfDefined(q, "pageNumber", query.pageNumber);
|
|
3697
|
+
setIfDefined(q, "pageSize", query.pageSize);
|
|
3698
|
+
setIfDefined(q, "sort", query.sort);
|
|
3699
|
+
return this.ctx.http.request({
|
|
3700
|
+
method: "GET",
|
|
3701
|
+
path: `${this.base()}/me`,
|
|
3702
|
+
auth: requireCustomer(auth2),
|
|
3703
|
+
...Object.keys(q).length ? { query: q } : {}
|
|
3704
|
+
});
|
|
3705
|
+
}
|
|
3632
3706
|
/** Fetches a single segment by id. */
|
|
3633
3707
|
async get(segmentId, auth2) {
|
|
3634
3708
|
return this.ctx.http.request({
|
|
@@ -3880,6 +3954,58 @@ var SegmentService = class {
|
|
|
3880
3954
|
body
|
|
3881
3955
|
})
|
|
3882
3956
|
};
|
|
3957
|
+
/**
|
|
3958
|
+
* IAM group→segment assignments (`segment_read` / `segment_manage`). Customers
|
|
3959
|
+
* inherit a segment through their groups, on top of direct assignment — see
|
|
3960
|
+
* {@link listMine}. Only groups with `userType: "CUSTOMER"` can be assigned;
|
|
3961
|
+
* anything else is a `400`. Default auth: service.
|
|
3962
|
+
*/
|
|
3963
|
+
groups = {
|
|
3964
|
+
list: async (segmentId, query = {}, authCtx = SERVICE6) => {
|
|
3965
|
+
const q = {};
|
|
3966
|
+
setIfDefined(q, "q", query.q);
|
|
3967
|
+
setIfDefined(q, "pageNumber", query.pageNumber);
|
|
3968
|
+
setIfDefined(q, "pageSize", query.pageSize);
|
|
3969
|
+
setIfDefined(q, "sort", query.sort);
|
|
3970
|
+
return this.ctx.http.request({
|
|
3971
|
+
method: "GET",
|
|
3972
|
+
path: `${this.base()}/${encodeURIComponent(segmentId)}/groups`,
|
|
3973
|
+
auth: authCtx,
|
|
3974
|
+
...Object.keys(q).length ? { query: q } : {}
|
|
3975
|
+
});
|
|
3976
|
+
},
|
|
3977
|
+
search: async (segmentId, query, authCtx = SERVICE6) => this.ctx.http.request({
|
|
3978
|
+
method: "POST",
|
|
3979
|
+
path: `${this.base()}/${encodeURIComponent(segmentId)}/groups/search`,
|
|
3980
|
+
auth: authCtx,
|
|
3981
|
+
body: query
|
|
3982
|
+
}),
|
|
3983
|
+
get: async (segmentId, groupId, authCtx = SERVICE6) => this.ctx.http.request({
|
|
3984
|
+
method: "GET",
|
|
3985
|
+
path: `${this.base()}/${encodeURIComponent(segmentId)}/groups/${encodeURIComponent(groupId)}`,
|
|
3986
|
+
auth: authCtx
|
|
3987
|
+
}),
|
|
3988
|
+
/**
|
|
3989
|
+
* Upsert: `201` when the assignment is created, `204` when it is updated —
|
|
3990
|
+
* **neither returns a body**, so this resolves to nothing. Fetch it with
|
|
3991
|
+
* {@link get} if you need the stored assignment.
|
|
3992
|
+
*/
|
|
3993
|
+
assign: async (segmentId, groupId, input = {}, authCtx = SERVICE6) => {
|
|
3994
|
+
await this.ctx.http.request({
|
|
3995
|
+
method: "PUT",
|
|
3996
|
+
path: `${this.base()}/${encodeURIComponent(segmentId)}/groups/${encodeURIComponent(groupId)}`,
|
|
3997
|
+
auth: authCtx,
|
|
3998
|
+
body: input
|
|
3999
|
+
});
|
|
4000
|
+
},
|
|
4001
|
+
remove: async (segmentId, groupId, authCtx = SERVICE6) => {
|
|
4002
|
+
await this.ctx.http.request({
|
|
4003
|
+
method: "DELETE",
|
|
4004
|
+
path: `${this.base()}/${encodeURIComponent(segmentId)}/groups/${encodeURIComponent(groupId)}`,
|
|
4005
|
+
auth: authCtx
|
|
4006
|
+
});
|
|
4007
|
+
}
|
|
4008
|
+
};
|
|
3883
4009
|
/** Item→segment assignments (`type` = PRODUCT | CATEGORY). Default auth: service. */
|
|
3884
4010
|
items = {
|
|
3885
4011
|
search: async (segmentId, query, authCtx = SERVICE6) => this.ctx.http.request({
|
|
@@ -6367,6 +6493,16 @@ var AnalyticsResource = class {
|
|
|
6367
6493
|
|
|
6368
6494
|
// src/services/ai.ts
|
|
6369
6495
|
var SERVICE17 = { kind: "service" };
|
|
6496
|
+
function assertChatOptions(opts, method) {
|
|
6497
|
+
if (typeof opts === "object" && opts !== null && "kind" in opts) {
|
|
6498
|
+
throw new Error(
|
|
6499
|
+
`ai.${method}: the second argument is { sessionId? } since 4.0.0 \u2014 pass the auth context third`
|
|
6500
|
+
);
|
|
6501
|
+
}
|
|
6502
|
+
}
|
|
6503
|
+
function sessionHeader(opts) {
|
|
6504
|
+
return opts.sessionId ? { headers: { "session-id": opts.sessionId } } : {};
|
|
6505
|
+
}
|
|
6370
6506
|
var AiService = class {
|
|
6371
6507
|
constructor(ctx) {
|
|
6372
6508
|
this.ctx = ctx;
|
|
@@ -6497,40 +6633,50 @@ var AiService = class {
|
|
|
6497
6633
|
/**
|
|
6498
6634
|
* Synchronous agent chat (`POST /agentic/chat`). Returns the response
|
|
6499
6635
|
* ARRAY verbatim (the upstream contract is an array, not a single object).
|
|
6636
|
+
*
|
|
6637
|
+
* `opts.sessionId` is sent as the `session-id` header. It carries the
|
|
6638
|
+
* conversation — continuity needs it plus `enabledMemory` on the agent — and
|
|
6639
|
+
* it is how a chat reaches an attachment: pass the `sessionId` the upload or
|
|
6640
|
+
* reuse returned, and list the file under `input.attachments`.
|
|
6500
6641
|
*/
|
|
6501
|
-
async chat(input, auth2 = SERVICE17) {
|
|
6642
|
+
async chat(input, opts = {}, auth2 = SERVICE17) {
|
|
6643
|
+
assertChatOptions(opts, "chat");
|
|
6502
6644
|
return this.ctx.http.request({
|
|
6503
6645
|
method: "POST",
|
|
6504
6646
|
path: `${this.base()}/agentic/chat`,
|
|
6505
6647
|
auth: auth2,
|
|
6506
|
-
body: input
|
|
6648
|
+
body: input,
|
|
6649
|
+
...sessionHeader(opts)
|
|
6507
6650
|
});
|
|
6508
6651
|
}
|
|
6509
6652
|
/**
|
|
6510
6653
|
* Fire-and-forget agent chat (`POST /agentic/chat-async`, HTTP 201).
|
|
6511
|
-
* Returns the job-id ARRAY verbatim.
|
|
6654
|
+
* Returns the job-id ARRAY verbatim. `opts` as for {@link chat}.
|
|
6512
6655
|
*/
|
|
6513
|
-
async chatAsync(input, auth2 = SERVICE17) {
|
|
6656
|
+
async chatAsync(input, opts = {}, auth2 = SERVICE17) {
|
|
6657
|
+
assertChatOptions(opts, "chatAsync");
|
|
6514
6658
|
return this.ctx.http.request({
|
|
6515
6659
|
method: "POST",
|
|
6516
6660
|
path: `${this.base()}/agentic/chat-async`,
|
|
6517
6661
|
auth: auth2,
|
|
6518
|
-
body: input
|
|
6662
|
+
body: input,
|
|
6663
|
+
...sessionHeader(opts)
|
|
6519
6664
|
});
|
|
6520
6665
|
}
|
|
6521
6666
|
/**
|
|
6522
6667
|
* Streaming agent chat (`POST /agentic/chat-stream`, `text/event-stream`).
|
|
6523
6668
|
* Yields each SSE `data` payload verbatim — the upstream contract types the
|
|
6524
6669
|
* stream body as an opaque string, so chunks are raw strings, not parsed
|
|
6525
|
-
* objects. Consume with `for await`.
|
|
6670
|
+
* objects. Consume with `for await`. `opts` as for {@link chat}.
|
|
6526
6671
|
*/
|
|
6527
6672
|
async *chatStream(input, opts = {}, auth2 = SERVICE17) {
|
|
6673
|
+
assertChatOptions(opts, "chatStream");
|
|
6528
6674
|
const events = this.ctx.http.requestStream({
|
|
6529
6675
|
method: "POST",
|
|
6530
6676
|
path: `${this.base()}/agentic/chat-stream`,
|
|
6531
6677
|
auth: auth2,
|
|
6532
6678
|
body: input,
|
|
6533
|
-
...opts
|
|
6679
|
+
...sessionHeader(opts)
|
|
6534
6680
|
});
|
|
6535
6681
|
for await (const ev of events) yield ev.data;
|
|
6536
6682
|
}
|
|
@@ -6573,6 +6719,10 @@ var AiService = class {
|
|
|
6573
6719
|
* (`POST /agentic/{agentId}/attachments`, multipart, HTTP 201). The response
|
|
6574
6720
|
* `sessionId` must be threaded into subsequent chat calls to bind the file.
|
|
6575
6721
|
* Pass `opts.sessionId` to attach to an existing session.
|
|
6722
|
+
*
|
|
6723
|
+
* The endpoint takes exactly one of `attachment` or `attachmentId` — both or
|
|
6724
|
+
* neither is a `400`. This method always sends the file; to point a second
|
|
6725
|
+
* agent at a file already in the session, use {@link reuseAttachment}.
|
|
6576
6726
|
*/
|
|
6577
6727
|
async uploadAttachment(agentId, attachment, opts = {}, auth2 = SERVICE17) {
|
|
6578
6728
|
const form = new FormData();
|
|
@@ -6585,6 +6735,34 @@ var AiService = class {
|
|
|
6585
6735
|
...opts.sessionId ? { headers: { "session-id": opts.sessionId } } : {}
|
|
6586
6736
|
});
|
|
6587
6737
|
}
|
|
6738
|
+
/**
|
|
6739
|
+
* Assign an existing media asset to an agent as a chat attachment
|
|
6740
|
+
* (`POST /agentic/{agentId}/attachments` with the `attachmentId` form field,
|
|
6741
|
+
* HTTP 200). Resolves to the attachment `id` and the `sessionId` to send on
|
|
6742
|
+
* the following chat calls.
|
|
6743
|
+
*
|
|
6744
|
+
* Use it to hand a second agent the same file instead of uploading it twice.
|
|
6745
|
+
* Pass `opts.sessionId` to attach to an existing chat session; without it the
|
|
6746
|
+
* service opens a new one and returns its id — thread that into the chat, or
|
|
6747
|
+
* the agent never sees the file. With `ai.agentexecution_manage` the asset may
|
|
6748
|
+
* be any media asset, not only one uploaded to this session.
|
|
6749
|
+
*
|
|
6750
|
+
* ```ts
|
|
6751
|
+
* const { id, sessionId } = await client.ai.uploadAttachment("agent-a", file);
|
|
6752
|
+
* await client.ai.reuseAttachment("agent-b", id!, { sessionId: sessionId! });
|
|
6753
|
+
* ```
|
|
6754
|
+
*/
|
|
6755
|
+
async reuseAttachment(agentId, attachmentId, opts = {}, auth2 = SERVICE17) {
|
|
6756
|
+
const form = new FormData();
|
|
6757
|
+
form.append("attachmentId", attachmentId);
|
|
6758
|
+
return this.ctx.http.request({
|
|
6759
|
+
method: "POST",
|
|
6760
|
+
path: `${this.base()}/agentic/${encodeURIComponent(agentId)}/attachments`,
|
|
6761
|
+
auth: auth2,
|
|
6762
|
+
body: form,
|
|
6763
|
+
...opts.sessionId ? { headers: { "session-id": opts.sessionId } } : {}
|
|
6764
|
+
});
|
|
6765
|
+
}
|
|
6588
6766
|
/** Export agents + components as a base64/checksum blob (`POST /agentic/agents/export`). */
|
|
6589
6767
|
async exportAgents(body, auth2 = SERVICE17) {
|
|
6590
6768
|
return this.ctx.http.request({
|
|
@@ -8125,6 +8303,23 @@ var ImportService = class {
|
|
|
8125
8303
|
auth: auth2
|
|
8126
8304
|
});
|
|
8127
8305
|
}
|
|
8306
|
+
/**
|
|
8307
|
+
* The order in which a configuration's streams run, and the dependencies
|
|
8308
|
+
* behind it. Read it here instead of deriving it from the stream definitions:
|
|
8309
|
+
* mapping transformations add dependencies that no single stream shows, so a
|
|
8310
|
+
* self-computed order can differ from the one used at run time.
|
|
8311
|
+
*
|
|
8312
|
+
* The result lists stream **names**, while {@link triggerRun}'s `streamIds`
|
|
8313
|
+
* takes stream **ids** — map through {@link listStreams} before passing a
|
|
8314
|
+
* subset back.
|
|
8315
|
+
*/
|
|
8316
|
+
async getStreamOrder(configId, auth2 = SERVICE29) {
|
|
8317
|
+
return this.ctx.http.request({
|
|
8318
|
+
method: "GET",
|
|
8319
|
+
path: `${this.base()}/configs/${encodeURIComponent(configId)}/stream-order`,
|
|
8320
|
+
auth: auth2
|
|
8321
|
+
});
|
|
8322
|
+
}
|
|
8128
8323
|
/**
|
|
8129
8324
|
* Fetch a configuration's schedule. Resolves to `null` when none is
|
|
8130
8325
|
* configured — the service answers `204`, not `404`, so an absent schedule is
|
|
@@ -8189,6 +8384,9 @@ var ImportService = class {
|
|
|
8189
8384
|
* integration scenario are indistinguishable in the history. Note the service
|
|
8190
8385
|
* **rejects** an `origin` over 40 characters instead of shortening it.
|
|
8191
8386
|
*
|
|
8387
|
+
* `streamIds` runs a subset — see {@link ImportRunInput} for what is rejected,
|
|
8388
|
+
* and note it takes ids where {@link getStreamOrder} reports names.
|
|
8389
|
+
*
|
|
8192
8390
|
* Not retried on a 5xx: a POST that timed out may already have queued a run.
|
|
8193
8391
|
*
|
|
8194
8392
|
* @example
|
|
@@ -8280,6 +8478,43 @@ var ImportService = class {
|
|
|
8280
8478
|
});
|
|
8281
8479
|
return toPage(wire, args);
|
|
8282
8480
|
}
|
|
8481
|
+
/**
|
|
8482
|
+
* The rows behind a run's feed-quality counters: source rows that repeated a
|
|
8483
|
+
* natural key (`kind: "REPEATED_KEY"`, counted as `duplicateKeys`) and child
|
|
8484
|
+
* lines with no parent to attach to (`"UNRESOLVED_PARENT"`, counted as
|
|
8485
|
+
* `unresolvedParents`). Neither is a failure, which is why these rows are not
|
|
8486
|
+
* in {@link listRunErrors}.
|
|
8487
|
+
*
|
|
8488
|
+
* **A capped sample** — see {@link ImportRunDiagnostics} before reading
|
|
8489
|
+
* `rows.length` as the size of the problem. `limit` defaults to 500 here
|
|
8490
|
+
* (1–50 000); {@link downloadRunDiagnosticsCsv} defaults to 50 000.
|
|
8491
|
+
*/
|
|
8492
|
+
async listRunDiagnostics(runId, query = {}, auth2 = SERVICE29) {
|
|
8493
|
+
return this.ctx.http.request({
|
|
8494
|
+
method: "GET",
|
|
8495
|
+
path: `${this.base()}/runs/${encodeURIComponent(runId)}/diagnostics`,
|
|
8496
|
+
query: { ...query },
|
|
8497
|
+
auth: auth2
|
|
8498
|
+
});
|
|
8499
|
+
}
|
|
8500
|
+
/**
|
|
8501
|
+
* The same rows as {@link listRunDiagnostics}, as CSV text for a spreadsheet
|
|
8502
|
+
* or a ticket. Comment lines above the header record whether `limit` or the
|
|
8503
|
+
* recording cap cut rows off, so the file keeps that context when shared on
|
|
8504
|
+
* its own. `limit` defaults to 50 000 here, not 500.
|
|
8505
|
+
*
|
|
8506
|
+
* Every value is quoted, and a value starting with `=`, `+`, `-` or `@` is
|
|
8507
|
+
* prefixed with an apostrophe so spreadsheet software does not evaluate source
|
|
8508
|
+
* data as a formula. Strip it if you parse the file instead of opening it.
|
|
8509
|
+
*/
|
|
8510
|
+
async downloadRunDiagnosticsCsv(runId, query = {}, auth2 = SERVICE29) {
|
|
8511
|
+
return this.ctx.http.request({
|
|
8512
|
+
method: "GET",
|
|
8513
|
+
path: `${this.base()}/runs/${encodeURIComponent(runId)}/diagnostics/csv`,
|
|
8514
|
+
query: { ...query },
|
|
8515
|
+
auth: auth2
|
|
8516
|
+
});
|
|
8517
|
+
}
|
|
8283
8518
|
/** List the target types that hold imported records — the valid `type` values for {@link searchRecords}. */
|
|
8284
8519
|
async listDataTypes(auth2 = SERVICE29) {
|
|
8285
8520
|
return this.ctx.http.request({
|
|
@@ -8727,100 +8962,8 @@ var VendorService = class {
|
|
|
8727
8962
|
}
|
|
8728
8963
|
};
|
|
8729
8964
|
|
|
8730
|
-
// src/services/pick-pack.ts
|
|
8731
|
-
var SERVICE34 = { kind: "service" };
|
|
8732
|
-
var PickPackService = class {
|
|
8733
|
-
constructor(ctx) {
|
|
8734
|
-
this.ctx = ctx;
|
|
8735
|
-
}
|
|
8736
|
-
ctx;
|
|
8737
|
-
static channel = "pick-pack";
|
|
8738
|
-
base() {
|
|
8739
|
-
return `/pick-pack/${this.ctx.tenant}`;
|
|
8740
|
-
}
|
|
8741
|
-
orderPath(orderId) {
|
|
8742
|
-
return `${this.base()}/orders/${encodeURIComponent(orderId)}`;
|
|
8743
|
-
}
|
|
8744
|
-
/** List packlist orders. */
|
|
8745
|
-
async listOrders(query = {}, auth2 = SERVICE34) {
|
|
8746
|
-
return this.ctx.http.request({
|
|
8747
|
-
method: "GET",
|
|
8748
|
-
path: `${this.base()}/orders`,
|
|
8749
|
-
auth: auth2,
|
|
8750
|
-
...Object.keys(query).length ? { query } : {}
|
|
8751
|
-
});
|
|
8752
|
-
}
|
|
8753
|
-
/** Retrieve a packlist order by id. */
|
|
8754
|
-
async getOrder(orderId, auth2 = SERVICE34) {
|
|
8755
|
-
return this.ctx.http.request({ method: "GET", path: this.orderPath(orderId), auth: auth2 });
|
|
8756
|
-
}
|
|
8757
|
-
/** Update an order's status (`PATCH`). Returns an acknowledgement. */
|
|
8758
|
-
async updateOrder(orderId, change, auth2 = SERVICE34) {
|
|
8759
|
-
return this.ctx.http.request({ method: "PATCH", path: this.orderPath(orderId), auth: auth2, body: change });
|
|
8760
|
-
}
|
|
8761
|
-
/** Finish an order. Returns an acknowledgement. */
|
|
8762
|
-
async finishOrder(orderId, auth2 = SERVICE34) {
|
|
8763
|
-
return this.ctx.http.request({ method: "POST", path: `${this.orderPath(orderId)}/finish`, auth: auth2 });
|
|
8764
|
-
}
|
|
8765
|
-
/** List order cycles (ids). */
|
|
8766
|
-
async listOrderCycles(query = {}, auth2 = SERVICE34) {
|
|
8767
|
-
return this.ctx.http.request({
|
|
8768
|
-
method: "GET",
|
|
8769
|
-
path: `${this.base()}/orderCycles`,
|
|
8770
|
-
auth: auth2,
|
|
8771
|
-
...Object.keys(query).length ? { query } : {}
|
|
8772
|
-
});
|
|
8773
|
-
}
|
|
8774
|
-
/** Add an assignee to an order. Returns an acknowledgement. */
|
|
8775
|
-
async addAssignee(orderId, assignee, auth2 = SERVICE34) {
|
|
8776
|
-
return this.ctx.http.request({ method: "POST", path: `${this.orderPath(orderId)}/assignees`, auth: auth2, body: assignee });
|
|
8777
|
-
}
|
|
8778
|
-
/** Remove an assignee from an order. */
|
|
8779
|
-
async removeAssignee(orderId, assigneeId, auth2 = SERVICE34) {
|
|
8780
|
-
await this.ctx.http.request({
|
|
8781
|
-
method: "DELETE",
|
|
8782
|
-
path: `${this.orderPath(orderId)}/assignees/${encodeURIComponent(assigneeId)}`,
|
|
8783
|
-
auth: auth2
|
|
8784
|
-
});
|
|
8785
|
-
}
|
|
8786
|
-
/** Update packaging products for an order (`PUT`). Returns an acknowledgement. */
|
|
8787
|
-
async updatePackaging(orderId, change, auth2 = SERVICE34) {
|
|
8788
|
-
return this.ctx.http.request({ method: "PUT", path: `${this.orderPath(orderId)}/packaging`, auth: auth2, body: change });
|
|
8789
|
-
}
|
|
8790
|
-
/** Create a packing event. Returns an acknowledgement. */
|
|
8791
|
-
async createEvent(event, auth2 = SERVICE34) {
|
|
8792
|
-
return this.ctx.http.request({ method: "POST", path: `${this.base()}/events`, auth: auth2, body: event });
|
|
8793
|
-
}
|
|
8794
|
-
/** List packing events. */
|
|
8795
|
-
async listEvents(query = {}, auth2 = SERVICE34) {
|
|
8796
|
-
return this.ctx.http.request({
|
|
8797
|
-
method: "GET",
|
|
8798
|
-
path: `${this.base()}/events`,
|
|
8799
|
-
auth: auth2,
|
|
8800
|
-
...Object.keys(query).length ? { query } : {}
|
|
8801
|
-
});
|
|
8802
|
-
}
|
|
8803
|
-
/** Trigger an order recalculation. Returns the created job's id. */
|
|
8804
|
-
async triggerRecalculation(input, auth2 = SERVICE34) {
|
|
8805
|
-
return this.ctx.http.request({
|
|
8806
|
-
method: "POST",
|
|
8807
|
-
path: `${this.base()}/jobs/recalculations`,
|
|
8808
|
-
auth: auth2,
|
|
8809
|
-
body: input
|
|
8810
|
-
});
|
|
8811
|
-
}
|
|
8812
|
-
/** Retrieve a recalculation job by id. */
|
|
8813
|
-
async getRecalculationJob(jobId, auth2 = SERVICE34) {
|
|
8814
|
-
return this.ctx.http.request({
|
|
8815
|
-
method: "GET",
|
|
8816
|
-
path: `${this.base()}/jobs/recalculations/${encodeURIComponent(jobId)}`,
|
|
8817
|
-
auth: auth2
|
|
8818
|
-
});
|
|
8819
|
-
}
|
|
8820
|
-
};
|
|
8821
|
-
|
|
8822
8965
|
// src/services/customer-admin.ts
|
|
8823
|
-
var
|
|
8966
|
+
var SERVICE34 = { kind: "service" };
|
|
8824
8967
|
var CustomerAdminService = class {
|
|
8825
8968
|
constructor(ctx) {
|
|
8826
8969
|
this.ctx = ctx;
|
|
@@ -8841,7 +8984,7 @@ var CustomerAdminService = class {
|
|
|
8841
8984
|
}
|
|
8842
8985
|
// --- Customers ---
|
|
8843
8986
|
/** List customers. */
|
|
8844
|
-
async listCustomers(query = {}, auth2 =
|
|
8987
|
+
async listCustomers(query = {}, auth2 = SERVICE34) {
|
|
8845
8988
|
return this.ctx.http.request({
|
|
8846
8989
|
method: "GET",
|
|
8847
8990
|
path: this.base(),
|
|
@@ -8850,33 +8993,33 @@ var CustomerAdminService = class {
|
|
|
8850
8993
|
});
|
|
8851
8994
|
}
|
|
8852
8995
|
/** Search customers (`POST /customers/search`). A built filter in `q` is resolved to a string. */
|
|
8853
|
-
async searchCustomers(query, auth2 =
|
|
8996
|
+
async searchCustomers(query, auth2 = SERVICE34) {
|
|
8854
8997
|
const body = query.q !== void 0 ? { ...query, q: resolveQuery(query.q, { compoundLogicalQuery: false }) } : query;
|
|
8855
8998
|
return this.ctx.http.request({ method: "POST", path: `${this.base()}/search`, auth: auth2, body });
|
|
8856
8999
|
}
|
|
8857
9000
|
/** Retrieve a customer profile by number. */
|
|
8858
|
-
async getCustomer(customerNumber, auth2 =
|
|
9001
|
+
async getCustomer(customerNumber, auth2 = SERVICE34) {
|
|
8859
9002
|
return this.ctx.http.request({ method: "GET", path: this.customerPath(customerNumber), auth: auth2 });
|
|
8860
9003
|
}
|
|
8861
9004
|
/** Create a customer. */
|
|
8862
|
-
async createCustomer(input, auth2 =
|
|
9005
|
+
async createCustomer(input, auth2 = SERVICE34) {
|
|
8863
9006
|
return this.ctx.http.request({ method: "POST", path: this.base(), auth: auth2, body: input });
|
|
8864
9007
|
}
|
|
8865
9008
|
/** Upsert a customer profile by number (`PUT`). */
|
|
8866
|
-
async upsertCustomer(customerNumber, input, auth2 =
|
|
9009
|
+
async upsertCustomer(customerNumber, input, auth2 = SERVICE34) {
|
|
8867
9010
|
return this.ctx.http.request({ method: "PUT", path: this.customerPath(customerNumber), auth: auth2, body: input });
|
|
8868
9011
|
}
|
|
8869
9012
|
/** Partially update a customer profile (`PATCH`). */
|
|
8870
|
-
async patchCustomer(customerNumber, patch, auth2 =
|
|
9013
|
+
async patchCustomer(customerNumber, patch, auth2 = SERVICE34) {
|
|
8871
9014
|
await this.ctx.http.request({ method: "PATCH", path: this.customerPath(customerNumber), auth: auth2, body: patch });
|
|
8872
9015
|
}
|
|
8873
9016
|
/** Delete a customer profile. */
|
|
8874
|
-
async deleteCustomer(customerNumber, auth2 =
|
|
9017
|
+
async deleteCustomer(customerNumber, auth2 = SERVICE34) {
|
|
8875
9018
|
await this.ctx.http.request({ method: "DELETE", path: this.customerPath(customerNumber), auth: auth2 });
|
|
8876
9019
|
}
|
|
8877
9020
|
// --- Addresses ---
|
|
8878
9021
|
/** List a customer's addresses. */
|
|
8879
|
-
async listAddresses(customerNumber, auth2 =
|
|
9022
|
+
async listAddresses(customerNumber, auth2 = SERVICE34) {
|
|
8880
9023
|
return this.ctx.http.request({
|
|
8881
9024
|
method: "GET",
|
|
8882
9025
|
path: `${this.customerPath(customerNumber)}/addresses`,
|
|
@@ -8884,11 +9027,11 @@ var CustomerAdminService = class {
|
|
|
8884
9027
|
});
|
|
8885
9028
|
}
|
|
8886
9029
|
/** Retrieve one address. */
|
|
8887
|
-
async getAddress(customerNumber, addressId, auth2 =
|
|
9030
|
+
async getAddress(customerNumber, addressId, auth2 = SERVICE34) {
|
|
8888
9031
|
return this.ctx.http.request({ method: "GET", path: this.addressPath(customerNumber, addressId), auth: auth2 });
|
|
8889
9032
|
}
|
|
8890
9033
|
/** Add an address. */
|
|
8891
|
-
async addAddress(customerNumber, input, auth2 =
|
|
9034
|
+
async addAddress(customerNumber, input, auth2 = SERVICE34) {
|
|
8892
9035
|
return this.ctx.http.request({
|
|
8893
9036
|
method: "POST",
|
|
8894
9037
|
path: `${this.customerPath(customerNumber)}/addresses`,
|
|
@@ -8897,19 +9040,19 @@ var CustomerAdminService = class {
|
|
|
8897
9040
|
});
|
|
8898
9041
|
}
|
|
8899
9042
|
/** Upsert an address by id (`PUT`). */
|
|
8900
|
-
async upsertAddress(customerNumber, addressId, input, auth2 =
|
|
9043
|
+
async upsertAddress(customerNumber, addressId, input, auth2 = SERVICE34) {
|
|
8901
9044
|
return this.ctx.http.request({ method: "PUT", path: this.addressPath(customerNumber, addressId), auth: auth2, body: input });
|
|
8902
9045
|
}
|
|
8903
9046
|
/** Partially update an address by id (`PATCH`). */
|
|
8904
|
-
async patchAddress(customerNumber, addressId, patch, auth2 =
|
|
9047
|
+
async patchAddress(customerNumber, addressId, patch, auth2 = SERVICE34) {
|
|
8905
9048
|
await this.ctx.http.request({ method: "PATCH", path: this.addressPath(customerNumber, addressId), auth: auth2, body: patch });
|
|
8906
9049
|
}
|
|
8907
9050
|
/** Delete an address by id. */
|
|
8908
|
-
async deleteAddress(customerNumber, addressId, auth2 =
|
|
9051
|
+
async deleteAddress(customerNumber, addressId, auth2 = SERVICE34) {
|
|
8909
9052
|
await this.ctx.http.request({ method: "DELETE", path: this.addressPath(customerNumber, addressId), auth: auth2 });
|
|
8910
9053
|
}
|
|
8911
9054
|
/** Add tags to an address (`?tags=` query). */
|
|
8912
|
-
async addAddressTags(customerNumber, addressId, tags, auth2 =
|
|
9055
|
+
async addAddressTags(customerNumber, addressId, tags, auth2 = SERVICE34) {
|
|
8913
9056
|
await this.ctx.http.request({
|
|
8914
9057
|
method: "POST",
|
|
8915
9058
|
path: `${this.addressPath(customerNumber, addressId)}/tags`,
|
|
@@ -8918,7 +9061,7 @@ var CustomerAdminService = class {
|
|
|
8918
9061
|
});
|
|
8919
9062
|
}
|
|
8920
9063
|
/** Remove tags from an address (`?tags=` query). */
|
|
8921
|
-
async removeAddressTags(customerNumber, addressId, tags, auth2 =
|
|
9064
|
+
async removeAddressTags(customerNumber, addressId, tags, auth2 = SERVICE34) {
|
|
8922
9065
|
await this.ctx.http.request({
|
|
8923
9066
|
method: "DELETE",
|
|
8924
9067
|
path: `${this.addressPath(customerNumber, addressId)}/tags`,
|
|
@@ -8932,7 +9075,7 @@ var CustomerAdminService = class {
|
|
|
8932
9075
|
* `customer.import_read` scope. An unconfigured tenant answers with an empty
|
|
8933
9076
|
* object rather than a 404.
|
|
8934
9077
|
*/
|
|
8935
|
-
async getPasswordMigrationRetention(auth2 =
|
|
9078
|
+
async getPasswordMigrationRetention(auth2 = SERVICE34) {
|
|
8936
9079
|
return this.ctx.http.request({
|
|
8937
9080
|
method: "GET",
|
|
8938
9081
|
path: this.configPath(),
|
|
@@ -8945,7 +9088,7 @@ var CustomerAdminService = class {
|
|
|
8945
9088
|
* `legacyAuth`** — that import is rejected without an active config. Re-POST with
|
|
8946
9089
|
* an earlier `retentionEndDate` to shorten a running window.
|
|
8947
9090
|
*/
|
|
8948
|
-
async configurePasswordMigrationRetention(input, auth2 =
|
|
9091
|
+
async configurePasswordMigrationRetention(input, auth2 = SERVICE34) {
|
|
8949
9092
|
return this.ctx.http.request({
|
|
8950
9093
|
method: "POST",
|
|
8951
9094
|
path: this.configPath(),
|
|
@@ -8958,7 +9101,7 @@ var CustomerAdminService = class {
|
|
|
8958
9101
|
* Intended for after the migration window: when the window ends, unmigrated
|
|
8959
9102
|
* accounts need a password reset and their legacy credentials are cleared.
|
|
8960
9103
|
*/
|
|
8961
|
-
async deletePasswordMigrationRetention(auth2 =
|
|
9104
|
+
async deletePasswordMigrationRetention(auth2 = SERVICE34) {
|
|
8962
9105
|
await this.ctx.http.request({ method: "DELETE", path: this.configPath(), auth: auth2 });
|
|
8963
9106
|
}
|
|
8964
9107
|
// --- Bulk import ---
|
|
@@ -8971,7 +9114,7 @@ var CustomerAdminService = class {
|
|
|
8971
9114
|
* `account.legacyAuth`, and importing `legacyAuth` requires an active retention
|
|
8972
9115
|
* config (see `configurePasswordMigrationRetention`).
|
|
8973
9116
|
*/
|
|
8974
|
-
async importCustomers(input, auth2 =
|
|
9117
|
+
async importCustomers(input, auth2 = SERVICE34) {
|
|
8975
9118
|
return this.ctx.http.request({
|
|
8976
9119
|
method: "POST",
|
|
8977
9120
|
path: `${this.base()}/import`,
|
|
@@ -8982,7 +9125,7 @@ var CustomerAdminService = class {
|
|
|
8982
9125
|
};
|
|
8983
9126
|
|
|
8984
9127
|
// src/services/approval.ts
|
|
8985
|
-
var
|
|
9128
|
+
var SERVICE35 = { kind: "service" };
|
|
8986
9129
|
var ApprovalService = class {
|
|
8987
9130
|
constructor(ctx) {
|
|
8988
9131
|
this.ctx = ctx;
|
|
@@ -8993,7 +9136,7 @@ var ApprovalService = class {
|
|
|
8993
9136
|
return `/approval/${this.ctx.tenant}`;
|
|
8994
9137
|
}
|
|
8995
9138
|
/** List approvals (paged via `pageNumber`/`pageSize`/`sort`/`q`). Returns an array. */
|
|
8996
|
-
async listApprovals(query = {}, auth2 =
|
|
9139
|
+
async listApprovals(query = {}, auth2 = SERVICE35) {
|
|
8997
9140
|
return this.ctx.http.request({
|
|
8998
9141
|
method: "GET",
|
|
8999
9142
|
path: `${this.base()}/approvals`,
|
|
@@ -9002,7 +9145,7 @@ var ApprovalService = class {
|
|
|
9002
9145
|
});
|
|
9003
9146
|
}
|
|
9004
9147
|
/** Retrieve a single approval by id. */
|
|
9005
|
-
async getApproval(approvalId, auth2 =
|
|
9148
|
+
async getApproval(approvalId, auth2 = SERVICE35) {
|
|
9006
9149
|
return this.ctx.http.request({
|
|
9007
9150
|
method: "GET",
|
|
9008
9151
|
path: `${this.base()}/approvals/${encodeURIComponent(approvalId)}`,
|
|
@@ -9010,7 +9153,7 @@ var ApprovalService = class {
|
|
|
9010
9153
|
});
|
|
9011
9154
|
}
|
|
9012
9155
|
/** Create an approval request (cart or quote). Returns the created `{ id }`. */
|
|
9013
|
-
async createApproval(input, auth2 =
|
|
9156
|
+
async createApproval(input, auth2 = SERVICE35) {
|
|
9014
9157
|
return this.ctx.http.request({
|
|
9015
9158
|
method: "POST",
|
|
9016
9159
|
path: `${this.base()}/approvals`,
|
|
@@ -9019,7 +9162,7 @@ var ApprovalService = class {
|
|
|
9019
9162
|
});
|
|
9020
9163
|
}
|
|
9021
9164
|
/** Approve/reject/amend an approval via a JSON-Patch op-array (`PATCH`). */
|
|
9022
|
-
async updateApproval(approvalId, ops, auth2 =
|
|
9165
|
+
async updateApproval(approvalId, ops, auth2 = SERVICE35) {
|
|
9023
9166
|
await this.ctx.http.request({
|
|
9024
9167
|
method: "PATCH",
|
|
9025
9168
|
path: `${this.base()}/approvals/${encodeURIComponent(approvalId)}`,
|
|
@@ -9028,7 +9171,7 @@ var ApprovalService = class {
|
|
|
9028
9171
|
});
|
|
9029
9172
|
}
|
|
9030
9173
|
/** Delete an approval by id. */
|
|
9031
|
-
async deleteApproval(approvalId, auth2 =
|
|
9174
|
+
async deleteApproval(approvalId, auth2 = SERVICE35) {
|
|
9032
9175
|
await this.ctx.http.request({
|
|
9033
9176
|
method: "DELETE",
|
|
9034
9177
|
path: `${this.base()}/approvals/${encodeURIComponent(approvalId)}`,
|
|
@@ -9036,7 +9179,7 @@ var ApprovalService = class {
|
|
|
9036
9179
|
});
|
|
9037
9180
|
}
|
|
9038
9181
|
/** Check whether an operation on a resource is permitted / needs approval. */
|
|
9039
|
-
async checkPermitted(input, auth2 =
|
|
9182
|
+
async checkPermitted(input, auth2 = SERVICE35) {
|
|
9040
9183
|
return this.ctx.http.request({
|
|
9041
9184
|
method: "POST",
|
|
9042
9185
|
path: `${this.base()}/approval/permitted`,
|
|
@@ -9045,7 +9188,7 @@ var ApprovalService = class {
|
|
|
9045
9188
|
});
|
|
9046
9189
|
}
|
|
9047
9190
|
/** Search for users eligible to approve a resource. Returns an array. */
|
|
9048
|
-
async searchApprovers(input, auth2 =
|
|
9191
|
+
async searchApprovers(input, auth2 = SERVICE35) {
|
|
9049
9192
|
return this.ctx.http.request({
|
|
9050
9193
|
method: "POST",
|
|
9051
9194
|
path: `${this.base()}/search/users`,
|
|
@@ -9112,7 +9255,6 @@ var EmporixClient = class {
|
|
|
9112
9255
|
units;
|
|
9113
9256
|
catalogs;
|
|
9114
9257
|
vendors;
|
|
9115
|
-
pickPack;
|
|
9116
9258
|
customerAdmin;
|
|
9117
9259
|
approvals;
|
|
9118
9260
|
/** The validated tenant this client is bound to. */
|
|
@@ -9187,7 +9329,6 @@ var EmporixClient = class {
|
|
|
9187
9329
|
this.units = new UnitHandlingService(mk(UnitHandlingService.channel));
|
|
9188
9330
|
this.catalogs = new CatalogService(mk(CatalogService.channel));
|
|
9189
9331
|
this.vendors = new VendorService(mk(VendorService.channel));
|
|
9190
|
-
this.pickPack = new PickPackService(mk(PickPackService.channel));
|
|
9191
9332
|
this.customerAdmin = new CustomerAdminService(mk(CustomerAdminService.channel));
|
|
9192
9333
|
this.approvals = new ApprovalService(mk(ApprovalService.channel));
|
|
9193
9334
|
}
|
|
@@ -9302,7 +9443,6 @@ exports.LocationsService = LocationsService;
|
|
|
9302
9443
|
exports.MediaService = MediaService;
|
|
9303
9444
|
exports.OrdersService = OrdersService;
|
|
9304
9445
|
exports.PaymentGatewayService = PaymentGatewayService;
|
|
9305
|
-
exports.PickPackService = PickPackService;
|
|
9306
9446
|
exports.PriceService = PriceService;
|
|
9307
9447
|
exports.ProductService = ProductService;
|
|
9308
9448
|
exports.QuoteService = QuoteService;
|