@deliverart/sdk-js-integration 0.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 (113) hide show
  1. package/.changeset/config.json +11 -0
  2. package/.github/workflows/workflow.yml +47 -0
  3. package/.prettierrc +7 -0
  4. package/README.md +3 -0
  5. package/dist/index.cjs +3660 -0
  6. package/dist/index.d.cts +32181 -0
  7. package/dist/index.d.ts +32181 -0
  8. package/dist/index.js +3385 -0
  9. package/eslint.config.js +37 -0
  10. package/package.json +48 -0
  11. package/src/activatable-integration-data-schemas.ts +50 -0
  12. package/src/activatable-integration-types.ts +17 -0
  13. package/src/activatable-integration.ts +86 -0
  14. package/src/activation-request.ts +53 -0
  15. package/src/cancellation-request-types.ts +34 -0
  16. package/src/cancellation-request.ts +21 -0
  17. package/src/index.ts +9 -0
  18. package/src/integration-schemas.ts +31 -0
  19. package/src/requests/DeleteIntegration.ts +27 -0
  20. package/src/requests/GetIntegrationDetails.ts +30 -0
  21. package/src/requests/GetIntegrations.ts +63 -0
  22. package/src/requests/UpdateIntegration.ts +36 -0
  23. package/src/requests/activation-requests/ActivateIntegrationActivationRequest.ts +38 -0
  24. package/src/requests/activation-requests/AnnotateIntegrationActivationRequest.ts +46 -0
  25. package/src/requests/activation-requests/CreateIntegrationActivationRequest.ts +80 -0
  26. package/src/requests/activation-requests/DeleteIntegrationActivationRequest.ts +27 -0
  27. package/src/requests/activation-requests/GetIntegrationActivationRequestDetails.ts +37 -0
  28. package/src/requests/activation-requests/GetIntegrationActivationRequests.ts +86 -0
  29. package/src/requests/activation-requests/RespondIntegrationActivationRequest.ts +58 -0
  30. package/src/requests/activation-requests/SendIntegrationActivationRequestToPartner.ts +38 -0
  31. package/src/requests/activation-requests/UpdateIntegrationActivationRequest.ts +91 -0
  32. package/src/requests/activation-requests/index.ts +9 -0
  33. package/src/requests/cancellation-requests/CancelIntegrationCancellationRequest.ts +38 -0
  34. package/src/requests/cancellation-requests/CreateIntegrationCancellationRequest.ts +41 -0
  35. package/src/requests/cancellation-requests/DeleteIntegrationCancellationRequest.ts +27 -0
  36. package/src/requests/cancellation-requests/GetIntegrationCancellationRequestDetails.ts +37 -0
  37. package/src/requests/cancellation-requests/GetIntegrationCancellationRequests.ts +72 -0
  38. package/src/requests/cancellation-requests/index.ts +5 -0
  39. package/src/requests/index.ts +7 -0
  40. package/src/requests/services/cassa_in_cloud/CreateIntegrationCassaInCloud.ts +42 -0
  41. package/src/requests/services/cassa_in_cloud/DeleteIntegrationCassaInCloud.ts +27 -0
  42. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudClientLogRequestDetails.ts +40 -0
  43. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudClientLogRequests.ts +64 -0
  44. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudDetails.ts +36 -0
  45. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudList.ts +61 -0
  46. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudSyncMenuProcessDetails.ts +40 -0
  47. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudSyncMenuProcesses.ts +69 -0
  48. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudWebHookEventDetails.ts +40 -0
  49. package/src/requests/services/cassa_in_cloud/GetIntegrationCassaInCloudWebHookEvents.ts +69 -0
  50. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncCustomers.ts +27 -0
  51. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncOrganizations.ts +27 -0
  52. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncProducts.ts +27 -0
  53. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncSalesModes.ts +27 -0
  54. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncStock.ts +27 -0
  55. package/src/requests/services/cassa_in_cloud/IntegrationCassaInCloudSyncTimetables.ts +27 -0
  56. package/src/requests/services/cassa_in_cloud/UpdateIntegrationCassaInCloud.ts +39 -0
  57. package/src/requests/services/cassa_in_cloud/index.ts +17 -0
  58. package/src/requests/services/deliveroo/CreateIntegrationDeliveroo.ts +40 -0
  59. package/src/requests/services/deliveroo/DeleteIntegrationDeliveroo.ts +27 -0
  60. package/src/requests/services/deliveroo/GetIntegrationDeliverooClientLogRequestDetails.ts +40 -0
  61. package/src/requests/services/deliveroo/GetIntegrationDeliverooClientLogRequests.ts +64 -0
  62. package/src/requests/services/deliveroo/GetIntegrationDeliverooDetails.ts +36 -0
  63. package/src/requests/services/deliveroo/GetIntegrationDeliverooList.ts +61 -0
  64. package/src/requests/services/deliveroo/GetIntegrationDeliverooMenuVersionDetails.ts +35 -0
  65. package/src/requests/services/deliveroo/GetIntegrationDeliverooMenuVersions.ts +62 -0
  66. package/src/requests/services/deliveroo/GetIntegrationDeliverooSyncMenuProcessDetails.ts +40 -0
  67. package/src/requests/services/deliveroo/GetIntegrationDeliverooSyncMenuProcesses.ts +69 -0
  68. package/src/requests/services/deliveroo/GetIntegrationDeliverooWebhookEventDetails.ts +40 -0
  69. package/src/requests/services/deliveroo/GetIntegrationDeliverooWebhookEvents.ts +69 -0
  70. package/src/requests/services/deliveroo/IntegrationDeliverooSyncMenu.ts +27 -0
  71. package/src/requests/services/deliveroo/IntegrationDeliverooSyncOpeningHours.ts +27 -0
  72. package/src/requests/services/deliveroo/UpdateIntegrationDeliveroo.ts +39 -0
  73. package/src/requests/services/deliveroo/UpdateIntegrationDeliverooSiteStatus.ts +43 -0
  74. package/src/requests/services/deliveroo/index.ts +16 -0
  75. package/src/requests/services/glovo/CreateIntegrationGlovo.ts +39 -0
  76. package/src/requests/services/glovo/DeleteIntegrationGlovo.ts +27 -0
  77. package/src/requests/services/glovo/GetIntegrationGlovoClientLogRequestDetails.ts +39 -0
  78. package/src/requests/services/glovo/GetIntegrationGlovoClientLogRequests.ts +64 -0
  79. package/src/requests/services/glovo/GetIntegrationGlovoDetails.ts +36 -0
  80. package/src/requests/services/glovo/GetIntegrationGlovoList.ts +55 -0
  81. package/src/requests/services/glovo/GetIntegrationGlovoMenuUpdateDetails.ts +39 -0
  82. package/src/requests/services/glovo/GetIntegrationGlovoMenuUpdates.ts +66 -0
  83. package/src/requests/services/glovo/GetIntegrationGlovoMenuVersionDetails.ts +35 -0
  84. package/src/requests/services/glovo/GetIntegrationGlovoMenuVersions.ts +62 -0
  85. package/src/requests/services/glovo/GetIntegrationGlovoWebhookEventDetails.ts +39 -0
  86. package/src/requests/services/glovo/GetIntegrationGlovoWebhookEvents.ts +68 -0
  87. package/src/requests/services/glovo/IntegrationGlovoSyncMenu.ts +27 -0
  88. package/src/requests/services/glovo/UpdateIntegrationGlovo.ts +39 -0
  89. package/src/requests/services/glovo/UpdateIntegrationGlovoStoreStatus.ts +43 -0
  90. package/src/requests/services/glovo/index.ts +15 -0
  91. package/src/requests/services/index.ts +4 -0
  92. package/src/requests/services/justeat/CreateIntegrationJustEat.ts +39 -0
  93. package/src/requests/services/justeat/DeleteIntegrationJustEat.ts +27 -0
  94. package/src/requests/services/justeat/GetIntegrationJustEatClientLogRequestDetails.ts +40 -0
  95. package/src/requests/services/justeat/GetIntegrationJustEatClientLogRequests.ts +64 -0
  96. package/src/requests/services/justeat/GetIntegrationJustEatDetails.ts +36 -0
  97. package/src/requests/services/justeat/GetIntegrationJustEatList.ts +60 -0
  98. package/src/requests/services/justeat/GetIntegrationJustEatMenuVersionDetails.ts +35 -0
  99. package/src/requests/services/justeat/GetIntegrationJustEatMenuVersions.ts +62 -0
  100. package/src/requests/services/justeat/GetIntegrationJustEatSyncMenuProcessDetails.ts +40 -0
  101. package/src/requests/services/justeat/GetIntegrationJustEatSyncMenuProcesses.ts +69 -0
  102. package/src/requests/services/justeat/IntegrationJustEatSyncMenu.ts +27 -0
  103. package/src/requests/services/justeat/IntegrationJustEatSyncOpeningTimes.ts +27 -0
  104. package/src/requests/services/justeat/UpdateIntegrationJustEat.ts +39 -0
  105. package/src/requests/services/justeat/UpdateIntegrationJustEatRestaurantStatus.ts +44 -0
  106. package/src/requests/services/justeat/index.ts +14 -0
  107. package/src/schemas.ts +97 -0
  108. package/src/service-schemas/cassa_in_cloud.ts +154 -0
  109. package/src/service-schemas/deliveroo.ts +159 -0
  110. package/src/service-schemas/glovo.ts +153 -0
  111. package/src/service-schemas/justeat.ts +121 -0
  112. package/src/types.ts +227 -0
  113. package/tsconfig.json +15 -0
@@ -0,0 +1,37 @@
1
+ /* eslint-disable */
2
+ // eslint.config.js per @typescript-eslint v8
3
+ import js from '@eslint/js'
4
+ import prettier from 'eslint-config-prettier'
5
+ import simpleImportSortPlugin from 'eslint-plugin-simple-import-sort'
6
+ import tsPlugin from '@typescript-eslint/eslint-plugin'
7
+ import tsParser from '@typescript-eslint/parser'
8
+
9
+ export default [
10
+ js.configs.recommended,
11
+ {
12
+ files: ['**/*.ts'],
13
+ languageOptions: {
14
+ parser: tsParser,
15
+ globals: {
16
+ process: 'readonly',
17
+ },
18
+ parserOptions: {
19
+ project: ['./tsconfig.json'],
20
+ tsconfigRootDir: process.cwd(),
21
+ sourceType: 'module',
22
+ },
23
+ },
24
+ plugins: {
25
+ '@typescript-eslint': tsPlugin,
26
+ 'simple-import-sort': simpleImportSortPlugin,
27
+ },
28
+ rules: {
29
+ 'simple-import-sort/imports': 'error',
30
+ 'simple-import-sort/exports': 'error',
31
+ '@typescript-eslint/no-unused-vars': 'warn',
32
+ },
33
+ },
34
+ prettier,
35
+ ]
36
+
37
+ export const ignores = ['dist', 'node_modules']
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@deliverart/sdk-js-integration",
3
+ "description": "Deliverart JavaScript SDK for Integration Management",
4
+ "version": "0.0.1",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.cjs"
12
+ }
13
+ },
14
+ "dependencies": {
15
+ "@deliverart/sdk-js-core": "0.1.3",
16
+ "@deliverart/sdk-js-global-types": "0.0.15",
17
+ "@deliverart/sdk-js-point-of-sale": "0.0.6",
18
+ "@deliverart/sdk-js-sales-mode": "0.0.3",
19
+ "axios": "1.9.0",
20
+ "zod": "3.25.67"
21
+ },
22
+ "devDependencies": {
23
+ "@changesets/cli": "^2.29.4",
24
+ "@eslint/js": "9.28.0",
25
+ "@types/node": "22.15.30",
26
+ "@typescript-eslint/eslint-plugin": "8.33.1",
27
+ "@typescript-eslint/parser": "8.33.1",
28
+ "eslint": "9.28.0",
29
+ "eslint-config-prettier": "10.1.5",
30
+ "eslint-plugin-simple-import-sort": "12.1.1",
31
+ "prettier": "3.5.3",
32
+ "tsup": "8.5.0",
33
+ "typescript": "5.8.3"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "scripts": {
39
+ "build": "tsup src/index.ts --dts --format esm,cjs",
40
+ "dev": "tsup src/index.ts --dts --watch",
41
+ "lint": "eslint .",
42
+ "lint:fix": "eslint . --fix",
43
+ "prettier": "prettier --check .",
44
+ "prettier:fix": "prettier --write .",
45
+ "version": "@changesets/cli version",
46
+ "release": "@changesets/cli publish"
47
+ }
48
+ }
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod'
2
+
3
+ import { integrationCassaInCloudDirectionSchema } from './types'
4
+
5
+ export const integrationDeliverooDataSchema = z.object({
6
+ brandId: z.string(),
7
+ siteId: z.string(),
8
+ salesModeId: z.string().nullable(),
9
+ })
10
+ export type IntegrationDeliverooData = z.infer<typeof integrationDeliverooDataSchema>
11
+
12
+ export const integrationGlovoDataSchema = z.object({
13
+ storeId: z.string(),
14
+ salesModeId: z.string().nullable(),
15
+ })
16
+ export type IntegrationGlovoData = z.infer<typeof integrationGlovoDataSchema>
17
+
18
+ export const integrationJustEatDataSchema = z.object({
19
+ restaurantId: z.string(),
20
+ salesModeId: z.string().nullable(),
21
+ })
22
+ export type IntegrationJustEatData = z.infer<typeof integrationJustEatDataSchema>
23
+
24
+ export const integrationCassaInCloudDataSchema = z.object({
25
+ apiKey: z.string(),
26
+ idSalesPoint: z.number(),
27
+ direction: integrationCassaInCloudDirectionSchema,
28
+ locale: z.string(),
29
+ })
30
+ export type IntegrationCassaInCloudData = z.infer<typeof integrationCassaInCloudDataSchema>
31
+
32
+ export const integrationServiceDataSchema = z.discriminatedUnion('service', [
33
+ z.object({
34
+ service: z.literal('deliveroo'),
35
+ data: integrationDeliverooDataSchema,
36
+ }),
37
+ z.object({
38
+ service: z.literal('glovo'),
39
+ data: integrationGlovoDataSchema,
40
+ }),
41
+ z.object({
42
+ service: z.literal('justeat'),
43
+ data: integrationJustEatDataSchema,
44
+ }),
45
+ z.object({
46
+ service: z.literal('cassa_in_cloud'),
47
+ data: integrationCassaInCloudDataSchema,
48
+ }),
49
+ ])
50
+ export type IntegrationServiceData = z.infer<typeof integrationServiceDataSchema>
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod'
2
+
3
+ export const activatableIntegrationStatuses = [
4
+ 'waiting_for_user',
5
+ 'waiting_for_admin',
6
+ 'request_sent_partner',
7
+ 'active',
8
+ 'failed',
9
+ ] as const
10
+ export const activatableIntegrationStatusSchema = z.enum(activatableIntegrationStatuses)
11
+ export type ActivatableIntegrationStatus = z.infer<typeof activatableIntegrationStatusSchema>
12
+
13
+ export const activatableIntegrationHealthStatuses = ['success', 'waiting', 'error'] as const
14
+ export const activatableIntegrationHealthStatusSchema = z.enum(activatableIntegrationHealthStatuses)
15
+ export type ActivatableIntegrationHealthStatus = z.infer<
16
+ typeof activatableIntegrationHealthStatusSchema
17
+ >
@@ -0,0 +1,86 @@
1
+ import { datetimeSchema } from '@deliverart/sdk-js-global-types'
2
+ import { z } from 'zod'
3
+
4
+ import {
5
+ integrationCassaInCloudDataSchema,
6
+ integrationDeliverooDataSchema,
7
+ integrationGlovoDataSchema,
8
+ integrationJustEatDataSchema,
9
+ } from './activatable-integration-data-schemas'
10
+ import {
11
+ activatableIntegrationHealthStatusSchema,
12
+ activatableIntegrationStatusSchema,
13
+ } from './activatable-integration-types'
14
+ import {
15
+ integrationCassaInCloudNullablePathSchema,
16
+ integrationCassaInCloudPathSchema,
17
+ integrationDeliverooNullablePathSchema,
18
+ integrationDeliverooPathSchema,
19
+ integrationGlovoNullablePathSchema,
20
+ integrationGlovoPathSchema,
21
+ integrationJustEatNullablePathSchema,
22
+ integrationJustEatPathSchema,
23
+ integrationProviderSchema,
24
+ } from './types'
25
+
26
+ export const activatableIntegrationBaseSchema = z.object({
27
+ id: z.string(),
28
+ connectionId: z.string().nullable(),
29
+ integration: z
30
+ .union([
31
+ integrationDeliverooPathSchema,
32
+ integrationGlovoPathSchema,
33
+ integrationJustEatPathSchema,
34
+ integrationCassaInCloudPathSchema,
35
+ ])
36
+ .nullable(),
37
+ status: activatableIntegrationStatusSchema,
38
+ healthStatus: activatableIntegrationHealthStatusSchema,
39
+ provider: integrationProviderSchema,
40
+ name: z.string(),
41
+ message: z.string().nullable(),
42
+ internalNotes: z.string().nullable(),
43
+ createdAt: datetimeSchema,
44
+ updatedAt: datetimeSchema,
45
+ updates: z.array(
46
+ z.object({
47
+ status: activatableIntegrationStatusSchema,
48
+ message: z.string(),
49
+ updatedAt: datetimeSchema,
50
+ }),
51
+ ),
52
+ })
53
+
54
+ function createIntegrationSchema<T extends string, D extends z.ZodTypeAny, I extends z.ZodTypeAny>(
55
+ service: T,
56
+ dataSchema: D,
57
+ integrationPathSchema: I,
58
+ ) {
59
+ return z
60
+ .object({
61
+ service: z.literal(service),
62
+ data: dataSchema,
63
+ integration: integrationPathSchema.nullable(),
64
+ })
65
+ .merge(activatableIntegrationBaseSchema.omit({ integration: true }))
66
+ }
67
+
68
+ export const activatableIntegrationSchema = z.discriminatedUnion('service', [
69
+ createIntegrationSchema(
70
+ 'deliveroo',
71
+ integrationDeliverooDataSchema,
72
+ integrationDeliverooNullablePathSchema,
73
+ ),
74
+ createIntegrationSchema('glovo', integrationGlovoDataSchema, integrationGlovoNullablePathSchema),
75
+ createIntegrationSchema(
76
+ 'justeat',
77
+ integrationJustEatDataSchema,
78
+ integrationJustEatNullablePathSchema,
79
+ ),
80
+ createIntegrationSchema(
81
+ 'cassa_in_cloud',
82
+ integrationCassaInCloudDataSchema,
83
+ integrationCassaInCloudNullablePathSchema,
84
+ ),
85
+ ])
86
+ export type ActivatableIntegration = z.infer<typeof activatableIntegrationSchema>
@@ -0,0 +1,53 @@
1
+ import { pointOfSaleSchema } from '@deliverart/sdk-js-point-of-sale'
2
+ import { z } from 'zod'
3
+
4
+ import {
5
+ activatableIntegrationBaseSchema,
6
+ activatableIntegrationSchema,
7
+ } from './activatable-integration'
8
+ import {
9
+ integrationCassaInCloudDataSchema,
10
+ integrationDeliverooDataSchema,
11
+ integrationGlovoDataSchema,
12
+ integrationJustEatDataSchema,
13
+ } from './activatable-integration-data-schemas'
14
+
15
+ export const integrationActivationRequestSchema = activatableIntegrationSchema
16
+ export type IntegrationActivationRequest = z.infer<typeof integrationActivationRequestSchema>
17
+
18
+ export const integrationActivationRequestDetailsSchema = z.discriminatedUnion('service', [
19
+ z
20
+ .object({
21
+ pointOfSale: pointOfSaleSchema,
22
+ service: z.literal('deliveroo'),
23
+ data: integrationDeliverooDataSchema,
24
+ })
25
+ .merge(activatableIntegrationBaseSchema),
26
+
27
+ z
28
+ .object({
29
+ pointOfSale: pointOfSaleSchema,
30
+ service: z.literal('glovo'),
31
+ data: integrationGlovoDataSchema,
32
+ })
33
+ .merge(activatableIntegrationBaseSchema),
34
+
35
+ z
36
+ .object({
37
+ pointOfSale: pointOfSaleSchema,
38
+ service: z.literal('justeat'),
39
+ data: integrationJustEatDataSchema,
40
+ })
41
+ .merge(activatableIntegrationBaseSchema),
42
+
43
+ z
44
+ .object({
45
+ pointOfSale: pointOfSaleSchema,
46
+ service: z.literal('cassa_in_cloud'),
47
+ data: integrationCassaInCloudDataSchema,
48
+ })
49
+ .merge(activatableIntegrationBaseSchema),
50
+ ])
51
+ export type IntegrationActivationRequestDetails = z.infer<
52
+ typeof integrationActivationRequestDetailsSchema
53
+ >
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod'
2
+
3
+ export const integrationCancellationRequestStatuses = ['pending', 'aborted', 'completed'] as const
4
+ export const integrationCancellationRequestStatusSchema = z.enum(
5
+ integrationCancellationRequestStatuses,
6
+ )
7
+ export type IntegrationCancellationRequestStatus = z.infer<
8
+ typeof integrationCancellationRequestStatusSchema
9
+ >
10
+
11
+ export const integrationCancellationRequestPathSchema = z
12
+ .string()
13
+ .refine(val => /^\/integrations\/cancellation_requests\/[a-z_]+\/[0-9a-fA-F-]{36}$/.test(val), {
14
+ message: 'Invalid integration cancellation request path format',
15
+ })
16
+ export type IntegrationCancellationRequestPath = z.infer<
17
+ typeof integrationCancellationRequestPathSchema
18
+ >
19
+
20
+ export const integrationCancellationRequestNullablePathSchema = z
21
+ .string()
22
+ .nullable()
23
+ .refine(
24
+ val => {
25
+ if (!val) return true
26
+ return /^\/integrations\/cancellation_requests\/[a-z_]+\/[0-9a-fA-F-]{36}$/.test(val)
27
+ },
28
+ {
29
+ message: 'Invalid integration cancellation request path format',
30
+ },
31
+ )
32
+ export type IntegrationCancellationRequestNullablePath = z.infer<
33
+ typeof integrationCancellationRequestNullablePathSchema
34
+ >
@@ -0,0 +1,21 @@
1
+ import { datetimeSchema } from '@deliverart/sdk-js-global-types'
2
+ import { z } from 'zod'
3
+
4
+ import { integrationCancellationRequestStatusSchema } from './cancellation-request-types'
5
+ import { integrationNullablePathSchema } from './types'
6
+
7
+ export const integrationCancellationRequestSchema = z.object({
8
+ id: z.string(),
9
+ status: integrationCancellationRequestStatusSchema,
10
+ createdAt: datetimeSchema,
11
+ updatedAt: datetimeSchema,
12
+ })
13
+ export type IntegrationCancellationRequest = z.infer<typeof integrationCancellationRequestSchema>
14
+
15
+ export const integrationCancellationRequestDetailsSchema =
16
+ integrationCancellationRequestSchema.extend({
17
+ integration: integrationNullablePathSchema,
18
+ })
19
+ export type IntegrationCancellationRequestDetails = z.infer<
20
+ typeof integrationCancellationRequestDetailsSchema
21
+ >
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ export * from './activatable-integration'
2
+ export * from './activatable-integration-data-schemas'
3
+ export * from './activatable-integration-types'
4
+ export * from './activation-request'
5
+ export * from './cancellation-request'
6
+ export * from './cancellation-request-types'
7
+ export * from './requests'
8
+ export * from './schemas'
9
+ export * from './types'
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod'
2
+
3
+ import {
4
+ integrationCassaInCloudDetailsSchema,
5
+ integrationCassaInCloudSchema,
6
+ } from './service-schemas/cassa_in_cloud'
7
+ import {
8
+ integrationDeliverooDetailsSchema,
9
+ integrationDeliverooSchema,
10
+ } from './service-schemas/deliveroo'
11
+ import { integrationGlovoDetailsSchema, integrationGlovoSchema } from './service-schemas/glovo'
12
+ import {
13
+ integrationJustEatDetailsSchema,
14
+ integrationJustEatSchema,
15
+ } from './service-schemas/justeat'
16
+
17
+ export const integrationSchema = z.discriminatedUnion('service', [
18
+ integrationJustEatSchema,
19
+ integrationDeliverooSchema,
20
+ integrationGlovoSchema,
21
+ integrationCassaInCloudSchema,
22
+ ])
23
+ export type Integration = z.infer<typeof integrationSchema>
24
+
25
+ export const integrationDetailsSchema = z.discriminatedUnion('service', [
26
+ integrationJustEatDetailsSchema,
27
+ integrationDeliverooDetailsSchema,
28
+ integrationGlovoDetailsSchema,
29
+ integrationCassaInCloudDetailsSchema,
30
+ ])
31
+ export type IntegrationDetails = z.infer<typeof integrationDetailsSchema>
@@ -0,0 +1,27 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import { z } from 'zod'
3
+
4
+ export const deleteIntegrationInputSchema = z.undefined()
5
+ export const deleteIntegrationResponseSchema = z.undefined()
6
+
7
+ export class DeleteIntegration extends AbstractApiRequest<void, void> {
8
+ readonly method = 'DELETE'
9
+ readonly contentType = 'application/json'
10
+ readonly accept = 'application/json'
11
+
12
+ readonly inputSchema = deleteIntegrationInputSchema
13
+ readonly outputSchema = deleteIntegrationResponseSchema
14
+ readonly querySchema = undefined
15
+ readonly headersSchema = undefined
16
+
17
+ private readonly integrationId: string
18
+
19
+ constructor(integrationId: string) {
20
+ super()
21
+ this.integrationId = integrationId
22
+ }
23
+
24
+ getPath(): string {
25
+ return `/integrations/${this.integrationId}`
26
+ }
27
+ }
@@ -0,0 +1,30 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import { z } from 'zod'
3
+
4
+ import { IntegrationDetails, integrationDetailsSchema } from '../integration-schemas'
5
+
6
+ export const getIntegrationDetailsInputSchema = z.undefined()
7
+
8
+ export const getIntegrationDetailsResponseSchema = integrationDetailsSchema
9
+ export type GetIntegrationDetailsResponse = IntegrationDetails
10
+
11
+ export class GetIntegrationDetails extends AbstractApiRequest<void, GetIntegrationDetailsResponse> {
12
+ readonly method = 'GET'
13
+ readonly contentType = 'application/json'
14
+ readonly accept = 'application/json'
15
+ readonly inputSchema = getIntegrationDetailsInputSchema
16
+ readonly outputSchema = getIntegrationDetailsResponseSchema
17
+ readonly querySchema = undefined
18
+ readonly headersSchema = undefined
19
+
20
+ private readonly integrationId: string
21
+
22
+ constructor(integrationId: string) {
23
+ super()
24
+ this.integrationId = integrationId
25
+ }
26
+
27
+ getPath(): string {
28
+ return `/integrations/${this.integrationId}`
29
+ }
30
+ }
@@ -0,0 +1,63 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import {
3
+ createPaginatedSchema,
4
+ Paginated,
5
+ responseToPagination,
6
+ sortDirSchema,
7
+ timestampsFilterSchema,
8
+ } from '@deliverart/sdk-js-global-types'
9
+ import { AxiosResponse } from 'axios'
10
+ import { z } from 'zod'
11
+
12
+ import { Integration, integrationSchema } from '../integration-schemas'
13
+ import { integrationServiceSchema, integrationStatusSchema } from '../types'
14
+
15
+ export const getIntegrationsQuerySchema = z
16
+ .object({
17
+ status: integrationStatusSchema.optional(),
18
+ 'status[]': z.array(integrationStatusSchema).optional(),
19
+ connectionId: z.string().optional(),
20
+ 'connectionId[]': z.array(z.string()).optional(),
21
+ service: integrationServiceSchema.optional(),
22
+ 'order[createdAt]': sortDirSchema.optional(),
23
+ 'order[updatedAt]': sortDirSchema.optional(),
24
+ page: z.coerce.number().optional(),
25
+ })
26
+ .merge(timestampsFilterSchema)
27
+ export type GetIntegrationsQueryParams = z.infer<typeof getIntegrationsQuerySchema>
28
+
29
+ export const getIntegrationsResponseSchema = createPaginatedSchema(integrationSchema)
30
+ export type GetIntegrationsResponse = z.infer<typeof getIntegrationsResponseSchema>
31
+
32
+ export const getIntegrationsInputSchema = z.undefined()
33
+
34
+ export class GetIntegrations extends AbstractApiRequest<
35
+ void,
36
+ GetIntegrationsResponse,
37
+ GetIntegrationsQueryParams
38
+ > {
39
+ readonly method = 'GET'
40
+ readonly contentType = 'application/json'
41
+ readonly accept = 'application/json'
42
+
43
+ readonly inputSchema = getIntegrationsInputSchema
44
+ readonly outputSchema = getIntegrationsResponseSchema
45
+ readonly querySchema = getIntegrationsQuerySchema
46
+ readonly headersSchema = undefined
47
+
48
+ constructor(options?: { query?: GetIntegrationsQueryParams }) {
49
+ super(undefined, options)
50
+ }
51
+
52
+ getPath(): string {
53
+ return '/integrations'
54
+ }
55
+
56
+ parseResponse(data: unknown, rawResponse: AxiosResponse): Paginated<Integration> {
57
+ const integrations = z.array(integrationSchema).parse(data)
58
+ return this.validateOutput({
59
+ data: integrations,
60
+ pagination: responseToPagination(rawResponse),
61
+ })
62
+ }
63
+ }
@@ -0,0 +1,36 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import { z } from 'zod'
3
+
4
+ import { IntegrationDetails, integrationDetailsSchema } from '../integration-schemas'
5
+ import { writableIntegrationSchema } from '../schemas'
6
+
7
+ export const updateIntegrationInputSchema = writableIntegrationSchema.partial()
8
+ export type UpdateIntegrationInput = z.infer<typeof updateIntegrationInputSchema>
9
+
10
+ export const updateIntegrationResponseSchema = integrationDetailsSchema
11
+ export type UpdateIntegrationResponse = IntegrationDetails
12
+
13
+ export class UpdateIntegration extends AbstractApiRequest<
14
+ UpdateIntegrationInput,
15
+ UpdateIntegrationResponse
16
+ > {
17
+ readonly method = 'PATCH'
18
+ readonly contentType = 'application/merge-patch+json'
19
+ readonly accept = 'application/json'
20
+
21
+ readonly inputSchema = updateIntegrationInputSchema
22
+ readonly outputSchema = updateIntegrationResponseSchema
23
+ readonly querySchema = undefined
24
+ readonly headersSchema = undefined
25
+
26
+ private readonly integrationId: string
27
+
28
+ constructor(integrationId: string, input: UpdateIntegrationInput) {
29
+ super(input)
30
+ this.integrationId = integrationId
31
+ }
32
+
33
+ getPath(): string {
34
+ return `/integrations/${this.integrationId}`
35
+ }
36
+ }
@@ -0,0 +1,38 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import { z } from 'zod'
3
+
4
+ import {
5
+ IntegrationActivationRequestDetails,
6
+ integrationActivationRequestDetailsSchema,
7
+ } from '../../activation-request'
8
+
9
+ export const activateIntegrationActivationRequestInputSchema = z.undefined()
10
+
11
+ export const activateIntegrationActivationRequestResponseSchema =
12
+ integrationActivationRequestDetailsSchema
13
+ export type ActivateIntegrationActivationRequestResponse = IntegrationActivationRequestDetails
14
+
15
+ export class ActivateIntegrationActivationRequest extends AbstractApiRequest<
16
+ void,
17
+ ActivateIntegrationActivationRequestResponse
18
+ > {
19
+ readonly method = 'POST'
20
+ readonly contentType = 'application/json'
21
+ readonly accept = 'application/json'
22
+
23
+ readonly inputSchema = activateIntegrationActivationRequestInputSchema
24
+ readonly outputSchema = activateIntegrationActivationRequestResponseSchema
25
+ readonly querySchema = undefined
26
+ readonly headersSchema = undefined
27
+
28
+ private readonly integrationActivationRequestId: string
29
+
30
+ constructor(integrationActivationRequestId: string) {
31
+ super()
32
+ this.integrationActivationRequestId = integrationActivationRequestId
33
+ }
34
+
35
+ getPath(): string {
36
+ return `/integrations/activation_requests/${this.integrationActivationRequestId}/send-partner`
37
+ }
38
+ }
@@ -0,0 +1,46 @@
1
+ import { AbstractApiRequest } from '@deliverart/sdk-js-core'
2
+ import { z } from 'zod'
3
+
4
+ import {
5
+ IntegrationActivationRequestDetails,
6
+ integrationActivationRequestDetailsSchema,
7
+ } from '../../activation-request'
8
+
9
+ export const annotateIntegrationActivationRequestInputSchema = z.object({
10
+ message: z.string().min(1, 'Message is required'),
11
+ })
12
+ export type AnnotateIntegrationActivationRequestInput = z.infer<
13
+ typeof annotateIntegrationActivationRequestInputSchema
14
+ >
15
+
16
+ export const annotateIntegrationActivationRequestResponseSchema =
17
+ integrationActivationRequestDetailsSchema
18
+ export type AnnotateIntegrationActivationRequestResponse = IntegrationActivationRequestDetails
19
+
20
+ export class AnnotateIntegrationActivationRequest extends AbstractApiRequest<
21
+ AnnotateIntegrationActivationRequestInput,
22
+ AnnotateIntegrationActivationRequestResponse
23
+ > {
24
+ readonly method = 'POST'
25
+ readonly contentType = 'application/json'
26
+ readonly accept = 'application/json'
27
+
28
+ readonly inputSchema = annotateIntegrationActivationRequestInputSchema
29
+ readonly outputSchema = annotateIntegrationActivationRequestResponseSchema
30
+ readonly querySchema = undefined
31
+ readonly headersSchema = undefined
32
+
33
+ private readonly integrationActivationRequestId: string
34
+
35
+ constructor(
36
+ integrationActivationRequestId: string,
37
+ input: AnnotateIntegrationActivationRequestInput,
38
+ ) {
39
+ super(input)
40
+ this.integrationActivationRequestId = integrationActivationRequestId
41
+ }
42
+
43
+ getPath(): string {
44
+ return `/integrations/activation_requests/${this.integrationActivationRequestId}/annotate`
45
+ }
46
+ }