@magiclabs.ai/magicbook-client 0.3.0 → 0.4.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.
@@ -0,0 +1,37 @@
1
+ import { BookSize, CoverType, EmbellishmentLevel, ImageDensity, ImageFiltering, Occasion, PageType, State, TextStickerLevel } from './design-request';
2
+ export type BookDesignRequestProps = {
3
+ occasion: Occasion;
4
+ style: string;
5
+ book_size: BookSize;
6
+ cover_type: CoverType;
7
+ page_type: PageType;
8
+ image_density: ImageDensity;
9
+ image_filtering: ImageFiltering;
10
+ embellishment_level: EmbellishmentLevel;
11
+ text_sticker_level: TextStickerLevel;
12
+ };
13
+ export declare class BookDesignRequest {
14
+ occasion: Occasion;
15
+ style: string;
16
+ book_size: BookSize;
17
+ cover_type: CoverType;
18
+ page_type: PageType;
19
+ image_density: ImageDensity;
20
+ image_filtering: ImageFiltering;
21
+ embellishment_level: EmbellishmentLevel;
22
+ text_sticker_level: TextStickerLevel;
23
+ constructor(props: BookDesignRequestProps);
24
+ }
25
+ export type BookProps = {
26
+ id: string;
27
+ state: State;
28
+ title: string;
29
+ design_request: BookDesignRequestProps;
30
+ };
31
+ export declare class Book {
32
+ id: string;
33
+ state: State;
34
+ title: string;
35
+ design_request: BookDesignRequest;
36
+ constructor(props: BookProps);
37
+ }
@@ -10,7 +10,20 @@ export type Image = {
10
10
  filename: string;
11
11
  };
12
12
  export declare class Images {
13
+ private parentId;
13
14
  private images;
14
- constructor();
15
- add(image: Image): Promise<Image>;
15
+ constructor(parentId: string);
16
+ add(image: Image): Promise<number>;
17
+ }
18
+ export declare class ImageServer {
19
+ handle: string;
20
+ url: string;
21
+ width: number;
22
+ height: number;
23
+ orientation: number;
24
+ taken_at: string;
25
+ camera_make?: string;
26
+ camera?: string;
27
+ filename: string;
28
+ constructor(image: Image);
16
29
  }
@@ -1,16 +1,14 @@
1
- import { BookCreationRequest } from '../galleon';
2
- import { BookSizes, CoverTypes, EmbellishmentLevels, ImageDensities, ImageFilterings, Occasions, PageTypes, States, Styles, TextStickerLevels } from '../../data/design-request';
3
- import { DesignOptions } from './design-options';
4
1
  import { Images } from './image';
5
- export type Occasion = typeof Occasions[number];
6
- export type Style = typeof Styles[number];
7
- export type BookSize = typeof BookSizes[number];
8
- export type CoverType = typeof CoverTypes[number];
9
- export type PageType = typeof PageTypes[number];
10
- export type ImageDensity = typeof ImageDensities[number];
11
- export type ImageFiltering = typeof ImageFilterings[number];
12
- export type EmbellishmentLevel = typeof EmbellishmentLevels[number];
13
- export type TextStickerLevel = typeof TextStickerLevels[number];
2
+ import { bookSizes, coverTypes, embellishmentLevels, imageDensities, imageFilterings, occasions, pageTypes, states, styles, textStickerLevels } from '../../data/design-request';
3
+ export type Occasion = typeof occasions[number];
4
+ export type Style = keyof typeof styles;
5
+ export type BookSize = typeof bookSizes[number];
6
+ export type CoverType = typeof coverTypes[number];
7
+ export type PageType = typeof pageTypes[number];
8
+ export type ImageDensity = typeof imageDensities[number];
9
+ export type ImageFiltering = typeof imageFilterings[number];
10
+ export type EmbellishmentLevel = typeof embellishmentLevels[number];
11
+ export type TextStickerLevel = typeof textStickerLevels[number];
14
12
  export type DesignRequestProps = {
15
13
  title?: string;
16
14
  occasion?: Occasion;
@@ -23,27 +21,27 @@ export type DesignRequestProps = {
23
21
  embellishmentLevel?: EmbellishmentLevel;
24
22
  textStickerLevel?: TextStickerLevel;
25
23
  };
26
- export type State = typeof States[number];
24
+ export type State = typeof states[number];
27
25
  export type DesignRequestEventDetail = {
28
26
  state: State;
29
27
  };
30
28
  export type DesignRequestEvent = CustomEvent<DesignRequestEventDetail>;
31
29
  export declare class DesignRequest {
32
- id: string;
33
- title?: string;
34
- occasion?: Occasion;
35
- style?: Style;
36
- bookSize?: BookSize;
37
- coverType?: CoverType;
38
- pageType?: PageType;
39
- imageDensity?: ImageDensity;
40
- imageFiltering?: ImageFiltering;
41
- embellishmentLevel?: EmbellishmentLevel;
42
- textStickerLevel?: TextStickerLevel;
30
+ parentId: string;
31
+ title: string;
32
+ occasion: Occasion;
33
+ style: Style;
34
+ bookSize: BookSize;
35
+ coverType: CoverType;
36
+ pageType: PageType;
37
+ imageDensity: ImageDensity;
38
+ imageFiltering: ImageFiltering;
39
+ embellishmentLevel: EmbellishmentLevel;
40
+ textStickerLevel: TextStickerLevel;
43
41
  images: Images;
44
- constructor(id: string, designRequestProps?: DesignRequestProps);
45
- getOptions(imageCount: number): Promise<DesignOptions>;
46
- submit(submitDesignRequest?: DesignRequestProps): Promise<DesignRequest>;
47
- getJSON(): Promise<BookCreationRequest>;
48
- startFakeProgress(): void;
42
+ constructor(parentId: string, designRequestProps?: DesignRequestProps);
43
+ getOptions(imageCount: number): Promise<import("./design-options").DesignOptions>;
44
+ submit(submitDesignRequestProps?: DesignRequestProps): Promise<this>;
45
+ getJSON(): Promise<import("../galleon").BookCreationRequest>;
46
+ private getProgress;
49
47
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@magiclabs.ai/magicbook-client",
3
3
  "private": false,
4
- "version": "0.3.0",
4
+ "version": "0.4.0",
5
5
  "description": "TypeScript package to create photo books with the Magicbook API.",
6
6
  "type": "module",
7
7
  "main": "./magicbook-client.umd.cjs",
8
8
  "module": "./magicbook-client.js",
9
- "types": "./index.d.ts",
9
+ "types": "./src/index.d.ts",
10
10
  "repository": {
11
11
  "type": "git",
12
12
  "url": "https://github.com/56kcloud/mb-client.git"
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "scripts": {
21
- "watch": "vite build --watch",
21
+ "watch": "./scripts/build.sh -w",
22
22
  "build": "./scripts/build.sh",
23
23
  "deploy": "./scripts/deploy-npm.sh",
24
24
  "lint": "eslint . --ext js,jsx,ts,tsx --config .eslintrc.json --no-eslintrc",
@@ -26,21 +26,22 @@
26
26
  "coverage": "vitest run --coverage"
27
27
  },
28
28
  "devDependencies": {
29
- "@types/node": "^18.15.11",
30
- "@typescript-eslint/eslint-plugin": "^5.58.0",
31
- "@typescript-eslint/parser": "^5.58.0",
29
+ "@types/node": "^18.16.3",
30
+ "@typescript-eslint/eslint-plugin": "^5.59.2",
31
+ "@typescript-eslint/parser": "^5.59.2",
32
32
  "@vitest/coverage-c8": "^0.30.1",
33
33
  "@vitest/coverage-istanbul": "^0.30.1",
34
34
  "@vitest/ui": "^0.30.1",
35
35
  "eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
36
- "jsdom": "^21.1.1",
36
+ "jsdom": "^22.0.0",
37
+ "rollup-plugin-execute": "^1.1.1",
37
38
  "typescript": "^5.0.4",
38
- "vite": "^4.2.1",
39
+ "vite": "^4.3.4",
39
40
  "vite-plugin-dts": "^2.3.0",
40
41
  "vitest": "^0.30.1"
41
42
  },
42
43
  "dependencies": {
43
44
  "@faker-js/faker": "^7.6.0",
44
- "axios": "^1.3.5"
45
+ "axios": "^1.4.0"
45
46
  }
46
47
  }
@@ -0,0 +1,3 @@
1
+ import { Book } from '../models/book';
2
+ import { DesignRequest } from '..';
3
+ export declare function designRequestToBook(designRequest: DesignRequest): Book;
@@ -0,0 +1,15 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ type baseRequest = {
3
+ url: string;
4
+ needsToken?: boolean;
5
+ options?: AxiosRequestConfig<any>;
6
+ };
7
+ type payloadRequest = baseRequest & {
8
+ payload?: unknown;
9
+ };
10
+ export declare function get({ url, needsToken, options }: baseRequest): Promise<import("axios").AxiosResponse<any, any>>;
11
+ export declare function remove({ url, needsToken, options }: baseRequest): Promise<import("axios").AxiosResponse<any, any>>;
12
+ export declare function post({ url, needsToken, options, payload }: payloadRequest): Promise<import("axios").AxiosResponse<any, any>>;
13
+ export declare function put({ url, needsToken, options, payload }: payloadRequest): Promise<import("axios").AxiosResponse<any, any>>;
14
+ export declare function APIHandler<T>(fn: () => Promise<T>): Promise<T>;
15
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Book } from '../../models/book';
2
+ import { BookCreationRequest } from '../../models/galleon';
3
+ export declare function createBook(payload?: Book): Promise<Book>;
4
+ export declare function retrieveBook(bookId: string): Promise<Book>;
5
+ export declare function updateBook(payload: Book): Promise<Book>;
6
+ export declare function retrieveGalleon(bookId: string): Promise<BookCreationRequest>;
@@ -0,0 +1,3 @@
1
+ import { BookSize } from '../../models/design-request';
2
+ import { DesignOptions } from '../../models/design-request/design-options';
3
+ export declare function getDesignOptions(bookSize: BookSize, imageCount: number): Promise<DesignOptions>;
@@ -0,0 +1,2 @@
1
+ import { ImageServer } from '../../models/design-request/image';
2
+ export declare function addImageInBook(bookId: string, payload: ImageServer): Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,6 @@
1
+ export declare function assign(obj: Record<string, any>, fields: Array<string>, value: unknown): void;
2
+ export declare function mergeNestedObject(obj: Record<string, any>, objToMerge: Record<string, any>): Record<string, any>;
3
+ export declare function camelCaseToSnakeCase(str: string): string;
4
+ export declare function camelCaseObjectKeysToSnakeCase(camelCaseObject: Record<string, unknown>): Record<string, unknown>;
5
+ export declare function snakeCaseToCamelCase(str: string): string;
6
+ export declare function snakeCaseObjectKeysToCamelCase(snakeCaseObject: Record<string, unknown>): Record<string, unknown>;
@@ -1,2 +0,0 @@
1
- import { DesignOptions } from '../models/design-request/design-options';
2
- export declare const designOptions: DesignOptions;
package/data/galleon.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { BookCreationRequest } from '../models/galleon';
2
- export declare const galleonJSON: BookCreationRequest;