erpnext-queue-client 1.0.6 → 1.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 (76) hide show
  1. package/dist/client.js +41 -16
  2. package/dist/erpnext/decryptFromErpNext.server.d.ts +1 -1
  3. package/dist/erpnext/doctypeResourceRequest.d.ts +38 -0
  4. package/dist/erpnext/doctypeResourceRequest.js +59 -0
  5. package/dist/erpnext/doctypeSubmittableResourceRequest.d.ts +8 -0
  6. package/dist/erpnext/doctypeSubmittableResourceRequest.js +39 -0
  7. package/dist/erpnext/doctypes/address.d.ts +263 -0
  8. package/dist/erpnext/doctypes/address.js +46 -0
  9. package/dist/erpnext/doctypes/contact.d.ts +383 -0
  10. package/dist/erpnext/doctypes/contact.js +46 -0
  11. package/dist/erpnext/doctypes/deliveryNote.d.ts +985 -0
  12. package/dist/erpnext/doctypes/deliveryNote.js +38 -0
  13. package/dist/erpnext/doctypes/item.d.ts +572 -0
  14. package/dist/erpnext/doctypes/item.js +95 -0
  15. package/dist/erpnext/doctypes/purchaseReceipt.d.ts +743 -0
  16. package/dist/erpnext/doctypes/purchaseReceipt.js +50 -0
  17. package/dist/erpnext/doctypes/shipment.d.ts +752 -0
  18. package/dist/erpnext/doctypes/shipment.js +51 -0
  19. package/dist/erpnext/erpnextRequestWrapper.js +15 -13
  20. package/dist/erpnext/fileRequests.d.ts +10 -0
  21. package/dist/erpnext/fileRequests.js +42 -0
  22. package/dist/erpnext/methodRequest.d.ts +15 -0
  23. package/dist/erpnext/methodRequest.js +32 -0
  24. package/dist/erpnext/model/Address.d.ts +200 -198
  25. package/dist/erpnext/model/Address.js +3 -2
  26. package/dist/erpnext/model/Contact.d.ts +343 -344
  27. package/dist/erpnext/model/Contact.js +2 -2
  28. package/dist/erpnext/model/Country.d.ts +83 -31
  29. package/dist/erpnext/model/Country.js +2 -6
  30. package/dist/erpnext/model/Customer.d.ts +64 -65
  31. package/dist/erpnext/model/Customer.js +2 -2
  32. package/dist/erpnext/model/DeliveryNote.d.ts +1048 -1048
  33. package/dist/erpnext/model/DispatchRun.d.ts +399 -399
  34. package/dist/erpnext/model/DispatcherPreset.d.ts +94 -94
  35. package/dist/erpnext/model/ERPNextRequest.d.ts +47 -30
  36. package/dist/erpnext/model/ERPNextResponse.d.ts +4 -4
  37. package/dist/erpnext/model/File.d.ts +88 -88
  38. package/dist/erpnext/model/Fulfiller.d.ts +97 -97
  39. package/dist/erpnext/model/FulfillerSettings.d.ts +66 -66
  40. package/dist/erpnext/model/FulfillmentStation.d.ts +2 -2
  41. package/dist/erpnext/model/Item.d.ts +819 -819
  42. package/dist/erpnext/model/Item.js +2 -2
  43. package/dist/erpnext/model/PaymentEntry.d.ts +197 -0
  44. package/dist/erpnext/model/PaymentEntry.js +63 -0
  45. package/dist/erpnext/model/ProjectedQuantityReport.d.ts +178 -178
  46. package/dist/erpnext/model/PurchaseOrder.d.ts +528 -528
  47. package/dist/erpnext/model/Receipt.d.ts +448 -448
  48. package/dist/erpnext/model/Receipt.js +2 -2
  49. package/dist/erpnext/model/ReceiptDraft.d.ts +392 -392
  50. package/dist/erpnext/model/Shipment.d.ts +709 -709
  51. package/dist/erpnext/model/ShippingProvider.d.ts +198 -198
  52. package/dist/erpnext/model/StockEntry.d.ts +248 -0
  53. package/dist/erpnext/model/StockEntry.js +76 -0
  54. package/dist/erpnext/model/StockReconciliation.d.ts +187 -0
  55. package/dist/erpnext/model/StockReconciliation.js +44 -0
  56. package/dist/erpnext/model/Supplier.d.ts +105 -0
  57. package/dist/erpnext/model/Supplier.js +39 -0
  58. package/dist/erpnext/model/Waitlist.d.ts +32 -0
  59. package/dist/erpnext/model/Waitlist.js +19 -0
  60. package/dist/erpnext/model/WarehouseCategory.d.ts +6 -6
  61. package/dist/erpnext/resourceRequest.d.ts +39 -10
  62. package/dist/erpnext/resourceRequest.js +115 -14
  63. package/dist/index.d.ts +39 -4
  64. package/dist/index.js +43 -8
  65. package/dist/utils/fernet.server.d.ts +11 -11
  66. package/dist/utils/fernet.server.js +0 -1
  67. package/dist/utils/request.js +2 -2
  68. package/dist/utils/zodUtils.d.ts +2 -1
  69. package/dist/utils/zodUtils.js +14 -1
  70. package/package.json +4 -1
  71. package/dist/erpnext/doctypes/country.d.ts +0 -9
  72. package/dist/erpnext/doctypes/country.js +0 -28
  73. package/dist/erpnext/erpnextRequests.d.ts +0 -1
  74. package/dist/erpnext/erpnextRequests.js +0 -15
  75. package/dist/erpnext.d.ts +0 -20
  76. package/dist/erpnext.js +0 -45
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ERPNextShipment = void 0;
13
+ const doctypeSubmittableResourceRequest_1 = require("../doctypeSubmittableResourceRequest");
14
+ const methodRequest_1 = require("../methodRequest");
15
+ const Shipment_1 = require("../model/Shipment");
16
+ class ERPNextShipment {
17
+ constructor(temporalClient) {
18
+ this.temporalClient = temporalClient;
19
+ this.baseRequest = new doctypeSubmittableResourceRequest_1.ERPNextDoctypeSubmittableResourceRequest(temporalClient, "Shipment", Shipment_1.Shipment);
20
+ this.methodRequest = new methodRequest_1.ERPNextMethodRequest(temporalClient);
21
+ this.getList = this.baseRequest.getList;
22
+ this.getById = this.baseRequest.getById;
23
+ this.updateById = this.baseRequest.updateById;
24
+ this.deleteById = this.baseRequest.deleteById;
25
+ this.create = this.baseRequest.create;
26
+ this.cancel = this.baseRequest.cancel;
27
+ this.submit = this.baseRequest.submit;
28
+ }
29
+ createShipmentDraft(deliveryNoteName) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const draft = yield this.methodRequest.request({
32
+ methodName: "erpnext.stock.doctype.delivery_note.delivery_note.make_shipment",
33
+ requestMethod: "POST",
34
+ responseValidationModel: Shipment_1.ShipmentDraftFromDeliveryNote,
35
+ params: `?source_name=${deliveryNoteName}`,
36
+ });
37
+ return draft;
38
+ });
39
+ }
40
+ addShippingLabelAndSubmit(shipmentErpNextName, body) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const shipment = yield this.baseRequest.updateById({
43
+ resourceId: shipmentErpNextName,
44
+ inputValidationModel: Shipment_1.ShipmentAddShippingLabelAndSubmitBody,
45
+ body,
46
+ });
47
+ return shipment;
48
+ });
49
+ }
50
+ }
51
+ exports.ERPNextShipment = ERPNextShipment;
@@ -28,24 +28,29 @@ function getHeaders(credentials) {
28
28
  }
29
29
  function erpnextRequest(credentials, options) {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
- const baseUrl = options.methodName
31
+ var _a, _b;
32
+ const baseUrl = "methodName" in options && options.methodName
32
33
  ? `${credentials.erpnextUrl}/api/method/${options.methodName}`
33
- : options.resourceName
34
+ : "resourceName" in options && options.resourceName
34
35
  ? `${credentials.erpnextUrl}/api/resource/${options.resourceName}`
35
- : options.url;
36
+ : (_a = ("url" in options && options.url)) !== null && _a !== void 0 ? _a : undefined;
36
37
  if (!baseUrl)
37
38
  throw new Error("No resource or method name provided");
38
- const inputUrl = `${baseUrl.startsWith("/api/method") ? `${credentials.erpnextUrl}` : ""}${baseUrl}${options.resourceId ? `/${options.resourceId}` : ""}${options.params ? `${options.params}` : ""}`;
39
- const url = options.resourceName && options.requestMethod === "GET"
39
+ const inputUrl = `${baseUrl.startsWith("/api/method") ? `${credentials.erpnextUrl}` : ""}${baseUrl}${"resourceId" in options && options.resourceId
40
+ ? `/${options.resourceId}`
41
+ : ""}${options.params ? `${options.params}` : ""}`;
42
+ const url = "resourceName" in options &&
43
+ options.resourceName &&
44
+ options.requestMethod === "GET"
40
45
  ? inputUrl.includes("?")
41
46
  ? `${inputUrl}&limit=0`
42
- : !options.resourceId
47
+ : !("resourceId" in options && options.resourceId)
43
48
  ? `${inputUrl}?limit=0`
44
49
  : inputUrl
45
50
  : inputUrl;
46
51
  const combinedHeaders = Object.assign(Object.assign({}, getHeaders(credentials)), (options.headers ? options.headers : {}));
47
52
  // lgTemporal.info(`Temp url request check ${url}`);
48
- const unvalidatedResult = yield (0, request_1.request)(Object.assign({ headers: combinedHeaders, url, method: options.requestMethod, inputValidationModel: options.inputValidationModel || false, responseValidationModel: false }, (options.body ? { body: options.body } : {}))).catch((err) => {
53
+ const unvalidatedResult = yield (0, request_1.request)(Object.assign({ headers: combinedHeaders, url, method: options.requestMethod, inputValidationModel: (_b = ("inputValidationModel" in options && options.inputValidationModel)) !== null && _b !== void 0 ? _b : false, responseValidationModel: false }, ("body" in options && options.body ? { body: options.body } : {}))).catch((err) => {
49
54
  throw err.status
50
55
  ? new Error(`Error ${err.status}: ${err.response &&
51
56
  typeof err.response === "object" &&
@@ -55,10 +60,10 @@ function erpnextRequest(credentials, options) {
55
60
  : JSON.stringify(err.response)}`)
56
61
  : err;
57
62
  });
58
- if (options.responseValidationModel === false)
63
+ if (!options.responseValidationModel)
59
64
  return unvalidatedResult;
60
65
  let returnValue;
61
- if (options.methodName) {
66
+ if ("methodName" in options && options.methodName) {
62
67
  const validatedResult = (0, zodUtils_1.validateData)(unvalidatedResult, ERPNextResponse_1.ERPNextMethodResponse);
63
68
  returnValue = (0, zodUtils_1.validateData)(validatedResult.message, options.responseValidationModel);
64
69
  }
@@ -73,10 +78,7 @@ function erpNextDownloadFile(credentials, url) {
73
78
  return __awaiter(this, void 0, void 0, function* () {
74
79
  const isErpNextPrivateUrl = url.includes("/api/method");
75
80
  const inputUrl = `${url.startsWith("/api/method") ? `${credentials.erpnextUrl}` : ""}${url}`;
76
- let response = yield fetch(inputUrl, {
77
- headers: isErpNextPrivateUrl ? getHeaders(credentials) : undefined,
78
- redirect: isErpNextPrivateUrl ? "manual" : "follow",
79
- });
81
+ let response = yield fetch(inputUrl, Object.assign(Object.assign({}, (isErpNextPrivateUrl ? { headers: getHeaders(credentials) } : {})), { redirect: isErpNextPrivateUrl ? "manual" : "follow" }));
80
82
  if ((response === null || response === void 0 ? void 0 : response.status) === 302) {
81
83
  const redirectUrl = response.headers.get("location");
82
84
  if (!redirectUrl)
@@ -0,0 +1,10 @@
1
+ import { TemporalClient } from "../client";
2
+ import { ERPNextCredentials } from "./model/ERPNextQueue";
3
+ import { ERPNextValidatedFileType } from "./model/File";
4
+ export declare class ERPNextFileRequests {
5
+ private client;
6
+ private credentials;
7
+ constructor(client: TemporalClient, credentials?: ERPNextCredentials);
8
+ fileDownload: (url: string) => Promise<Buffer<ArrayBufferLike>>;
9
+ fileUpload: (file: Buffer, filename: string, doctypeToLinkTo?: string, docnameToLinkTo?: string, isPrivate?: boolean, priority?: number) => Promise<ERPNextValidatedFileType>;
10
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ERPNextFileRequests = void 0;
13
+ const erpnextRequestWrapper_1 = require("./erpnextRequestWrapper");
14
+ const File_1 = require("./model/File");
15
+ class ERPNextFileRequests {
16
+ constructor(client, credentials) {
17
+ this.fileDownload = (url) => __awaiter(this, void 0, void 0, function* () {
18
+ if (!this.credentials)
19
+ throw new Error("File download not possible. Please provide ERPNext API credentials.");
20
+ return yield (0, erpnextRequestWrapper_1.erpNextDownloadFile)(this.credentials, url);
21
+ });
22
+ this.fileUpload = (file_1, filename_1, ...args_1) => __awaiter(this, [file_1, filename_1, ...args_1], void 0, function* (file, filename, doctypeToLinkTo = "", docnameToLinkTo = "", isPrivate = true, priority = 5) {
23
+ if (!this.credentials)
24
+ throw new Error("File upload not possible. Please provide ERPNext API credentials.");
25
+ const body = Object.assign({ filedata: file.toString("base64"), filename, from_form: 1, is_private: isPrivate ? 1 : 0 }, (doctypeToLinkTo &&
26
+ docnameToLinkTo && {
27
+ doctype: doctypeToLinkTo,
28
+ docname: docnameToLinkTo,
29
+ }));
30
+ const result = yield (0, erpnextRequestWrapper_1.erpnextRequest)(this.credentials, {
31
+ requestMethod: "POST",
32
+ responseValidationModel: File_1.ERPNextValidatedFile,
33
+ methodName: "uploadfile",
34
+ body,
35
+ });
36
+ return result;
37
+ });
38
+ this.client = client;
39
+ this.credentials = credentials;
40
+ }
41
+ }
42
+ exports.ERPNextFileRequests = ERPNextFileRequests;
@@ -0,0 +1,15 @@
1
+ import { z, ZodTypeAny } from "zod";
2
+ import { TemporalClient } from "../client";
3
+ export declare class ERPNextMethodRequest {
4
+ private temporalClient;
5
+ constructor(temporalClient: TemporalClient);
6
+ request<T extends ZodTypeAny, K extends ZodTypeAny>({ methodName, requestMethod, body, inputValidationModel, responseValidationModel, params, priority, }: {
7
+ methodName: string;
8
+ requestMethod: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
9
+ body?: z.TypeOf<K>;
10
+ inputValidationModel?: K;
11
+ responseValidationModel?: T;
12
+ params?: string;
13
+ priority?: number;
14
+ }): Promise<z.TypeOf<T>>;
15
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ERPNextMethodRequest = void 0;
13
+ const zod_1 = require("zod");
14
+ class ERPNextMethodRequest {
15
+ constructor(temporalClient) {
16
+ this.temporalClient = temporalClient;
17
+ }
18
+ request(_a) {
19
+ return __awaiter(this, arguments, void 0, function* ({ methodName, requestMethod, body, inputValidationModel, responseValidationModel, params, priority = 5, }) {
20
+ if (responseValidationModel && !responseValidationModel.description)
21
+ throw new Error("Resource model must have a description");
22
+ const result = yield this.temporalClient.executeERPNextRequestWorkflow(`${requestMethod}-${methodName}`, Object.assign(Object.assign(Object.assign(Object.assign({ methodName,
23
+ requestMethod }, (inputValidationModel ? { inputValidationModel } : {})), { responseValidationModel: responseValidationModel
24
+ ? zod_1.z
25
+ .object({ message: responseValidationModel })
26
+ .describe(responseValidationModel.description)
27
+ : undefined }), (params ? { params } : {})), { body }), "erpnext", priority);
28
+ return result.message;
29
+ });
30
+ }
31
+ }
32
+ exports.ERPNextMethodRequest = ERPNextMethodRequest;