@itzenata/efact-node 1.0.1

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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/dist/_generated/api/invoices-api.d.ts +367 -0
  4. package/dist/_generated/api/invoices-api.d.ts.map +1 -0
  5. package/dist/_generated/api/invoices-api.js +485 -0
  6. package/dist/_generated/api/invoices-api.js.map +1 -0
  7. package/dist/_generated/api.d.ts +13 -0
  8. package/dist/_generated/api.d.ts.map +1 -0
  9. package/dist/_generated/api.js +16 -0
  10. package/dist/_generated/api.js.map +1 -0
  11. package/dist/_generated/base.d.ts +67 -0
  12. package/dist/_generated/base.d.ts.map +1 -0
  13. package/dist/_generated/base.js +65 -0
  14. package/dist/_generated/base.js.map +1 -0
  15. package/dist/_generated/common.d.ts +66 -0
  16. package/dist/_generated/common.d.ts.map +1 -0
  17. package/dist/_generated/common.js +135 -0
  18. package/dist/_generated/common.js.map +1 -0
  19. package/dist/_generated/configuration.d.ts +92 -0
  20. package/dist/_generated/configuration.d.ts.map +1 -0
  21. package/dist/_generated/configuration.js +97 -0
  22. package/dist/_generated/configuration.js.map +1 -0
  23. package/dist/_generated/index.d.ts +15 -0
  24. package/dist/_generated/index.d.ts.map +1 -0
  25. package/dist/_generated/index.js +18 -0
  26. package/dist/_generated/index.js.map +1 -0
  27. package/dist/_generated/models/api-response-invoice-response.d.ts +45 -0
  28. package/dist/_generated/models/api-response-invoice-response.d.ts.map +1 -0
  29. package/dist/_generated/models/api-response-invoice-response.js +16 -0
  30. package/dist/_generated/models/api-response-invoice-response.js.map +1 -0
  31. package/dist/_generated/models/api-response-invoice-status-response.d.ts +45 -0
  32. package/dist/_generated/models/api-response-invoice-status-response.d.ts.map +1 -0
  33. package/dist/_generated/models/api-response-invoice-status-response.js +16 -0
  34. package/dist/_generated/models/api-response-invoice-status-response.js.map +1 -0
  35. package/dist/_generated/models/api-response-page-response-invoice-response.d.ts +45 -0
  36. package/dist/_generated/models/api-response-page-response-invoice-response.d.ts.map +1 -0
  37. package/dist/_generated/models/api-response-page-response-invoice-response.js +16 -0
  38. package/dist/_generated/models/api-response-page-response-invoice-response.js.map +1 -0
  39. package/dist/_generated/models/create-invoice-line-request.d.ts +55 -0
  40. package/dist/_generated/models/create-invoice-line-request.d.ts.map +1 -0
  41. package/dist/_generated/models/create-invoice-line-request.js +16 -0
  42. package/dist/_generated/models/create-invoice-line-request.js.map +1 -0
  43. package/dist/_generated/models/create-invoice-request.d.ts +82 -0
  44. package/dist/_generated/models/create-invoice-request.d.ts.map +1 -0
  45. package/dist/_generated/models/create-invoice-request.js +22 -0
  46. package/dist/_generated/models/create-invoice-request.js.map +1 -0
  47. package/dist/_generated/models/field-error.d.ts +31 -0
  48. package/dist/_generated/models/field-error.d.ts.map +1 -0
  49. package/dist/_generated/models/field-error.js +16 -0
  50. package/dist/_generated/models/field-error.js.map +1 -0
  51. package/dist/_generated/models/index.d.ts +11 -0
  52. package/dist/_generated/models/index.d.ts.map +1 -0
  53. package/dist/_generated/models/index.js +12 -0
  54. package/dist/_generated/models/index.js.map +1 -0
  55. package/dist/_generated/models/invoice-response.d.ts +221 -0
  56. package/dist/_generated/models/invoice-response.d.ts.map +1 -0
  57. package/dist/_generated/models/invoice-response.js +24 -0
  58. package/dist/_generated/models/invoice-response.js.map +1 -0
  59. package/dist/_generated/models/invoice-status-response.d.ts +83 -0
  60. package/dist/_generated/models/invoice-status-response.d.ts.map +1 -0
  61. package/dist/_generated/models/invoice-status-response.js +24 -0
  62. package/dist/_generated/models/invoice-status-response.js.map +1 -0
  63. package/dist/_generated/models/page-response-invoice-response.d.ts +62 -0
  64. package/dist/_generated/models/page-response-invoice-response.d.ts.map +1 -0
  65. package/dist/_generated/models/page-response-invoice-response.js +16 -0
  66. package/dist/_generated/models/page-response-invoice-response.js.map +1 -0
  67. package/dist/_generated/models/update-invoice-request.d.ts +121 -0
  68. package/dist/_generated/models/update-invoice-request.d.ts.map +1 -0
  69. package/dist/_generated/models/update-invoice-request.js +31 -0
  70. package/dist/_generated/models/update-invoice-request.js.map +1 -0
  71. package/dist/client.d.ts +73 -0
  72. package/dist/client.d.ts.map +1 -0
  73. package/dist/client.js +155 -0
  74. package/dist/client.js.map +1 -0
  75. package/dist/errors.d.ts +100 -0
  76. package/dist/errors.d.ts.map +1 -0
  77. package/dist/errors.js +129 -0
  78. package/dist/errors.js.map +1 -0
  79. package/dist/index.d.ts +7 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +9 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/invoices.d.ts +36 -0
  84. package/dist/invoices.d.ts.map +1 -0
  85. package/dist/invoices.js +53 -0
  86. package/dist/invoices.js.map +1 -0
  87. package/dist/runtime.d.ts +34 -0
  88. package/dist/runtime.d.ts.map +1 -0
  89. package/dist/runtime.js +105 -0
  90. package/dist/runtime.js.map +1 -0
  91. package/package.json +66 -0
  92. package/src/_generated/.openapi-generator/FILES +21 -0
  93. package/src/_generated/.openapi-generator/VERSION +1 -0
  94. package/src/_generated/.openapi-generator-ignore +23 -0
  95. package/src/_generated/api/invoices-api.ts +662 -0
  96. package/src/_generated/api.ts +19 -0
  97. package/src/_generated/base.ts +87 -0
  98. package/src/_generated/common.ts +151 -0
  99. package/src/_generated/configuration.ts +111 -0
  100. package/src/_generated/git_push.sh +57 -0
  101. package/src/_generated/index.ts +19 -0
  102. package/src/_generated/models/api-response-invoice-response.ts +55 -0
  103. package/src/_generated/models/api-response-invoice-status-response.ts +55 -0
  104. package/src/_generated/models/api-response-page-response-invoice-response.ts +55 -0
  105. package/src/_generated/models/create-invoice-line-request.ts +61 -0
  106. package/src/_generated/models/create-invoice-request.ts +93 -0
  107. package/src/_generated/models/field-error.ts +37 -0
  108. package/src/_generated/models/index.ts +11 -0
  109. package/src/_generated/models/invoice-response.ts +230 -0
  110. package/src/_generated/models/invoice-status-response.ts +92 -0
  111. package/src/_generated/models/page-response-invoice-response.ts +70 -0
  112. package/src/_generated/models/update-invoice-request.ts +131 -0
  113. package/src/client.ts +215 -0
  114. package/src/errors.ts +166 -0
  115. package/src/index.ts +35 -0
  116. package/src/invoices.ts +80 -0
  117. package/src/runtime.ts +179 -0
@@ -0,0 +1,83 @@
1
+ /**
2
+ * EFact API
3
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
4
+ *
5
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
6
+ * Contact: contact@itzenata.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Lightweight status response for polling invoice processing state
14
+ * @export
15
+ * @interface InvoiceStatusResponse
16
+ */
17
+ export interface InvoiceStatusResponse {
18
+ /**
19
+ * Unique invoice identifier
20
+ * @type {string}
21
+ * @memberof InvoiceStatusResponse
22
+ */
23
+ 'id'?: string;
24
+ /**
25
+ * Current processing status
26
+ * @type {string}
27
+ * @memberof InvoiceStatusResponse
28
+ */
29
+ 'status'?: InvoiceStatusResponseStatusEnum;
30
+ /**
31
+ * DGI clearance reference assigned after successful submission
32
+ * @type {string}
33
+ * @memberof InvoiceStatusResponse
34
+ */
35
+ 'dgiReference'?: string;
36
+ /**
37
+ * Raw QR code payload content assigned by DGI after clearance
38
+ * @type {string}
39
+ * @memberof InvoiceStatusResponse
40
+ */
41
+ 'dgiQrPayload'?: string;
42
+ /**
43
+ * DGI error code if submission was rejected
44
+ * @type {string}
45
+ * @memberof InvoiceStatusResponse
46
+ */
47
+ 'dgiErrorCode'?: string;
48
+ /**
49
+ * DGI human-readable error description if submission was rejected
50
+ * @type {string}
51
+ * @memberof InvoiceStatusResponse
52
+ */
53
+ 'dgiErrorMessage'?: string;
54
+ /**
55
+ * Timestamp when the invoice was submitted to DGI
56
+ * @type {string}
57
+ * @memberof InvoiceStatusResponse
58
+ */
59
+ 'dgiSubmittedAt'?: string;
60
+ /**
61
+ * Timestamp when DGI validated (cleared) the invoice
62
+ * @type {string}
63
+ * @memberof InvoiceStatusResponse
64
+ */
65
+ 'dgiValidatedAt'?: string;
66
+ /**
67
+ * Timestamp when DGI rejected the invoice
68
+ * @type {string}
69
+ * @memberof InvoiceStatusResponse
70
+ */
71
+ 'dgiRejectedAt'?: string;
72
+ }
73
+ export declare const InvoiceStatusResponseStatusEnum: {
74
+ readonly Pending: "PENDING";
75
+ readonly Signed: "SIGNED";
76
+ readonly Transmitted: "TRANSMITTED";
77
+ readonly Accepted: "ACCEPTED";
78
+ readonly Rejected: "REJECTED";
79
+ readonly Failed: "FAILED";
80
+ readonly Cancelled: "CANCELLED";
81
+ };
82
+ export type InvoiceStatusResponseStatusEnum = typeof InvoiceStatusResponseStatusEnum[keyof typeof InvoiceStatusResponseStatusEnum];
83
+ //# sourceMappingURL=invoice-status-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-status-response.d.ts","sourceRoot":"","sources":["../../../src/_generated/models/invoice-status-response.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAIH;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,+BAA+B,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,+BAA+B;;;;;;;;CAQlC,CAAC;AAEX,MAAM,MAAM,+BAA+B,GAAG,OAAO,+BAA+B,CAAC,MAAM,OAAO,+BAA+B,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ // @ts-nocheck
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * EFact API
6
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
7
+ *
8
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
9
+ * Contact: contact@itzenata.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ export const InvoiceStatusResponseStatusEnum = {
16
+ Pending: 'PENDING',
17
+ Signed: 'SIGNED',
18
+ Transmitted: 'TRANSMITTED',
19
+ Accepted: 'ACCEPTED',
20
+ Rejected: 'REJECTED',
21
+ Failed: 'FAILED',
22
+ Cancelled: 'CANCELLED'
23
+ };
24
+ //# sourceMappingURL=invoice-status-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-status-response.js","sourceRoot":"","sources":["../../../src/_generated/models/invoice-status-response.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAkEH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC3C,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CAChB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * EFact API
3
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
4
+ *
5
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
6
+ * Contact: contact@itzenata.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { InvoiceResponse } from './invoice-response.js';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface PageResponseInvoiceResponse
17
+ */
18
+ export interface PageResponseInvoiceResponse {
19
+ /**
20
+ *
21
+ * @type {Array<InvoiceResponse>}
22
+ * @memberof PageResponseInvoiceResponse
23
+ */
24
+ 'content'?: Array<InvoiceResponse>;
25
+ /**
26
+ *
27
+ * @type {number}
28
+ * @memberof PageResponseInvoiceResponse
29
+ */
30
+ 'page'?: number;
31
+ /**
32
+ *
33
+ * @type {number}
34
+ * @memberof PageResponseInvoiceResponse
35
+ */
36
+ 'size'?: number;
37
+ /**
38
+ *
39
+ * @type {number}
40
+ * @memberof PageResponseInvoiceResponse
41
+ */
42
+ 'totalElements'?: number;
43
+ /**
44
+ *
45
+ * @type {number}
46
+ * @memberof PageResponseInvoiceResponse
47
+ */
48
+ 'totalPages'?: number;
49
+ /**
50
+ *
51
+ * @type {boolean}
52
+ * @memberof PageResponseInvoiceResponse
53
+ */
54
+ 'first'?: boolean;
55
+ /**
56
+ *
57
+ * @type {boolean}
58
+ * @memberof PageResponseInvoiceResponse
59
+ */
60
+ 'last'?: boolean;
61
+ }
62
+ //# sourceMappingURL=page-response-invoice-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-response-invoice-response.d.ts","sourceRoot":"","sources":["../../../src/_generated/models/page-response-invoice-response.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,16 @@
1
+ // @ts-nocheck
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * EFact API
6
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
7
+ *
8
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
9
+ * Contact: contact@itzenata.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=page-response-invoice-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-response-invoice-response.js","sourceRoot":"","sources":["../../../src/_generated/models/page-response-invoice-response.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * EFact API
3
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
4
+ *
5
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
6
+ * Contact: contact@itzenata.com
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Request body to update an existing invoice. All fields are optional — only provided fields are applied.
14
+ * @export
15
+ * @interface UpdateInvoiceRequest
16
+ */
17
+ export interface UpdateInvoiceRequest {
18
+ /**
19
+ * Updated invoice number
20
+ * @type {string}
21
+ * @memberof UpdateInvoiceRequest
22
+ */
23
+ 'invoiceNumber'?: string;
24
+ /**
25
+ * Updated invoice status
26
+ * @type {string}
27
+ * @memberof UpdateInvoiceRequest
28
+ */
29
+ 'status'?: UpdateInvoiceRequestStatusEnum;
30
+ /**
31
+ * Buyer\'s ICE — 15-digit Moroccan business identifier
32
+ * @type {string}
33
+ * @memberof UpdateInvoiceRequest
34
+ */
35
+ 'buyerIce'?: string;
36
+ /**
37
+ * Buyer\'s legal company name
38
+ * @type {string}
39
+ * @memberof UpdateInvoiceRequest
40
+ */
41
+ 'buyerName'?: string;
42
+ /**
43
+ * Buyer\'s registered address
44
+ * @type {string}
45
+ * @memberof UpdateInvoiceRequest
46
+ */
47
+ 'buyerAddress'?: string;
48
+ /**
49
+ * Date the invoice was issued
50
+ * @type {string}
51
+ * @memberof UpdateInvoiceRequest
52
+ */
53
+ 'invoiceDate'?: string;
54
+ /**
55
+ * Payment due date
56
+ * @type {string}
57
+ * @memberof UpdateInvoiceRequest
58
+ */
59
+ 'dueDate'?: string;
60
+ /**
61
+ * 3-letter ISO 4217 currency code
62
+ * @type {string}
63
+ * @memberof UpdateInvoiceRequest
64
+ */
65
+ 'currency'?: string;
66
+ /**
67
+ * Payment method
68
+ * @type {string}
69
+ * @memberof UpdateInvoiceRequest
70
+ */
71
+ 'paymentMethod'?: UpdateInvoiceRequestPaymentMethodEnum;
72
+ /**
73
+ * DGI clearance reference assigned after submission
74
+ * @type {string}
75
+ * @memberof UpdateInvoiceRequest
76
+ */
77
+ 'dgiReference'?: string;
78
+ /**
79
+ * Error code if processing failed
80
+ * @type {string}
81
+ * @memberof UpdateInvoiceRequest
82
+ */
83
+ 'errorCode'?: string;
84
+ /**
85
+ * Human-readable error message if processing failed
86
+ * @type {string}
87
+ * @memberof UpdateInvoiceRequest
88
+ */
89
+ 'errorMessage'?: string;
90
+ /**
91
+ * Storage path of the generated UBL 2.1 XML
92
+ * @type {string}
93
+ * @memberof UpdateInvoiceRequest
94
+ */
95
+ 'ublXmlPath'?: string;
96
+ /**
97
+ * Storage path of the XAdES-B-B signed XML
98
+ * @type {string}
99
+ * @memberof UpdateInvoiceRequest
100
+ */
101
+ 'signedXmlPath'?: string;
102
+ }
103
+ export declare const UpdateInvoiceRequestStatusEnum: {
104
+ readonly Pending: "PENDING";
105
+ readonly Signed: "SIGNED";
106
+ readonly Transmitted: "TRANSMITTED";
107
+ readonly Accepted: "ACCEPTED";
108
+ readonly Rejected: "REJECTED";
109
+ readonly Failed: "FAILED";
110
+ readonly Cancelled: "CANCELLED";
111
+ };
112
+ export type UpdateInvoiceRequestStatusEnum = typeof UpdateInvoiceRequestStatusEnum[keyof typeof UpdateInvoiceRequestStatusEnum];
113
+ export declare const UpdateInvoiceRequestPaymentMethodEnum: {
114
+ readonly BankTransfer: "BANK_TRANSFER";
115
+ readonly Cash: "CASH";
116
+ readonly Check: "CHECK";
117
+ readonly Card: "CARD";
118
+ readonly Other: "OTHER";
119
+ };
120
+ export type UpdateInvoiceRequestPaymentMethodEnum = typeof UpdateInvoiceRequestPaymentMethodEnum[keyof typeof UpdateInvoiceRequestPaymentMethodEnum];
121
+ //# sourceMappingURL=update-invoice-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-invoice-request.d.ts","sourceRoot":"","sources":["../../../src/_generated/models/update-invoice-request.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAIH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,8BAA8B,CAAC;IAC1C;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,qCAAqC,CAAC;IACxD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,8BAA8B;;;;;;;;CAQjC,CAAC;AAEX,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAChI,eAAO,MAAM,qCAAqC;;;;;;CAMxC,CAAC;AAEX,MAAM,MAAM,qCAAqC,GAAG,OAAO,qCAAqC,CAAC,MAAM,OAAO,qCAAqC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ // @ts-nocheck
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * EFact API
6
+ * Compliance-as-a-service backend for Moroccan DGI electronic invoicing
7
+ *
8
+ * The version of the OpenAPI document: v0.0.1-SNAPSHOT
9
+ * Contact: contact@itzenata.com
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ export const UpdateInvoiceRequestStatusEnum = {
16
+ Pending: 'PENDING',
17
+ Signed: 'SIGNED',
18
+ Transmitted: 'TRANSMITTED',
19
+ Accepted: 'ACCEPTED',
20
+ Rejected: 'REJECTED',
21
+ Failed: 'FAILED',
22
+ Cancelled: 'CANCELLED'
23
+ };
24
+ export const UpdateInvoiceRequestPaymentMethodEnum = {
25
+ BankTransfer: 'BANK_TRANSFER',
26
+ Cash: 'CASH',
27
+ Check: 'CHECK',
28
+ Card: 'CARD',
29
+ Other: 'OTHER'
30
+ };
31
+ //# sourceMappingURL=update-invoice-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-invoice-request.js","sourceRoot":"","sources":["../../../src/_generated/models/update-invoice-request.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAgGH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CAChB,CAAC;AAGX,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACjD,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACR,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { InvoicesResource, type ListInvoicesParams } from "./invoices.js";
2
+ import type { CreateInvoiceRequest, InvoiceResponse, InvoiceStatusResponse, PageResponseInvoiceResponse, UpdateInvoiceRequest } from "./_generated/index.js";
3
+ /**
4
+ * Environnements publics et leur URL de base (host uniquement — les chemins
5
+ * générés portent déjà le préfixe /v1). Seuls les environnements destinés aux
6
+ * clients sont nommés ; le dev local passe par l'option `baseUrl`
7
+ * (ex. baseUrl: "http://localhost:8080").
8
+ *
9
+ * NOTE : l'URL "production" pointe temporairement sur preview, qui fait office
10
+ * de prod tant que l'URL de prod définitive n'est pas déployée. La changer ici
11
+ * (et dans les serveurs OpenAPI) suffira — aucun changement côté clients.
12
+ */
13
+ export declare const ENVIRONMENTS: {
14
+ readonly production: "https://preview.efact-api.itzenata.com";
15
+ };
16
+ export type EFactEnvironment = keyof typeof ENVIRONMENTS;
17
+ export interface EFactOptions {
18
+ /** Environnement cible. Défaut "production". Ignoré si `baseUrl` est fourni. */
19
+ environment?: EFactEnvironment;
20
+ /** URL de base explicite (host), p.ex. "http://localhost:8080" en dev local. */
21
+ baseUrl?: string;
22
+ /** Délai max par requête, en ms (défaut 30000). */
23
+ timeout?: number;
24
+ /** Nombre max de nouveaux essais pour les requêtes sûres (défaut 2). */
25
+ maxRetries?: number;
26
+ }
27
+ /**
28
+ * Client EFact e-Facture.
29
+ *
30
+ * @example
31
+ * const efact = new EFact(process.env.EFACT_SECRET_KEY);
32
+ * const invoice = await efact.invoices.create({ ... });
33
+ */
34
+ export declare class EFact {
35
+ private readonly http;
36
+ private readonly baseUrl;
37
+ private readonly maskedKey;
38
+ /** Opérations sur les factures : efact.invoices.create/list/retrieve/... */
39
+ readonly invoices: InvoicesResource;
40
+ /**
41
+ * @param secretKey Clé secrète au format efact_sk_... (jamais loggée en clair).
42
+ * @param options Options facultatives (environment, baseUrl, timeout, maxRetries).
43
+ */
44
+ constructor(secretKey: string, options?: EFactOptions);
45
+ /** Configuration non sensible (la clé est toujours masquée). */
46
+ getConfig(): {
47
+ baseUrl: string;
48
+ apiKeyMasked: string;
49
+ };
50
+ }
51
+ export interface EFactClientConfig {
52
+ apiKey: string;
53
+ baseUrl?: string;
54
+ timeout?: number;
55
+ maxRetries?: number;
56
+ }
57
+ /** @deprecated Utiliser `new EFact(secretKey, { baseUrl })`. */
58
+ export declare class EFactClient extends EFact {
59
+ constructor(config: EFactClientConfig);
60
+ /** @deprecated Utiliser efact.invoices.create(). */
61
+ createInvoice(data: CreateInvoiceRequest): Promise<InvoiceResponse>;
62
+ /** @deprecated Utiliser efact.invoices.list(). */
63
+ listInvoices(params?: ListInvoicesParams): Promise<PageResponseInvoiceResponse>;
64
+ /** @deprecated Utiliser efact.invoices.retrieve(). */
65
+ getInvoice(invoiceId: string): Promise<InvoiceResponse>;
66
+ /** @deprecated Utiliser efact.invoices.retrieveStatus(). */
67
+ getInvoiceStatus(invoiceId: string): Promise<InvoiceStatusResponse>;
68
+ /** @deprecated Utiliser efact.invoices.update(). */
69
+ updateInvoice(invoiceId: string, data: UpdateInvoiceRequest): Promise<InvoiceResponse>;
70
+ /** @deprecated Utiliser efact.invoices.cancel(). */
71
+ cancelInvoice(invoiceId: string): Promise<InvoiceResponse>;
72
+ }
73
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;;CAEf,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,YAAY,CAAC;AAMzD,MAAM,WAAW,YAAY;IAC3B,gFAAgF;IAChF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,4EAA4E;IAC5E,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAE3C;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAkBzD,gEAAgE;IACzD,SAAS,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAG9D;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gEAAgE;AAChE,qBAAa,WAAY,SAAQ,KAAK;gBACxB,MAAM,EAAE,iBAAiB;IAQrC,oDAAoD;IACpD,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAInE,kDAAkD;IAClD,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI/E,sDAAsD;IACtD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvD,4DAA4D;IAC5D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAInE,oDAAoD;IACpD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF,oDAAoD;IACpD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAG3D"}
package/dist/client.js ADDED
@@ -0,0 +1,155 @@
1
+ import { InvoicesApi } from "./_generated/api/invoices-api.js";
2
+ import { EFactConfigError } from "./errors.js";
3
+ import { createHttpInstance } from "./runtime.js";
4
+ import { InvoicesResource } from "./invoices.js";
5
+ /**
6
+ * Environnements publics et leur URL de base (host uniquement — les chemins
7
+ * générés portent déjà le préfixe /v1). Seuls les environnements destinés aux
8
+ * clients sont nommés ; le dev local passe par l'option `baseUrl`
9
+ * (ex. baseUrl: "http://localhost:8080").
10
+ *
11
+ * NOTE : l'URL "production" pointe temporairement sur preview, qui fait office
12
+ * de prod tant que l'URL de prod définitive n'est pas déployée. La changer ici
13
+ * (et dans les serveurs OpenAPI) suffira — aucun changement côté clients.
14
+ */
15
+ export const ENVIRONMENTS = {
16
+ production: "https://preview.efact-api.itzenata.com",
17
+ };
18
+ const DEFAULT_ENVIRONMENT = "production";
19
+ const DEFAULT_TIMEOUT_MS = 30_000;
20
+ const DEFAULT_MAX_RETRIES = 2;
21
+ /**
22
+ * Client EFact e-Facture.
23
+ *
24
+ * @example
25
+ * const efact = new EFact(process.env.EFACT_SECRET_KEY);
26
+ * const invoice = await efact.invoices.create({ ... });
27
+ */
28
+ export class EFact {
29
+ http;
30
+ baseUrl;
31
+ maskedKey;
32
+ /** Opérations sur les factures : efact.invoices.create/list/retrieve/... */
33
+ invoices;
34
+ /**
35
+ * @param secretKey Clé secrète au format efact_sk_... (jamais loggée en clair).
36
+ * @param options Options facultatives (environment, baseUrl, timeout, maxRetries).
37
+ */
38
+ constructor(secretKey, options = {}) {
39
+ if (typeof secretKey !== "string" || secretKey.trim() === "") {
40
+ throw new EFactConfigError("[EFact] Erreur d'initialisation : la clé secrète est obligatoire.");
41
+ }
42
+ const key = secretKey.trim();
43
+ this.baseUrl = normalizeBaseUrl(resolveBaseUrl(options));
44
+ this.maskedKey = maskKey(key);
45
+ const timeoutMs = resolvePositiveInt(options.timeout, DEFAULT_TIMEOUT_MS, "timeout");
46
+ const maxRetries = resolveNonNegativeInt(options.maxRetries, DEFAULT_MAX_RETRIES, "maxRetries");
47
+ this.http = createHttpInstance(key, this.baseUrl, { timeoutMs, maxRetries });
48
+ // baseURL est porté par l'instance axios : InvoicesApi n'a besoin que d'elle.
49
+ this.invoices = new InvoicesResource(new InvoicesApi(undefined, undefined, this.http));
50
+ }
51
+ /** Configuration non sensible (la clé est toujours masquée). */
52
+ getConfig() {
53
+ return { baseUrl: this.baseUrl, apiKeyMasked: this.maskedKey };
54
+ }
55
+ }
56
+ /** @deprecated Utiliser `new EFact(secretKey, { baseUrl })`. */
57
+ export class EFactClient extends EFact {
58
+ constructor(config) {
59
+ const opts = {};
60
+ if (config.baseUrl !== undefined)
61
+ opts.baseUrl = config.baseUrl;
62
+ if (config.timeout !== undefined)
63
+ opts.timeout = config.timeout;
64
+ if (config.maxRetries !== undefined)
65
+ opts.maxRetries = config.maxRetries;
66
+ super(config.apiKey, opts);
67
+ }
68
+ /** @deprecated Utiliser efact.invoices.create(). */
69
+ createInvoice(data) {
70
+ return this.invoices.create(data);
71
+ }
72
+ /** @deprecated Utiliser efact.invoices.list(). */
73
+ listInvoices(params) {
74
+ return this.invoices.list(params);
75
+ }
76
+ /** @deprecated Utiliser efact.invoices.retrieve(). */
77
+ getInvoice(invoiceId) {
78
+ return this.invoices.retrieve(invoiceId);
79
+ }
80
+ /** @deprecated Utiliser efact.invoices.retrieveStatus(). */
81
+ getInvoiceStatus(invoiceId) {
82
+ return this.invoices.retrieveStatus(invoiceId);
83
+ }
84
+ /** @deprecated Utiliser efact.invoices.update(). */
85
+ updateInvoice(invoiceId, data) {
86
+ return this.invoices.update(invoiceId, data);
87
+ }
88
+ /** @deprecated Utiliser efact.invoices.cancel(). */
89
+ cancelInvoice(invoiceId) {
90
+ return this.invoices.cancel(invoiceId);
91
+ }
92
+ }
93
+ // ============================================================================
94
+ // Validation des options de configuration.
95
+ // ============================================================================
96
+ function resolveBaseUrl(options) {
97
+ if (options.baseUrl !== undefined) {
98
+ return options.baseUrl;
99
+ }
100
+ const env = options.environment ?? DEFAULT_ENVIRONMENT;
101
+ const url = ENVIRONMENTS[env];
102
+ if (url === undefined) {
103
+ const known = Object.keys(ENVIRONMENTS).join(", ");
104
+ throw new EFactConfigError(`[EFact] environment inconnu : "${env}". Valeurs valides : ${known}.`);
105
+ }
106
+ return url;
107
+ }
108
+ /** Valide la baseUrl (URL absolue http/https) et avertit si non-HTTPS hors localhost. */
109
+ function normalizeBaseUrl(raw) {
110
+ let parsed;
111
+ try {
112
+ parsed = new URL(raw);
113
+ }
114
+ catch {
115
+ throw new EFactConfigError(`[EFact] baseUrl invalide : "${raw}" n'est pas une URL absolue.`);
116
+ }
117
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
118
+ throw new EFactConfigError(`[EFact] baseUrl invalide : protocole "${parsed.protocol}" non supporté (http/https requis).`);
119
+ }
120
+ const isLocal = parsed.hostname === "localhost" ||
121
+ parsed.hostname === "127.0.0.1" ||
122
+ parsed.hostname === "[::1]" ||
123
+ parsed.hostname === "::1";
124
+ if (parsed.protocol === "http:" && !isLocal) {
125
+ console.warn(`[EFact] Attention : baseUrl utilise HTTP non chiffré (${parsed.origin}). ` +
126
+ "La clé secrète transiterait en clair. Utilisez HTTPS en production.");
127
+ }
128
+ return raw;
129
+ }
130
+ /**
131
+ * Version masquée de la clé : au plus 4 caractères de tête/queue, jamais plus
132
+ * de la moitié d'une clé courte. Pour le diagnostic.
133
+ */
134
+ function maskKey(k) {
135
+ if (k.length <= 8)
136
+ return "****";
137
+ return `${k.slice(0, 4)}...${k.slice(-4)}`;
138
+ }
139
+ function resolvePositiveInt(value, fallback, name) {
140
+ if (value === undefined)
141
+ return fallback;
142
+ if (!Number.isFinite(value) || value <= 0) {
143
+ throw new EFactConfigError(`[EFact] Option "${name}" invalide : un nombre positif est attendu.`);
144
+ }
145
+ return Math.floor(value);
146
+ }
147
+ function resolveNonNegativeInt(value, fallback, name) {
148
+ if (value === undefined)
149
+ return fallback;
150
+ if (!Number.isFinite(value) || value < 0) {
151
+ throw new EFactConfigError(`[EFact] Option "${name}" invalide : un entier >= 0 est attendu.`);
152
+ }
153
+ return Math.floor(value);
154
+ }
155
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}