@deliverart/sdk-js-sales-mode 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.
- package/.changeset/config.json +11 -0
- package/.github/workflows/workflow.yml +47 -0
- package/.prettierrc +7 -0
- package/CHANGELOG.md +19 -0
- package/README.md +3 -0
- package/dist/index.cjs +227 -0
- package/dist/index.d.cts +464 -0
- package/dist/index.d.ts +464 -0
- package/dist/index.js +184 -0
- package/eslint.config.js +41 -0
- package/package.json +47 -0
- package/src/index.ts +3 -0
- package/src/models.ts +23 -0
- package/src/requests/CreateSalesMode.ts +32 -0
- package/src/requests/DeleteSalesMode.ts +27 -0
- package/src/requests/GetSalesModeDetails.ts +30 -0
- package/src/requests/GetSalesModes.ts +56 -0
- package/src/requests/UpdateSalesMode.ts +35 -0
- package/src/requests/index.ts +5 -0
- package/src/types.ts +22 -0
- package/tsconfig.json +15 -0
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@deliverart/sdk-js-sales-mode",
|
|
3
|
+
"description": "Deliverart JavaScript SDK for Sales Modes 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.13",
|
|
17
|
+
"@deliverart/sdk-js-point-of-sale": "0.0.4",
|
|
18
|
+
"axios": "1.9.0",
|
|
19
|
+
"zod": "3.25.67"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@changesets/cli": "^2.29.4",
|
|
23
|
+
"@eslint/js": "9.28.0",
|
|
24
|
+
"@types/node": "22.15.30",
|
|
25
|
+
"@typescript-eslint/eslint-plugin": "8.33.1",
|
|
26
|
+
"@typescript-eslint/parser": "8.33.1",
|
|
27
|
+
"eslint": "9.28.0",
|
|
28
|
+
"eslint-config-prettier": "10.1.5",
|
|
29
|
+
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
30
|
+
"prettier": "3.5.3",
|
|
31
|
+
"tsup": "8.5.0",
|
|
32
|
+
"typescript": "5.8.3"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsup src/index.ts --dts --format esm,cjs",
|
|
39
|
+
"dev": "tsup src/index.ts --dts --watch",
|
|
40
|
+
"lint": "eslint .",
|
|
41
|
+
"lint:fix": "eslint . --fix",
|
|
42
|
+
"prettier": "prettier --check .",
|
|
43
|
+
"prettier:fix": "prettier --write .",
|
|
44
|
+
"version": "@changesets/cli version",
|
|
45
|
+
"release": "@changesets/cli publish"
|
|
46
|
+
}
|
|
47
|
+
}
|
package/src/index.ts
ADDED
package/src/models.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { datetimeSchema } from '@deliverart/sdk-js-global-types'
|
|
2
|
+
import { pointOfSalePathSchema } from '@deliverart/sdk-js-point-of-sale'
|
|
3
|
+
import { z } from 'zod'
|
|
4
|
+
|
|
5
|
+
export const salesModeSchema = z.object({
|
|
6
|
+
id: z.string(),
|
|
7
|
+
pointOfSale: pointOfSalePathSchema,
|
|
8
|
+
name: z.string(),
|
|
9
|
+
createdAt: datetimeSchema,
|
|
10
|
+
updatedAt: datetimeSchema,
|
|
11
|
+
})
|
|
12
|
+
export type SalesMode = z.infer<typeof salesModeSchema>
|
|
13
|
+
|
|
14
|
+
export const writableSalesModeSchema = salesModeSchema.pick({
|
|
15
|
+
name: true,
|
|
16
|
+
})
|
|
17
|
+
export type WritableSalesMode = z.infer<typeof writableSalesModeSchema>
|
|
18
|
+
|
|
19
|
+
export const writableCreateSalesModeSchema = salesModeSchema.pick({
|
|
20
|
+
pointOfSale: true,
|
|
21
|
+
name: true,
|
|
22
|
+
})
|
|
23
|
+
export type WritableCreateSalesMode = z.infer<typeof writableCreateSalesModeSchema>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AbstractApiRequest } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { z } from 'zod'
|
|
3
|
+
|
|
4
|
+
import { SalesMode, salesModeSchema, writableCreateSalesModeSchema } from '../models'
|
|
5
|
+
|
|
6
|
+
export const createSalesModeInputSchema = writableCreateSalesModeSchema.required()
|
|
7
|
+
export type CreateSalesModeInput = z.infer<typeof createSalesModeInputSchema>
|
|
8
|
+
|
|
9
|
+
export const createSalesModeResponseSchema = salesModeSchema
|
|
10
|
+
export type CreateSalesModeResponse = SalesMode
|
|
11
|
+
|
|
12
|
+
export class CreateSalesMode extends AbstractApiRequest<
|
|
13
|
+
CreateSalesModeInput,
|
|
14
|
+
CreateSalesModeResponse
|
|
15
|
+
> {
|
|
16
|
+
readonly method = 'POST'
|
|
17
|
+
readonly contentType = 'application/json'
|
|
18
|
+
readonly accept = 'application/json'
|
|
19
|
+
|
|
20
|
+
readonly inputSchema = createSalesModeInputSchema
|
|
21
|
+
readonly outputSchema = createSalesModeResponseSchema
|
|
22
|
+
readonly querySchema = undefined
|
|
23
|
+
readonly headersSchema = undefined
|
|
24
|
+
|
|
25
|
+
constructor(input: CreateSalesModeInput) {
|
|
26
|
+
super(input)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getPath(): string {
|
|
30
|
+
return '/sales_modes'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AbstractApiRequest } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { z } from 'zod'
|
|
3
|
+
|
|
4
|
+
export const deleteSalesModeInputSchema = z.undefined()
|
|
5
|
+
export const deleteSalesModeResponseSchema = z.undefined()
|
|
6
|
+
|
|
7
|
+
export class DeleteSalesMode extends AbstractApiRequest<void, void> {
|
|
8
|
+
readonly method = 'DELETE'
|
|
9
|
+
readonly contentType = 'application/json'
|
|
10
|
+
readonly accept = 'application/json'
|
|
11
|
+
|
|
12
|
+
readonly inputSchema = deleteSalesModeInputSchema
|
|
13
|
+
readonly outputSchema = deleteSalesModeResponseSchema
|
|
14
|
+
readonly querySchema = undefined
|
|
15
|
+
readonly headersSchema = undefined
|
|
16
|
+
|
|
17
|
+
private readonly salesModeId: string
|
|
18
|
+
|
|
19
|
+
constructor(salesModeId: string) {
|
|
20
|
+
super()
|
|
21
|
+
this.salesModeId = salesModeId
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getPath(): string {
|
|
25
|
+
return `/sales_modes/${this.salesModeId}`
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AbstractApiRequest } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { z } from 'zod'
|
|
3
|
+
|
|
4
|
+
import { SalesMode, salesModeSchema } from '../models'
|
|
5
|
+
|
|
6
|
+
export const getSalesModeDetailsInputSchema = z.undefined()
|
|
7
|
+
|
|
8
|
+
export const getSalesModeDetailsResponseSchema = salesModeSchema
|
|
9
|
+
export type GetSalesModeDetailsResponse = SalesMode
|
|
10
|
+
|
|
11
|
+
export class GetSalesModeDetails extends AbstractApiRequest<void, GetSalesModeDetailsResponse> {
|
|
12
|
+
readonly method = 'GET'
|
|
13
|
+
readonly contentType = 'application/json'
|
|
14
|
+
readonly accept = 'application/json'
|
|
15
|
+
readonly inputSchema = getSalesModeDetailsInputSchema
|
|
16
|
+
readonly outputSchema = getSalesModeDetailsResponseSchema
|
|
17
|
+
readonly querySchema = undefined
|
|
18
|
+
readonly headersSchema = undefined
|
|
19
|
+
|
|
20
|
+
private readonly salesModeId: string
|
|
21
|
+
|
|
22
|
+
constructor(salesModeId: string) {
|
|
23
|
+
super()
|
|
24
|
+
this.salesModeId = salesModeId
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getPath(): string {
|
|
28
|
+
return `/sales_modes/${this.salesModeId}`
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AbstractApiRequest } from '@deliverart/sdk-js-core'
|
|
2
|
+
import {
|
|
3
|
+
createPaginatedSchema,
|
|
4
|
+
Paginated,
|
|
5
|
+
responseToPagination,
|
|
6
|
+
sortDirSchema,
|
|
7
|
+
} from '@deliverart/sdk-js-global-types'
|
|
8
|
+
import { AxiosResponse } from 'axios'
|
|
9
|
+
import { z } from 'zod'
|
|
10
|
+
|
|
11
|
+
import { SalesMode, salesModeSchema } from '../models'
|
|
12
|
+
|
|
13
|
+
export const getSalesModesQuerySchema = z.object({
|
|
14
|
+
name: z.string().optional(),
|
|
15
|
+
'order[name]': sortDirSchema.optional(),
|
|
16
|
+
'order[createdAt]': sortDirSchema.optional(),
|
|
17
|
+
'order[updatedAt]': sortDirSchema.optional(),
|
|
18
|
+
page: z.coerce.number().optional(),
|
|
19
|
+
})
|
|
20
|
+
export type GetSalesModesQueryParams = z.infer<typeof getSalesModesQuerySchema>
|
|
21
|
+
|
|
22
|
+
export const getSalesModesResponseSchema = createPaginatedSchema(salesModeSchema)
|
|
23
|
+
export type GetSalesModesResponse = z.infer<typeof getSalesModesResponseSchema>
|
|
24
|
+
|
|
25
|
+
export const getSalesModesInputSchema = z.undefined()
|
|
26
|
+
|
|
27
|
+
export class GetSalesModes extends AbstractApiRequest<
|
|
28
|
+
void,
|
|
29
|
+
GetSalesModesResponse,
|
|
30
|
+
GetSalesModesQueryParams
|
|
31
|
+
> {
|
|
32
|
+
readonly method = 'GET'
|
|
33
|
+
readonly contentType = 'application/json'
|
|
34
|
+
readonly accept = 'application/json'
|
|
35
|
+
|
|
36
|
+
readonly inputSchema = getSalesModesInputSchema
|
|
37
|
+
readonly outputSchema = getSalesModesResponseSchema
|
|
38
|
+
readonly querySchema = getSalesModesQuerySchema
|
|
39
|
+
readonly headersSchema = undefined
|
|
40
|
+
|
|
41
|
+
constructor(options?: { query?: GetSalesModesQueryParams }) {
|
|
42
|
+
super(undefined, options)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
getPath(): string {
|
|
46
|
+
return '/sales_modes'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
parseResponse(data: unknown, rawResponse: AxiosResponse): Paginated<SalesMode> {
|
|
50
|
+
const salesModes = z.array(salesModeSchema).parse(data)
|
|
51
|
+
return this.validateOutput({
|
|
52
|
+
data: salesModes,
|
|
53
|
+
pagination: responseToPagination(rawResponse),
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AbstractApiRequest } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { z } from 'zod'
|
|
3
|
+
|
|
4
|
+
import { SalesMode, salesModeSchema, writableSalesModeSchema } from '../models'
|
|
5
|
+
|
|
6
|
+
export const updateSalesModeInputSchema = writableSalesModeSchema.partial()
|
|
7
|
+
export type UpdateSalesModeInput = z.infer<typeof updateSalesModeInputSchema>
|
|
8
|
+
|
|
9
|
+
export const updateSalesModeResponseSchema = salesModeSchema
|
|
10
|
+
export type UpdateSalesModeResponse = SalesMode
|
|
11
|
+
|
|
12
|
+
export class UpdateSalesMode extends AbstractApiRequest<
|
|
13
|
+
UpdateSalesModeInput,
|
|
14
|
+
UpdateSalesModeResponse
|
|
15
|
+
> {
|
|
16
|
+
readonly method = 'PATCH'
|
|
17
|
+
readonly contentType = 'application/merge-patch+json'
|
|
18
|
+
readonly accept = 'application/json'
|
|
19
|
+
|
|
20
|
+
readonly inputSchema = updateSalesModeInputSchema
|
|
21
|
+
readonly outputSchema = updateSalesModeResponseSchema
|
|
22
|
+
readonly querySchema = undefined
|
|
23
|
+
readonly headersSchema = undefined
|
|
24
|
+
|
|
25
|
+
private readonly salesModeId: string
|
|
26
|
+
|
|
27
|
+
constructor(salesModeId: string, input: UpdateSalesModeInput) {
|
|
28
|
+
super(input)
|
|
29
|
+
this.salesModeId = salesModeId
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getPath(): string {
|
|
33
|
+
return `/sales_modes/${this.salesModeId}`
|
|
34
|
+
}
|
|
35
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
export const salesModePathSchema = z
|
|
4
|
+
.string()
|
|
5
|
+
.refine(val => /^\/sales_modes\/[a-z_]+\/[0-9a-fA-F-]{36}$/.test(val), {
|
|
6
|
+
message: 'Invalid sales mode path format',
|
|
7
|
+
})
|
|
8
|
+
export type SalesModePath = z.infer<typeof salesModePathSchema>
|
|
9
|
+
|
|
10
|
+
export const salesModeNullablePathSchema = z
|
|
11
|
+
.string()
|
|
12
|
+
.nullable()
|
|
13
|
+
.refine(
|
|
14
|
+
val => {
|
|
15
|
+
if (!val) return true
|
|
16
|
+
return /^\/sales_modes\/[a-z_]+\/[0-9a-fA-F-]{36}$/.test(val)
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
message: 'Invalid sales mode path format',
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
export type SalesModeNullablePath = z.infer<typeof salesModeNullablePathSchema>
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Node",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"forceConsistentCasingInFileNames": true,
|
|
8
|
+
"strict": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"outDir": "dist",
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationMap": true
|
|
13
|
+
},
|
|
14
|
+
"include": ["src"]
|
|
15
|
+
}
|