@anker-in/shopify-sdk 0.1.1-beta.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,594 @@
1
+ // src/fragments/image.ts
2
+ var imageFragment = (
3
+ /* GraphQL */
4
+ `
5
+ fragment image on Image {
6
+ url
7
+ altText
8
+ width
9
+ height
10
+ }
11
+ `
12
+ );
13
+
14
+ // src/fragments/seo.ts
15
+ var seoFragment = (
16
+ /* GraphQL */
17
+ `
18
+ fragment seo on SEO {
19
+ description
20
+ title
21
+ }
22
+ `
23
+ );
24
+
25
+ // src/fragments/metafield.ts
26
+ var metafieldFragment = (
27
+ /* GraphQL */
28
+ `
29
+ fragment metafield on Metafield {
30
+ value
31
+ type
32
+ description
33
+ namespace
34
+ key
35
+ }
36
+ `
37
+ );
38
+
39
+ // src/fragments/variant.ts
40
+ var variantFragment = (
41
+ /* GraphQL */
42
+ `
43
+ fragment variant on ProductVariant {
44
+ id
45
+ sku
46
+ title
47
+ requiresShipping
48
+ quantityAvailable
49
+ currentlyNotInStock
50
+ availableForSale
51
+ barcode
52
+ weight
53
+ selectedOptions {
54
+ name
55
+ value
56
+ }
57
+ image {
58
+ ...image
59
+ }
60
+ price {
61
+ amount
62
+ currencyCode
63
+ }
64
+ compareAtPrice {
65
+ amount
66
+ currencyCode
67
+ }
68
+ metafields(identifiers: $variantMetafieldIdentifiers) {
69
+ ...metafield
70
+ }
71
+ sellingPlanAllocations(first: 10) {
72
+ edges {
73
+ node {
74
+ sellingPlan {
75
+ id
76
+ name
77
+ options {
78
+ name
79
+ value
80
+ }
81
+ }
82
+ priceAdjustments {
83
+ compareAtPrice {
84
+ amount
85
+ currencyCode
86
+ }
87
+ perDeliveryPrice {
88
+ amount
89
+ currencyCode
90
+ }
91
+ price {
92
+ amount
93
+ currencyCode
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ `
101
+ );
102
+
103
+ // src/fragments/product.ts
104
+ var productFragment = (
105
+ /* GraphQL */
106
+ `
107
+ fragment product on Product {
108
+ id
109
+ handle
110
+ availableForSale
111
+ title
112
+ description
113
+ descriptionHtml
114
+ options {
115
+ id
116
+ name
117
+ values
118
+ }
119
+ productType
120
+ vendor
121
+ priceRange {
122
+ maxVariantPrice {
123
+ amount
124
+ currencyCode
125
+ }
126
+ minVariantPrice {
127
+ amount
128
+ currencyCode
129
+ }
130
+ }
131
+ compareAtPriceRange {
132
+ minVariantPrice {
133
+ amount
134
+ currencyCode
135
+ }
136
+ }
137
+ featuredImage {
138
+ ...image
139
+ }
140
+ images(first: 250) {
141
+ edges {
142
+ node {
143
+ ...image
144
+ }
145
+ }
146
+ }
147
+ metafields(identifiers: $productMetafieldIdentifiers) {
148
+ ...metafield
149
+ }
150
+ media(first: 250) {
151
+ edges {
152
+ node {
153
+ id
154
+ mediaContentType
155
+ ... on Video {
156
+ id
157
+ sources {
158
+ format
159
+ height
160
+ mimeType
161
+ url
162
+ width
163
+ }
164
+ }
165
+ ... on MediaImage {
166
+ id
167
+ image {
168
+ altText
169
+ url
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+ seo {
176
+ ...seo
177
+ }
178
+ tags
179
+ createdAt
180
+ updatedAt
181
+ publishedAt
182
+ requiresSellingPlan
183
+ sellingPlanGroups(first: 250) {
184
+ edges {
185
+ node {
186
+ name
187
+ sellingPlans(first: 250) {
188
+ edges {
189
+ node {
190
+ id
191
+ name
192
+ priceAdjustments {
193
+ adjustmentValue {
194
+ ... on SellingPlanFixedAmountPriceAdjustment {
195
+ __typename
196
+ adjustmentAmount {
197
+ amount
198
+ currencyCode
199
+ }
200
+ }
201
+ ... on SellingPlanFixedPriceAdjustment {
202
+ __typename
203
+ price {
204
+ amount
205
+ currencyCode
206
+ }
207
+ }
208
+ ... on SellingPlanPercentagePriceAdjustment {
209
+ __typename
210
+ adjustmentPercentage
211
+ }
212
+ }
213
+ }
214
+ options {
215
+ name
216
+ value
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
225
+ `
226
+ );
227
+
228
+ // src/fragments/cart.ts
229
+ var cartFragment = (
230
+ /* GraphQL */
231
+ `
232
+ fragment cart on Cart {
233
+ id
234
+ totalQuantity
235
+ updatedAt
236
+ createdAt
237
+ checkoutUrl
238
+ note
239
+ attributes {
240
+ key
241
+ value
242
+ }
243
+ cost {
244
+ checkoutChargeAmount {
245
+ amount
246
+ currencyCode
247
+ }
248
+ subtotalAmount {
249
+ amount
250
+ currencyCode
251
+ }
252
+ totalAmount {
253
+ amount
254
+ currencyCode
255
+ }
256
+ totalTaxAmount {
257
+ amount
258
+ currencyCode
259
+ }
260
+ totalDutyAmount {
261
+ amount
262
+ currencyCode
263
+ }
264
+ totalAmountEstimated
265
+ totalTaxAmountEstimated
266
+ totalDutyAmountEstimated
267
+ subtotalAmountEstimated
268
+ }
269
+ buyerIdentity {
270
+ email
271
+ customer {
272
+ email
273
+ id
274
+ }
275
+ deliveryAddressPreferences {
276
+ ... on MailingAddress {
277
+ address1
278
+ address2
279
+ city
280
+ country
281
+ zip
282
+ }
283
+ }
284
+ }
285
+ discountCodes {
286
+ applicable
287
+ code
288
+ }
289
+ discountAllocations {
290
+ ... on CartCodeDiscountAllocation {
291
+ code
292
+ discountedAmount {
293
+ amount
294
+ currencyCode
295
+ }
296
+ }
297
+ ... on CartAutomaticDiscountAllocation {
298
+ title
299
+ discountedAmount {
300
+ amount
301
+ currencyCode
302
+ }
303
+ }
304
+ ... on CartCustomDiscountAllocation {
305
+ title
306
+ discountedAmount {
307
+ amount
308
+ currencyCode
309
+ }
310
+ }
311
+ }
312
+ deliveryGroups(first: 10) {
313
+ nodes {
314
+ deliveryAddress {
315
+ address1
316
+ address2
317
+ city
318
+ country
319
+ zip
320
+ }
321
+ }
322
+ }
323
+ lines(first: 100) {
324
+ edges {
325
+ node {
326
+ id
327
+ quantity
328
+ discountAllocations {
329
+ ... on CartCodeDiscountAllocation {
330
+ code
331
+ discountedAmount {
332
+ amount
333
+ currencyCode
334
+ }
335
+ }
336
+ ... on CartAutomaticDiscountAllocation {
337
+ title
338
+ discountedAmount {
339
+ amount
340
+ currencyCode
341
+ }
342
+ }
343
+ ... on CartCustomDiscountAllocation {
344
+ title
345
+ discountedAmount {
346
+ amount
347
+ currencyCode
348
+ }
349
+ }
350
+ }
351
+ attributes {
352
+ key
353
+ value
354
+ }
355
+ cost {
356
+ amountPerQuantity {
357
+ amount
358
+ currencyCode
359
+ }
360
+ compareAtAmountPerQuantity {
361
+ amount
362
+ currencyCode
363
+ }
364
+ subtotalAmount {
365
+ amount
366
+ currencyCode
367
+ }
368
+ totalAmount {
369
+ amount
370
+ currencyCode
371
+ }
372
+ }
373
+ merchandise {
374
+ ... on ProductVariant {
375
+ id
376
+ sku
377
+ title
378
+ quantityAvailable
379
+ currentlyNotInStock
380
+ availableForSale
381
+ barcode
382
+ weight
383
+ selectedOptions {
384
+ name
385
+ value
386
+ }
387
+ image {
388
+ ...image
389
+ }
390
+ price {
391
+ amount
392
+ currencyCode
393
+ }
394
+ compareAtPrice {
395
+ amount
396
+ currencyCode
397
+ }
398
+ metafields(identifiers: $variantMetafieldIdentifiers) {
399
+ ...metafield
400
+ }
401
+ product {
402
+ ...product
403
+ }
404
+ }
405
+ }
406
+ }
407
+ }
408
+ }
409
+ totalQuantity
410
+ }
411
+ ${productFragment}
412
+ ${imageFragment}
413
+ ${seoFragment}
414
+ ${metafieldFragment}
415
+ `
416
+ );
417
+
418
+ // src/fragments/page-info.ts
419
+ var pageInfoFragment = (
420
+ /* GraphQL */
421
+ `
422
+ fragment pageInfo on PageInfo {
423
+ hasNextPage
424
+ hasPreviousPage
425
+ startCursor
426
+ endCursor
427
+ }
428
+ `
429
+ );
430
+
431
+ // src/queries/product/get-product.ts
432
+ var getProductQuery = (
433
+ /* GraphQL */
434
+ `
435
+ query getProductByHandle(
436
+ $handle: String!
437
+ $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
438
+ $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
439
+ ) {
440
+ product(handle: $handle) {
441
+ ...product
442
+ metafields(identifiers: $productMetafieldIdentifiers) {
443
+ ...metafield
444
+ }
445
+ variants(first: 250) {
446
+ nodes {
447
+ ...variant
448
+ metafields(identifiers: $variantMetafieldIdentifiers) {
449
+ ...metafield
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ ${productFragment}
456
+ ${variantFragment}
457
+ ${metafieldFragment}
458
+ ${imageFragment}
459
+ ${seoFragment}
460
+ `
461
+ );
462
+
463
+ // src/queries/product/get-products.ts
464
+ var getProductsQuery = (
465
+ /* GraphQL */
466
+ `
467
+ query getProducts(
468
+ $first: Int = 10
469
+ $after: String
470
+ $query: String = ""
471
+ $sortKey: ProductSortKeys = RELEVANCE
472
+ $reverse: Boolean = false
473
+ $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
474
+ $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
475
+ ) {
476
+ products(first: $first, after: $after, sortKey: $sortKey, reverse: $reverse, query: $query) {
477
+ pageInfo {
478
+ ...pageInfo
479
+ }
480
+ nodes {
481
+ ...product
482
+ metafields(identifiers: $productMetafieldIdentifiers) {
483
+ ...metafield
484
+ }
485
+ variants(first: 250) {
486
+ nodes {
487
+ ...variant
488
+ product {
489
+ ...product
490
+ metafields(identifiers: $productMetafieldIdentifiers) {
491
+ ...metafield
492
+ }
493
+ }
494
+ metafields(identifiers: $variantMetafieldIdentifiers) {
495
+ ...metafield
496
+ }
497
+ }
498
+ }
499
+ }
500
+ }
501
+ }
502
+ ${productFragment}
503
+ ${variantFragment}
504
+ ${pageInfoFragment}
505
+ ${metafieldFragment}
506
+ ${imageFragment}
507
+ ${seoFragment}
508
+ `
509
+ );
510
+
511
+ // src/queries/product/get-products-by-handles.ts
512
+ var getProductsByHandlesQuery = (handles) => (
513
+ /* GraphQL */
514
+ `
515
+ query GetProductByHandles(
516
+ $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
517
+ $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
518
+ ) {
519
+ ${handles.map(
520
+ (handle, index) => (
521
+ /* GraphQL */
522
+ `
523
+ product${index}: product(handle: "${handle}") {
524
+ ...product
525
+ metafields(identifiers: $productMetafieldIdentifiers) {
526
+ ...metafield
527
+ }
528
+ variants(first: 250) {
529
+ nodes {
530
+ ...variant
531
+ metafields(identifiers: $variantMetafieldIdentifiers) {
532
+ ...metafield
533
+ }
534
+ }
535
+ }
536
+ }
537
+ `
538
+ )
539
+ )}
540
+ }
541
+ ${productFragment}
542
+ ${variantFragment}
543
+ ${metafieldFragment}
544
+ ${imageFragment}
545
+ ${seoFragment}
546
+ `
547
+ );
548
+
549
+ // src/queries/product/get-all-products-paths.ts
550
+ var getAllProductsPathsQuery = (
551
+ /* GraphQL */
552
+ `
553
+ query getAllProductPaths(
554
+ $first: Int = 250
555
+ $cursor: String
556
+ $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []
557
+ ) {
558
+ products(first: $first, after: $cursor) {
559
+ pageInfo {
560
+ hasNextPage
561
+ hasPreviousPage
562
+ }
563
+ nodes {
564
+ handle
565
+ metafields(identifiers: $productMetafieldIdentifiers) {
566
+ ...metafield
567
+ }
568
+ }
569
+ }
570
+ }
571
+ ${metafieldFragment}
572
+ `
573
+ );
574
+
575
+ // src/queries/cart/get-cart.ts
576
+ var getCartQuery = (
577
+ /* GraphQL */
578
+ `
579
+ query getCart(
580
+ $cartId: ID!
581
+ $productMetafieldIdentifiers: [HasMetafieldsIdentifier!]!
582
+ $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!]!
583
+ ) {
584
+ cart(id: $cartId) {
585
+ ...cart
586
+ }
587
+ }
588
+ ${cartFragment}
589
+ `
590
+ );
591
+
592
+ export { getAllProductsPathsQuery, getCartQuery, getProductQuery, getProductsByHandlesQuery, getProductsQuery };
593
+ //# sourceMappingURL=index.mjs.map
594
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/fragments/image.ts","../../src/fragments/seo.ts","../../src/fragments/metafield.ts","../../src/fragments/variant.ts","../../src/fragments/product.ts","../../src/fragments/cart.ts","../../src/fragments/page-info.ts","../../src/queries/product/get-product.ts","../../src/queries/product/get-products.ts","../../src/queries/product/get-products-by-handles.ts","../../src/queries/product/get-all-products-paths.ts","../../src/queries/cart/get-cart.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export const imageFragment = /* GraphQL */ `\n fragment image on Image {\n url\n altText\n width\n height\n }\n`\n","export const seoFragment = /* GraphQL */ `\n fragment seo on SEO {\n description\n title\n }\n`\n","export const metafieldFragment = /* GraphQL */ `\n fragment metafield on Metafield {\n value\n type\n description\n namespace\n key\n }\n`\n\nexport const metafieldFragmentStr = `\n value\n type\n description\n namespace\n key\n`\n","export const variantFragment = /* GraphQL */ `\n fragment variant on ProductVariant {\n id\n sku\n title\n requiresShipping\n quantityAvailable\n currentlyNotInStock\n availableForSale\n barcode\n weight\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n metafields(identifiers: $variantMetafieldIdentifiers) {\n ...metafield\n }\n sellingPlanAllocations(first: 10) {\n edges {\n node {\n sellingPlan {\n id\n name\n options {\n name\n value\n }\n }\n priceAdjustments {\n compareAtPrice {\n amount\n currencyCode\n }\n perDeliveryPrice {\n amount\n currencyCode\n }\n price {\n amount\n currencyCode\n }\n }\n }\n }\n }\n }\n`\n","/**\n * Product GraphQL Fragment\n */\nexport const productFragment = /* GraphQL */ `\n fragment product on Product {\n id\n handle\n availableForSale\n title\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n productType\n vendor\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n }\n featuredImage {\n ...image\n }\n images(first: 250) {\n edges {\n node {\n ...image\n }\n }\n }\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n media(first: 250) {\n edges {\n node {\n id\n mediaContentType\n ... on Video {\n id\n sources {\n format\n height\n mimeType\n url\n width\n }\n }\n ... on MediaImage {\n id\n image {\n altText\n url\n }\n }\n }\n }\n }\n seo {\n ...seo\n }\n tags\n createdAt\n updatedAt\n publishedAt\n requiresSellingPlan\n sellingPlanGroups(first: 250) {\n edges {\n node {\n name\n sellingPlans(first: 250) {\n edges {\n node {\n id\n name\n priceAdjustments {\n adjustmentValue {\n ... on SellingPlanFixedAmountPriceAdjustment {\n __typename\n adjustmentAmount {\n amount\n currencyCode\n }\n }\n ... on SellingPlanFixedPriceAdjustment {\n __typename\n price {\n amount\n currencyCode\n }\n }\n ... on SellingPlanPercentagePriceAdjustment {\n __typename\n adjustmentPercentage\n }\n }\n }\n options {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n`\n","import { imageFragment } from './image'\nimport { metafieldFragment } from './metafield'\nimport { productFragment } from './product'\nimport { seoFragment } from './seo'\n\nexport const cartFragment = /* GraphQL */ `\n fragment cart on Cart {\n id\n totalQuantity\n updatedAt\n createdAt\n checkoutUrl\n note\n attributes {\n key\n value\n }\n cost {\n checkoutChargeAmount {\n amount\n currencyCode\n }\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n totalDutyAmount {\n amount\n currencyCode\n }\n totalAmountEstimated\n totalTaxAmountEstimated\n totalDutyAmountEstimated\n subtotalAmountEstimated\n }\n buyerIdentity {\n email\n customer {\n email\n id\n }\n deliveryAddressPreferences {\n ... on MailingAddress {\n address1\n address2\n city\n country\n zip\n }\n }\n }\n discountCodes {\n applicable\n code\n }\n discountAllocations {\n ... on CartCodeDiscountAllocation {\n code\n discountedAmount {\n amount\n currencyCode\n }\n }\n ... on CartAutomaticDiscountAllocation {\n title\n discountedAmount {\n amount\n currencyCode\n }\n }\n ... on CartCustomDiscountAllocation {\n title\n discountedAmount {\n amount\n currencyCode\n }\n }\n }\n deliveryGroups(first: 10) {\n nodes {\n deliveryAddress {\n address1\n address2\n city\n country\n zip\n }\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n discountAllocations {\n ... on CartCodeDiscountAllocation {\n code\n discountedAmount {\n amount\n currencyCode\n }\n }\n ... on CartAutomaticDiscountAllocation {\n title\n discountedAmount {\n amount\n currencyCode\n }\n }\n ... on CartCustomDiscountAllocation {\n title\n discountedAmount {\n amount\n currencyCode\n }\n }\n }\n attributes {\n key\n value\n }\n cost {\n amountPerQuantity {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n sku\n title\n quantityAvailable\n currentlyNotInStock\n availableForSale\n barcode\n weight\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n metafields(identifiers: $variantMetafieldIdentifiers) {\n ...metafield\n }\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n }\n ${productFragment}\n ${imageFragment}\n ${seoFragment}\n ${metafieldFragment}\n`\n","export const pageInfoFragment = /* GraphQL */ `\n fragment pageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n`\n","import {\n metafieldFragment,\n productFragment,\n variantFragment,\n imageFragment,\n seoFragment,\n} from '../../fragments'\n\nexport const getProductQuery = /* GraphQL */ `\n query getProductByHandle(\n $handle: String!\n $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n ) {\n product(handle: $handle) {\n ...product\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n variants(first: 250) {\n nodes {\n ...variant\n metafields(identifiers: $variantMetafieldIdentifiers) {\n ...metafield\n }\n }\n }\n }\n }\n ${productFragment}\n ${variantFragment}\n ${metafieldFragment}\n ${imageFragment}\n ${seoFragment}\n`\n","import {\n metafieldFragment,\n pageInfoFragment,\n productFragment,\n variantFragment,\n imageFragment,\n seoFragment,\n} from '../../fragments'\n\nexport const getProductsQuery = /* GraphQL */ `\n query getProducts(\n $first: Int = 10\n $after: String\n $query: String = \"\"\n $sortKey: ProductSortKeys = RELEVANCE\n $reverse: Boolean = false\n $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n ) {\n products(first: $first, after: $after, sortKey: $sortKey, reverse: $reverse, query: $query) {\n pageInfo {\n ...pageInfo\n }\n nodes {\n ...product\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n variants(first: 250) {\n nodes {\n ...variant\n product {\n ...product\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n }\n metafields(identifiers: $variantMetafieldIdentifiers) {\n ...metafield\n }\n }\n }\n }\n }\n }\n ${productFragment}\n ${variantFragment}\n ${pageInfoFragment}\n ${metafieldFragment}\n ${imageFragment}\n ${seoFragment}\n`\n","import {\n metafieldFragment,\n productFragment,\n variantFragment,\n imageFragment,\n seoFragment,\n} from '../../fragments'\n\nexport const getProductsByHandlesQuery = (handles: string[]) => /* GraphQL */ `\nquery GetProductByHandles(\n $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n) {\n ${handles.map(\n (handle, index: number) => /* GraphQL */ `\n product${index}: product(handle: \"${handle}\") {\n ...product\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n variants(first: 250) {\n nodes {\n ...variant\n metafields(identifiers: $variantMetafieldIdentifiers) {\n ...metafield\n }\n }\n }\n }\n `\n )}\n}\n${productFragment}\n${variantFragment}\n${metafieldFragment}\n ${imageFragment}\n ${seoFragment}\n`\n","import { metafieldFragment } from '../../fragments'\n\nexport const getAllProductsPathsQuery = /* GraphQL */ `\n query getAllProductPaths(\n $first: Int = 250\n $cursor: String\n $productMetafieldIdentifiers: [HasMetafieldsIdentifier!] = []\n ) {\n products(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n nodes {\n handle\n metafields(identifiers: $productMetafieldIdentifiers) {\n ...metafield\n }\n }\n }\n }\n ${metafieldFragment}\n`\n","import { cartFragment } from '../../fragments'\n\nexport const getCartQuery = /* GraphQL */ `\n query getCart(\n $cartId: ID!\n $productMetafieldIdentifiers: [HasMetafieldsIdentifier!]!\n $variantMetafieldIdentifiers: [HasMetafieldsIdentifier!]!\n ) {\n cart(id: $cartId) {\n ...cart\n }\n }\n ${cartFragment}\n`\n"]}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@anker-in/shopify-sdk",
3
+ "version": "0.1.1-beta.0",
4
+ "description": "Shopify Storefront API GraphQL client",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.mjs",
11
+ "require": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./api": {
15
+ "import": "./dist/api/index.mjs",
16
+ "require": "./dist/api/index.js",
17
+ "types": "./dist/api/index.d.ts"
18
+ },
19
+ "./client": {
20
+ "import": "./dist/client/index.mjs",
21
+ "require": "./dist/client/index.js",
22
+ "types": "./dist/client/index.d.ts"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist/**",
27
+ "README.md"
28
+ ],
29
+ "dependencies": {
30
+ "query-string": "^7.1.3",
31
+ "@anker-in/shopify-core": "0.1.1-beta.0"
32
+ },
33
+ "peerDependencies": {
34
+ "graphql": "^16.0.0"
35
+ },
36
+ "devDependencies": {
37
+ "@graphql-codegen/cli": "^5.0.0",
38
+ "@graphql-codegen/client-preset": "^4.6.4",
39
+ "@graphql-codegen/introspection": "^5.0.0",
40
+ "@graphql-codegen/typescript": "^5.0.5",
41
+ "@shopify/api-codegen-preset": "^1.2.0",
42
+ "@types/node": "^22.15.3",
43
+ "graphql": "^16.11.0",
44
+ "tsup": "^8.0.0",
45
+ "typescript": "5.9.2",
46
+ "@repo/eslint-config": "0.0.0",
47
+ "@repo/typescript-config": "0.0.0"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "keywords": [
53
+ "shopify",
54
+ "storefront",
55
+ "api",
56
+ "graphql",
57
+ "sdk"
58
+ ],
59
+ "license": "MIT",
60
+ "scripts": {
61
+ "build": "tsup",
62
+ "dev": "tsup --watch",
63
+ "generate": "graphql-codegen",
64
+ "check-types": "tsc --noEmit",
65
+ "lint": "eslint . --max-warnings 0"
66
+ }
67
+ }