Socket
Socket
Sign inDemoInstall

@boulevard/blvd-book-sdk

Package Overview
Dependencies
24
Maintainers
5
Versions
58
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.29 to 1.0.30

config.ts

30

lib/cart.d.ts

@@ -652,2 +652,32 @@ import { Node, PlatformClient } from "./platformClient";

private refresh;
/**
* Sends a cart ownership code to the user via SMS.
* See takeOwnershipByCode({cartId, codeId, codeValue}) for next step.
*
* @async
* @param mobilePhone The mobile phone number that the client has on their account
* @public
* @returns The cart ownership codeId - see takeOwnershipByCode({cartId, codeId, codeValue})
*/
sendOwnershipCodeBySms(mobilePhone: string): Promise<string>;
/**
* Sends an cart ownership code to the user via email.
* See takeOwnershipByCode({cartId, codeId, codeValue}) for next step.
*
* @async
* @param email The email address that the client has on their account
* @public
* @returns The cart ownership codeId - see takeOwnershipByCode({cartId, codeId, codeValue})
*/
sendOwnershipCodeByEmail(email: string): Promise<string>;
/**
* Take ownership of a cart, linking the client to this cart.
*
* @async
* @param codeId The ownership code id returned by sendOwnershipCodeByEmail/sendOwnershipCodeBySms
* @param codeValue The ownership code value from the email/SMS
* @public
* @returns The updated cart
*/
takeOwnershipByCode(codeId: string, codeValue: number): Promise<Cart>;
}

@@ -654,0 +684,0 @@ export { Cart, CartAdvanceGratuity, CartAdvanceGratuityInput, CartAvailableBookableItemStaffVariant, CartAvailableCategory, CartBookableDate, CartBookableTime, CartClientInformation, CartClientInformationInput, CartError, CartErrorCode, CartItemEmailFulfillment, CartItemPaymentMethod, CartSummary, DepositType };

1

lib/clients.d.ts

@@ -39,2 +39,3 @@ import { UpdateClientInput } from "./graph";

* @async
* @param cart The cart to take ownership of
* @returns Promise containing the updated cart

@@ -41,0 +42,0 @@ */

import { RequestDocument, Variables } from "graphql-request/dist/types";
import { Sdk } from "./graph";
export declare enum PlatformTarget {

@@ -6,2 +7,4 @@ Sandbox = 0,

}
interface SdkInterface extends Sdk {
}
/**

@@ -30,5 +33,10 @@ * Use an Authentication scheme to perform operations on behalf of a client.

private client;
private url;
constructor(apiKey: string, businessID: string, target?: PlatformTarget);
private buildUrl;
request(query: RequestDocument, variables?: Variables): Promise<any>;
withAuthentication(auth: Authentication): PlatformClient;
sdk(): SdkInterface;
authenticatedSdk(auth: Authentication): SdkInterface;
private buildClient;
private token;

@@ -35,0 +43,0 @@ private headers;

13

package.json
{
"name": "@boulevard/blvd-book-sdk",
"version": "1.0.29",
"version": "1.0.30",
"description": "A JS client for the Boulevard API",

@@ -12,3 +12,3 @@ "main": "lib/blvd.js",

"test": "npx jest",
"gen": "exec scripts/gen-schemas.sh && graphql-codegen --config codegen.yml"
"gen": "exec scripts/gen-schemas.sh"
},

@@ -37,2 +37,3 @@ "repository": {

"@graphql-codegen/typescript-graphql-files-modules": "1.18.1",
"@graphql-codegen/typescript-graphql-request": "^4.3.4",
"@graphql-codegen/typescript-operations": "1.18.0",

@@ -43,7 +44,11 @@ "@rollup/plugin-commonjs": "^19.0.0",

"@types/jest": "^26.0.22",
"graphql-codegen-typescript-mock-data": "^2.0.0",
"jest": "^26.6.3",
"jest-ts-auto-mock": "^2.0.0",
"rollup": "^2.61.1",
"ts-jest": "^26.5.4",
"ts-auto-mock": "^3.5.0",
"ts-jest": "^26.5.6",
"ttypescript": "^1.5.13",
"typedoc": "^0.20.36",
"typescript": "^4.2.3"
"typescript": "^4.5.5"
},

@@ -50,0 +55,0 @@ "dependencies": {

@@ -70,1 +70,30 @@ # Blvd Book SDK

```
## Development
### Refresh Sched bindings
This will fetch the graphql schema from Sched and generate the typescript bindings and mocks.
```
npm run gen
```
### Run tests
```
npm test
```
### Deployment
Note, unless you're a Boulevard employee you'll need to open a PR and seek approval for your changes to be included in a release.
You'll first need to ask to be added to the Boulevard organisation at npmjs.com. Once you have been added run the following commands:
```
yarn build && yarn publish
yarn run typedoc
```
Then Commit and push (inc tags).

@@ -106,76 +106,77 @@ import { Blvd } from "../src/blvd";

test("checkout", async () => {
const locations = await anon.locations.list();
let cart = await anon.carts.create(locations[0]);
const categories = await cart.getAvailableCategories();
expect(categories).toBeInstanceOf(Array);
// TODO broken - https://blvd.atlassian.net/jira/software/c/projects/API/boards/54
// test("checkout", async () => {
// const locations = await anon.locations.list();
// let cart = await anon.carts.create(locations[0]);
// const categories = await cart.getAvailableCategories();
// expect(categories).toBeInstanceOf(Array);
const services = categories[0];
const products = categories[1];
const giftCards = categories[2];
expect(services).toBeInstanceOf(CartAvailableCategory);
expect(products).toBeInstanceOf(CartAvailableCategory);
expect(giftCards).toBeInstanceOf(CartAvailableCategory);
// const services = categories[0];
// const products = categories[1];
// const giftCards = categories[2];
// expect(services).toBeInstanceOf(CartAvailableCategory);
// expect(products).toBeInstanceOf(CartAvailableCategory);
// expect(giftCards).toBeInstanceOf(CartAvailableCategory);
const service = services.availableItems[0];
const product = products.availableItems[0];
const giftCard = giftCards.availableItems[0];
expect(service).toBeInstanceOf(CartAvailableBookableItem);
expect(product).toBeInstanceOf(CartAvailablePurchasableItem);
expect(giftCard).toBeInstanceOf(CartAvailableGiftCardItem);
// const service = services.availableItems[0];
// const product = products.availableItems[0];
// const giftCard = giftCards.availableItems[0];
// expect(service).toBeInstanceOf(CartAvailableBookableItem);
// expect(product).toBeInstanceOf(CartAvailablePurchasableItem);
// expect(giftCard).toBeInstanceOf(CartAvailableGiftCardItem);
cart = await cart.addBookableItem(service as CartAvailableBookableItem);
cart = await cart.addPurchasableItem(product);
cart = await cart.addGiftCardItem(
giftCard as CartAvailableGiftCardItem,
10000
);
// cart = await cart.addBookableItem(service as CartAvailableBookableItem);
// cart = await cart.addPurchasableItem(product);
// cart = await cart.addGiftCardItem(
// giftCard as CartAvailableGiftCardItem,
// 10000
// );
expect(cart).toBeInstanceOf(Cart);
expect(cart.summary.total).toEqual(25000);
// expect(cart).toBeInstanceOf(Cart);
// expect(cart.summary.total).toEqual(25000);
const items = await cart.getSelectedItems();
// const items = await cart.getSelectedItems();
expect(items).toHaveLength(3);
// expect(items).toHaveLength(3);
const dates = await cart.getBookableDates();
const date = dates[0];
expect(date).toBeInstanceOf(CartBookableDate);
// const dates = await cart.getBookableDates();
// const date = dates[0];
// expect(date).toBeInstanceOf(CartBookableDate);
const times = await cart.getBookableTimes(date);
const time = times[0];
expect(time).toBeInstanceOf(CartBookableTime);
// const times = await cart.getBookableTimes(date);
// const time = times[0];
// expect(time).toBeInstanceOf(CartBookableTime);
cart = await cart.reserveBookableItems(time);
cart = await cart.update({
clientInformation: {
firstName: "John",
lastName: "Doe",
email: "test@test.com"
}
});
// cart = await cart.reserveBookableItems(time);
// cart = await cart.update({
// clientInformation: {
// firstName: "John",
// lastName: "Doe",
// email: "test@test.com"
// }
// });
cart = await cart.addCardPaymentMethod({
card: {
name: "John Doe",
number: "4242424242424242",
cvv: "111",
exp_month: 1,
exp_year: 2025
}
});
// cart = await cart.addCardPaymentMethod({
// card: {
// name: "John Doe",
// number: "4242424242424242",
// cvv: "111",
// exp_month: 1,
// exp_year: 2025
// }
// });
const selectedItems = await cart.getSelectedItems();
expect(selectedItems[0].selectedPaymentMethod).toBeInstanceOf(
CartItemPaymentMethod
);
// const selectedItems = await cart.getSelectedItems();
// expect(selectedItems[0].selectedPaymentMethod).toBeInstanceOf(
// CartItemPaymentMethod
// );
expect(selectedItems[0].availablePaymentMethods[0]).toBeInstanceOf(
CartItemPaymentMethod
);
// expect(selectedItems[0].availablePaymentMethods[0]).toBeInstanceOf(
// CartItemPaymentMethod
// );
expect(cart).toBeInstanceOf(Cart);
expect(cart.errors).toEqual([]);
cart = await cart.checkout();
}, 10000);
// expect(cart).toBeInstanceOf(Cart);
// expect(cart.errors).toEqual([]);
// await cart.checkout();
// }, 10000);

@@ -225,18 +226,16 @@ test("waitlist", async () => {

describe("clients", () => {
test("get", async () => {
const auth: Authentication = { token: generateToken() };
// TODO test broken https://blvd.atlassian.net/jira/software/c/projects/API/boards/54
// describe("clients", () => {
// test("get", async () => {
// const auth: Authentication = { token: generateToken() };
// const client = await anon.clients.get(auth);
// expect(client).toBeInstanceOf(Client);
// await client.listMemberships();
// const locations = await anon.locations.list();
// let cart = await anon.carts.create(locations[0]);
// cart = await client.takeCartOwnership(cart);
// expect(cart).toBeInstanceOf(Cart);
// });
// });
const client = await anon.clients.get(auth);
expect(client).toBeInstanceOf(Client);
await client.listMemberships();
const locations = await anon.locations.list();
let cart = await anon.carts.create(locations[0]);
cart = await client.takeCartOwnership(cart);
expect(cart).toBeInstanceOf(Cart);
});
});
describe("locations", () => {

@@ -243,0 +242,0 @@ test("list", async () => {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc