@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/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
@@ -0,0 +1,3 @@
1
+ export * from './models'
2
+ export * from './requests'
3
+ export * from './types'
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
+ }
@@ -0,0 +1,5 @@
1
+ export * from './CreateSalesMode'
2
+ export * from './DeleteSalesMode'
3
+ export * from './GetSalesModeDetails'
4
+ export * from './GetSalesModes'
5
+ export * from './UpdateSalesMode'
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
+ }