@pintahub/shopify-api 1.9.0 → 1.9.2

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.
@@ -6,6 +6,7 @@ import { APIOptions } from "../interfaces/APIOptions";
6
6
  import { AdminFileAPIInterface } from "./admin/files";
7
7
  import { AdminMenuAPIInterface } from "./admin/menus";
8
8
  import { AdminProductsAPIInterface } from "./admin/products-v2";
9
+ import { AdminCustomersAPIInterface } from "./admin/customers";
9
10
  export declare class AdminAPI {
10
11
  private readonly options;
11
12
  private readonly client;
@@ -16,6 +17,7 @@ export declare class AdminAPI {
16
17
  readonly files: AdminFileAPIInterface;
17
18
  readonly menus: AdminMenuAPIInterface;
18
19
  readonly products: AdminProductsAPIInterface;
20
+ readonly customers: AdminCustomersAPIInterface;
19
21
  constructor(options: APIOptions);
20
22
  private _createClient;
21
23
  }
@@ -9,6 +9,7 @@ const orders_1 = require("./admin/orders");
9
9
  const files_1 = require("./admin/files");
10
10
  const menus_1 = require("./admin/menus");
11
11
  const products_v2_1 = require("./admin/products-v2");
12
+ const customers_1 = require("./admin/customers");
12
13
  class AdminAPI {
13
14
  constructor(options) {
14
15
  this.options = options;
@@ -20,6 +21,7 @@ class AdminAPI {
20
21
  this.files = new files_1.AdminFileAPI(this.client); //Start migration with plurality
21
22
  this.menus = new menus_1.AdminMenuAPI(this._createClient('2024-07'));
22
23
  this.products = new products_v2_1.AdminProductsAPI(this._createClient('2024-10'));
24
+ this.customers = new customers_1.AdminCustomersAPI(this._createClient('2024-10'));
23
25
  }
24
26
  _createClient(apiVersion = '2023-10') {
25
27
  const { shop, accessToken } = this.options;
@@ -0,0 +1,10 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { ActionBuilder } from "../../ActionBuilder";
3
+ import { CustomerInput } from "../../../input/CustomerInput";
4
+ export interface CreateCustomerInput extends CustomerInput {
5
+ }
6
+ export interface CreateCustomerOutput extends Record<string, any> {
7
+ }
8
+ export declare class CreateCustomer extends ActionBuilder<AdminApiClient, CreateCustomerInput, CreateCustomerOutput> {
9
+ run(args: CreateCustomerInput): Promise<CreateCustomerOutput>;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateCustomer = void 0;
13
+ const ActionBuilder_1 = require("../../ActionBuilder");
14
+ const handleErrors_1 = require("../../../utils/handleErrors");
15
+ class CreateCustomer extends ActionBuilder_1.ActionBuilder {
16
+ run(args) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const query = `
19
+ mutation createCustomerMetafields($input: CustomerInput!) {
20
+ customerCreate(input: $input) {
21
+ customer {
22
+ id
23
+ email
24
+ phone
25
+ }
26
+ userErrors {
27
+ message
28
+ field
29
+ }
30
+ }
31
+ }
32
+ `;
33
+ const result = yield this.client.request(query, {
34
+ variables: {
35
+ input: args
36
+ }
37
+ });
38
+ const { data, errors } = Object.assign({}, result);
39
+ yield (0, handleErrors_1.handleErrors)(errors);
40
+ const { customerCreate } = data;
41
+ const { customer } = Object.assign({}, customerCreate);
42
+ return Object.assign({}, customer);
43
+ });
44
+ }
45
+ }
46
+ exports.CreateCustomer = CreateCustomer;
@@ -0,0 +1,10 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { APIBase } from "../../APIBase";
3
+ import { CreateCustomerInput, CreateCustomerOutput } from "./CreateCustomer";
4
+ export interface AdminCustomersAPIInterface {
5
+ create(args: CreateCustomerInput): Promise<CreateCustomerOutput>;
6
+ }
7
+ export declare class AdminCustomersAPI extends APIBase<AdminApiClient> implements AdminCustomersAPIInterface {
8
+ private _runAction;
9
+ create(args: CreateCustomerInput): Promise<CreateCustomerOutput>;
10
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AdminCustomersAPI = void 0;
13
+ const APIBase_1 = require("../../APIBase");
14
+ const CreateCustomer_1 = require("./CreateCustomer");
15
+ class AdminCustomersAPI extends APIBase_1.APIBase {
16
+ _runAction(Action, args) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const action = new Action(this.client);
19
+ return action.run(args);
20
+ });
21
+ }
22
+ create(args) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ return this._runAction(CreateCustomer_1.CreateCustomer, args);
25
+ });
26
+ }
27
+ }
28
+ exports.AdminCustomersAPI = AdminCustomersAPI;
@@ -0,0 +1,13 @@
1
+ import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
+ import { ActionBuilder } from "../../ActionBuilder";
3
+ import { ProductUpdateInput } from "../../../input/ProductUpdateInput";
4
+ import { CreateMediaInput } from "../../../input/CreateMediaInput";
5
+ export interface UpdateProductInput extends Record<string, any> {
6
+ product: ProductUpdateInput;
7
+ media?: CreateMediaInput[];
8
+ }
9
+ export interface UpdateProductOutput extends Record<string, any> {
10
+ }
11
+ export declare class UpdateProduct extends ActionBuilder<AdminApiClient, UpdateProductInput, UpdateProductOutput> {
12
+ run(args: UpdateProductInput): Promise<UpdateProductOutput>;
13
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.UpdateProduct = void 0;
24
+ const ActionBuilder_1 = require("../../ActionBuilder");
25
+ const getGlobalID_1 = require("../../../utils/getGlobalID");
26
+ const handleErrors_1 = require("../../../utils/handleErrors");
27
+ class UpdateProduct extends ActionBuilder_1.ActionBuilder {
28
+ run(args) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const query = `
31
+ mutation productUpdate($product: ProductUpdateInput!) {
32
+ productUpdate(product: $product) {
33
+ product {
34
+ id
35
+ status
36
+ title
37
+ handle
38
+ vendor
39
+ productType
40
+ tags
41
+ }
42
+ userErrors {
43
+ field
44
+ message
45
+ }
46
+ }
47
+ }
48
+ `;
49
+ const { product } = Object.assign({}, args);
50
+ const _a = Object.assign({}, product), { id } = _a, rest = __rest(_a, ["id"]);
51
+ const globalId = (0, getGlobalID_1.getGlobalID)(id);
52
+ const newArgs = Object.assign(Object.assign({}, args), { product: Object.assign(Object.assign({}, rest), { id: globalId }) });
53
+ const result = yield this.client.request(query, {
54
+ variables: newArgs
55
+ });
56
+ const { data, errors } = Object.assign({}, result);
57
+ yield (0, handleErrors_1.handleErrors)(errors);
58
+ const { productUpdate } = Object.assign({}, data);
59
+ const { product: updatedProduct } = Object.assign({}, productUpdate);
60
+ return Object.assign({}, updatedProduct);
61
+ });
62
+ }
63
+ }
64
+ exports.UpdateProduct = UpdateProduct;
@@ -1,10 +1,13 @@
1
1
  import { AdminApiClient } from "@shopify/admin-api-client/dist/ts/graphql/types";
2
2
  import { APIBase } from "../../APIBase";
3
3
  import { UpdateVariantsInput, UpdateVariantsOutput } from "./UpdateVariants";
4
+ import { UpdateProductInput, UpdateProductOutput } from "./UpdateProduct";
4
5
  export interface AdminProductsAPIInterface {
6
+ update(args: UpdateProductInput): Promise<UpdateProductOutput>;
5
7
  updateVariants(args: UpdateVariantsInput): Promise<UpdateVariantsOutput>;
6
8
  }
7
9
  export declare class AdminProductsAPI extends APIBase<AdminApiClient> implements AdminProductsAPIInterface {
8
10
  private _runAction;
11
+ update(args: UpdateProductInput): Promise<UpdateProductOutput>;
9
12
  updateVariants(args: UpdateVariantsInput): Promise<UpdateVariantsOutput>;
10
13
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AdminProductsAPI = void 0;
13
13
  const APIBase_1 = require("../../APIBase");
14
14
  const UpdateVariants_1 = require("./UpdateVariants");
15
+ const UpdateProduct_1 = require("./UpdateProduct");
15
16
  class AdminProductsAPI extends APIBase_1.APIBase {
16
17
  _runAction(Action, args) {
17
18
  return __awaiter(this, void 0, void 0, function* () {
@@ -19,6 +20,11 @@ class AdminProductsAPI extends APIBase_1.APIBase {
19
20
  return action.run(args);
20
21
  });
21
22
  }
23
+ update(args) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ return this._runAction(UpdateProduct_1.UpdateProduct, args);
26
+ });
27
+ }
22
28
  updateVariants(args) {
23
29
  return __awaiter(this, void 0, void 0, function* () {
24
30
  return this._runAction(UpdateVariants_1.UpdateVariants, args);
@@ -0,0 +1,6 @@
1
+ import { MediaContentType } from "./MediaContentType";
2
+ export interface CreateMediaInput extends Record<string, any> {
3
+ alt?: string;
4
+ mediaContentType: MediaContentType;
5
+ originalSource: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ declare enum CustomerEmailMarketingState {
2
+ INVALID = "INVALID",
3
+ NOT_SUBSCRIBED = "NOT_SUBSCRIBED",
4
+ PENDING = "PENDING",
5
+ REDACTED = "REDACTED",
6
+ SUBSCRIBED = "SUBSCRIBED",
7
+ UNSUBSCRIBED = "UNSUBSCRIBED"
8
+ }
9
+ declare enum CustomerMarketingOptInLevel {
10
+ UNKNOWN = "UNKNOWN",
11
+ SINGLE_OPT_IN = "SINGLE_OPT_IN",
12
+ CONFIRMED_OPT_IN = "CONFIRMED_OPT_IN"
13
+ }
14
+ export interface CustomerEmailMarketingConsentInput extends Record<string, any> {
15
+ marketingState?: CustomerEmailMarketingState;
16
+ marketingOptInLevel?: CustomerMarketingOptInLevel;
17
+ }
18
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var CustomerEmailMarketingState;
4
+ (function (CustomerEmailMarketingState) {
5
+ CustomerEmailMarketingState["INVALID"] = "INVALID";
6
+ CustomerEmailMarketingState["NOT_SUBSCRIBED"] = "NOT_SUBSCRIBED";
7
+ CustomerEmailMarketingState["PENDING"] = "PENDING";
8
+ CustomerEmailMarketingState["REDACTED"] = "REDACTED";
9
+ CustomerEmailMarketingState["SUBSCRIBED"] = "SUBSCRIBED";
10
+ CustomerEmailMarketingState["UNSUBSCRIBED"] = "UNSUBSCRIBED";
11
+ })(CustomerEmailMarketingState || (CustomerEmailMarketingState = {}));
12
+ var CustomerMarketingOptInLevel;
13
+ (function (CustomerMarketingOptInLevel) {
14
+ CustomerMarketingOptInLevel["UNKNOWN"] = "UNKNOWN";
15
+ CustomerMarketingOptInLevel["SINGLE_OPT_IN"] = "SINGLE_OPT_IN";
16
+ CustomerMarketingOptInLevel["CONFIRMED_OPT_IN"] = "CONFIRMED_OPT_IN";
17
+ })(CustomerMarketingOptInLevel || (CustomerMarketingOptInLevel = {}));
@@ -0,0 +1,6 @@
1
+ import { CustomerEmailMarketingConsentInput } from "./CustomerEmailMarketingConsentInput";
2
+ export interface CustomerInput extends Record<string, any> {
3
+ email?: string;
4
+ phone?: string;
5
+ emailMarketingConsent?: CustomerEmailMarketingConsentInput;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ export declare enum MediaContentType {
2
+ EXTERNAL_VIDEO = "EXTERNAL_VIDEO",
3
+ IMAGE = "IMAGE",
4
+ MODEL_3D = "MODEL_3D",
5
+ VIDEO = "VIDEO"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaContentType = void 0;
4
+ var MediaContentType;
5
+ (function (MediaContentType) {
6
+ MediaContentType["EXTERNAL_VIDEO"] = "EXTERNAL_VIDEO";
7
+ MediaContentType["IMAGE"] = "IMAGE";
8
+ MediaContentType["MODEL_3D"] = "MODEL_3D";
9
+ MediaContentType["VIDEO"] = "VIDEO";
10
+ })(MediaContentType = exports.MediaContentType || (exports.MediaContentType = {}));
@@ -0,0 +1,10 @@
1
+ export interface ProductUpdateInput extends Record<string, any> {
2
+ id: string;
3
+ title?: string;
4
+ handle?: string;
5
+ tags?: Array<string>;
6
+ vendor?: string;
7
+ productType?: string;
8
+ descriptionHtml?: string;
9
+ category?: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pintahub/shopify-api",
3
- "version": "1.9.0",
3
+ "version": "1.9.2",
4
4
  "description": "",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",