n8n-nodes-shopify-custom 2.0.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.
- package/LICENSE.md +19 -0
- package/README.md +68 -0
- package/dist/credentials/ShopifyCustomAdminApi.credentials.d.ts +10 -0
- package/dist/credentials/ShopifyCustomAdminApi.credentials.js +65 -0
- package/dist/credentials/ShopifyCustomAdminApi.credentials.js.map +1 -0
- package/dist/icons/shopify.dark.svg +12 -0
- package/dist/icons/shopify.svg +12 -0
- package/dist/nodes/ShopifyCustom/ShopifyCustom.node.d.ts +15 -0
- package/dist/nodes/ShopifyCustom/ShopifyCustom.node.js +358 -0
- package/dist/nodes/ShopifyCustom/ShopifyCustom.node.js.map +1 -0
- package/dist/nodes/ShopifyCustom/ShopifyCustom.node.json +18 -0
- package/dist/nodes/ShopifyCustom/config/operations/collection.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/collection.js +306 -0
- package/dist/nodes/ShopifyCustom/config/operations/collection.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/common.d.ts +13 -0
- package/dist/nodes/ShopifyCustom/config/operations/common.js +222 -0
- package/dist/nodes/ShopifyCustom/config/operations/common.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/customer.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/customer.js +107 -0
- package/dist/nodes/ShopifyCustom/config/operations/customer.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/draftOrder.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/draftOrder.js +118 -0
- package/dist/nodes/ShopifyCustom/config/operations/draftOrder.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/index.d.ts +7 -0
- package/dist/nodes/ShopifyCustom/config/operations/index.js +48 -0
- package/dist/nodes/ShopifyCustom/config/operations/index.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.js +192 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.js +125 -0
- package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/metaobject.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/metaobject.js +198 -0
- package/dist/nodes/ShopifyCustom/config/operations/metaobject.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/order.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/order.js +111 -0
- package/dist/nodes/ShopifyCustom/config/operations/order.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/product.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/product.js +118 -0
- package/dist/nodes/ShopifyCustom/config/operations/product.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/productVariant.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/productVariant.js +109 -0
- package/dist/nodes/ShopifyCustom/config/operations/productVariant.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/service.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/config/operations/service.js +14 -0
- package/dist/nodes/ShopifyCustom/config/operations/service.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/operations/types.d.ts +13 -0
- package/dist/nodes/ShopifyCustom/config/operations/types.js +3 -0
- package/dist/nodes/ShopifyCustom/config/operations/types.js.map +1 -0
- package/dist/nodes/ShopifyCustom/config/resources.d.ts +9 -0
- package/dist/nodes/ShopifyCustom/config/resources.js +62 -0
- package/dist/nodes/ShopifyCustom/config/resources.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.d.ts +17 -0
- package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.js +281 -0
- package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/errors.d.ts +8 -0
- package/dist/nodes/ShopifyCustom/shared/errors.js +37 -0
- package/dist/nodes/ShopifyCustom/shared/errors.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/client.d.ts +26 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/client.js +73 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/client.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/registry.d.ts +17 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/registry.js +962 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/registry.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.js +99 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.d.ts +7 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.js +69 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.js +94 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.js +91 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.d.ts +10 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.js +223 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.js +92 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.js +95 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.js +107 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.d.ts +5 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.js +99 -0
- package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/definitions.d.ts +24 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/definitions.js +65 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/definitions.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.d.ts +3 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.js +19 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.js +122 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/types.d.ts +17 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/types.js +57 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/types.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.js +395 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.d.ts +20 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.js +61 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.d.ts +3 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.js +43 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.js +103 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.js +80 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.js +110 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.js +64 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.d.ts +3 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.js +89 -0
- package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/output/outputMapper.d.ts +3 -0
- package/dist/nodes/ShopifyCustom/shared/output/outputMapper.js +82 -0
- package/dist/nodes/ShopifyCustom/shared/output/outputMapper.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.d.ts +2 -0
- package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.js +83 -0
- package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.js.map +1 -0
- package/dist/nodes/ShopifyCustom/shopify.dark.svg +12 -0
- package/dist/nodes/ShopifyCustom/shopify.svg +12 -0
- package/dist/package.json +62 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SHOPIFY_RESOURCE_DEFINITIONS = void 0;
|
|
4
|
+
exports.SHOPIFY_RESOURCE_DEFINITIONS = [
|
|
5
|
+
{
|
|
6
|
+
value: 'product',
|
|
7
|
+
name: 'Product',
|
|
8
|
+
description: 'Create, read, update and delete products',
|
|
9
|
+
ownerType: 'PRODUCT',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: 'productVariant',
|
|
13
|
+
name: 'Product Variant',
|
|
14
|
+
description: 'Create, read, update and delete product variants',
|
|
15
|
+
ownerType: 'PRODUCTVARIANT',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
value: 'collection',
|
|
19
|
+
name: 'Collection',
|
|
20
|
+
description: 'Manage Shopify collections',
|
|
21
|
+
ownerType: 'COLLECTION',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
value: 'customer',
|
|
25
|
+
name: 'Customer',
|
|
26
|
+
description: 'Manage customer records',
|
|
27
|
+
ownerType: 'CUSTOMER',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
value: 'order',
|
|
31
|
+
name: 'Order',
|
|
32
|
+
description: 'Create and manage orders',
|
|
33
|
+
ownerType: 'ORDER',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: 'draftOrder',
|
|
37
|
+
name: 'Draft Order',
|
|
38
|
+
description: 'Manage draft orders',
|
|
39
|
+
ownerType: 'DRAFTORDER',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
value: 'metaobject',
|
|
43
|
+
name: 'Metaobject',
|
|
44
|
+
description: 'Manage Shopify metaobjects',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
value: 'metafieldValue',
|
|
48
|
+
name: 'Metafield Value',
|
|
49
|
+
description: 'Set, read and delete metafield values',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
value: 'metafieldDefinition',
|
|
53
|
+
name: 'Metafield Definition',
|
|
54
|
+
description: 'Create, read, update and delete metafield definitions',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
value: 'service',
|
|
58
|
+
name: 'Service',
|
|
59
|
+
description: 'Service utilities',
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../nodes/ShopifyCustom/config/resources.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,4BAA4B,GAAiC;IACzE;QACC,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,SAAS;KACpB;IACD;QACC,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE,gBAAgB;KAC3B;IACD;QACC,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,4BAA4B;QACzC,SAAS,EAAE,YAAY;KACvB;IACD;QACC,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yBAAyB;QACtC,SAAS,EAAE,UAAU;KACrB;IACD;QACC,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,OAAO;KAClB;IACD;QACC,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,qBAAqB;QAClC,SAAS,EAAE,YAAY;KACvB;IACD;QACC,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,4BAA4B;KACzC;IACD;QACC,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,uCAAuC;KACpD;IACD;QACC,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,uDAAuD;KACpE;IACD;QACC,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mBAAmB;KAChC;CACD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';
|
|
2
|
+
export type CollectionRuleValueType = 'text' | 'number' | 'boolean' | 'metaobject_reference';
|
|
3
|
+
export interface IEncodedMetafieldRuleOption {
|
|
4
|
+
ruleType: string;
|
|
5
|
+
defaultRelation: string;
|
|
6
|
+
allowedRelations: string[];
|
|
7
|
+
definitionId: string;
|
|
8
|
+
namespace: string;
|
|
9
|
+
key: string;
|
|
10
|
+
name: string;
|
|
11
|
+
typeName: string;
|
|
12
|
+
valueType: CollectionRuleValueType;
|
|
13
|
+
}
|
|
14
|
+
export declare function decodeMetafieldRuleOptionValue(value: string): IEncodedMetafieldRuleOption | undefined;
|
|
15
|
+
export declare function getCollectionNativeRuleTypeOptions(context: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
16
|
+
export declare function getCollectionMetafieldRuleOptions(context: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
17
|
+
export declare function getCollectionRuleRelationOptions(context: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeMetafieldRuleOptionValue = decodeMetafieldRuleOptionValue;
|
|
4
|
+
exports.getCollectionNativeRuleTypeOptions = getCollectionNativeRuleTypeOptions;
|
|
5
|
+
exports.getCollectionMetafieldRuleOptions = getCollectionMetafieldRuleOptions;
|
|
6
|
+
exports.getCollectionRuleRelationOptions = getCollectionRuleRelationOptions;
|
|
7
|
+
const client_1 = require("../graphql/client");
|
|
8
|
+
const COLLECTION_RULE_CONDITIONS_QUERY = `
|
|
9
|
+
query CollectionRuleConditions {
|
|
10
|
+
collectionRulesConditions {
|
|
11
|
+
ruleType
|
|
12
|
+
defaultRelation
|
|
13
|
+
allowedRelations
|
|
14
|
+
ruleObject {
|
|
15
|
+
__typename
|
|
16
|
+
... on CollectionRuleMetafieldCondition {
|
|
17
|
+
metafieldDefinition {
|
|
18
|
+
id
|
|
19
|
+
name
|
|
20
|
+
namespace
|
|
21
|
+
key
|
|
22
|
+
type {
|
|
23
|
+
name
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
const CACHE_TTL_MS = 2 * 60 * 1000;
|
|
32
|
+
let ruleConditionsCache;
|
|
33
|
+
function asString(value) {
|
|
34
|
+
return String(value !== null && value !== void 0 ? value : '').trim();
|
|
35
|
+
}
|
|
36
|
+
function isObject(value) {
|
|
37
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
38
|
+
}
|
|
39
|
+
function toLabel(value) {
|
|
40
|
+
return value
|
|
41
|
+
.toLowerCase()
|
|
42
|
+
.split('_')
|
|
43
|
+
.filter((chunk) => chunk.length > 0)
|
|
44
|
+
.map((chunk) => chunk[0].toUpperCase() + chunk.slice(1))
|
|
45
|
+
.join(' ');
|
|
46
|
+
}
|
|
47
|
+
function inferMetafieldValueType(typeName) {
|
|
48
|
+
const normalizedType = typeName.toLowerCase();
|
|
49
|
+
if (normalizedType === 'boolean') {
|
|
50
|
+
return 'boolean';
|
|
51
|
+
}
|
|
52
|
+
if (normalizedType === 'number_integer' ||
|
|
53
|
+
normalizedType === 'number_decimal' ||
|
|
54
|
+
normalizedType === 'rating') {
|
|
55
|
+
return 'number';
|
|
56
|
+
}
|
|
57
|
+
if (normalizedType === 'metaobject_reference') {
|
|
58
|
+
return 'metaobject_reference';
|
|
59
|
+
}
|
|
60
|
+
return 'text';
|
|
61
|
+
}
|
|
62
|
+
function normalizeRuleConditions(value) {
|
|
63
|
+
if (!Array.isArray(value)) {
|
|
64
|
+
return { nativeRules: [], metafieldRules: [] };
|
|
65
|
+
}
|
|
66
|
+
const nativeRulesMap = new Map();
|
|
67
|
+
const metafieldRules = [];
|
|
68
|
+
for (const item of value) {
|
|
69
|
+
if (!item || typeof item !== 'object') {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const typedItem = item;
|
|
73
|
+
const ruleType = asString(typedItem.ruleType);
|
|
74
|
+
if (!ruleType) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const defaultRelation = asString(typedItem.defaultRelation);
|
|
78
|
+
const allowedRelations = Array.isArray(typedItem.allowedRelations)
|
|
79
|
+
? typedItem.allowedRelations
|
|
80
|
+
.map((relation) => asString(relation))
|
|
81
|
+
.filter((relation) => relation.length > 0)
|
|
82
|
+
: [];
|
|
83
|
+
const ruleObject = typedItem.ruleObject && typeof typedItem.ruleObject === 'object'
|
|
84
|
+
? typedItem.ruleObject
|
|
85
|
+
: undefined;
|
|
86
|
+
const typename = asString(ruleObject === null || ruleObject === void 0 ? void 0 : ruleObject.__typename);
|
|
87
|
+
if (typename === 'CollectionRuleMetafieldCondition') {
|
|
88
|
+
const definitionRaw = (ruleObject === null || ruleObject === void 0 ? void 0 : ruleObject.metafieldDefinition) && typeof ruleObject.metafieldDefinition === 'object'
|
|
89
|
+
? ruleObject.metafieldDefinition
|
|
90
|
+
: undefined;
|
|
91
|
+
const definitionId = asString(definitionRaw === null || definitionRaw === void 0 ? void 0 : definitionRaw.id);
|
|
92
|
+
const namespace = asString(definitionRaw === null || definitionRaw === void 0 ? void 0 : definitionRaw.namespace);
|
|
93
|
+
const key = asString(definitionRaw === null || definitionRaw === void 0 ? void 0 : definitionRaw.key);
|
|
94
|
+
const name = asString(definitionRaw === null || definitionRaw === void 0 ? void 0 : definitionRaw.name);
|
|
95
|
+
const typeObject = (definitionRaw === null || definitionRaw === void 0 ? void 0 : definitionRaw.type) && typeof definitionRaw.type === 'object'
|
|
96
|
+
? definitionRaw.type
|
|
97
|
+
: undefined;
|
|
98
|
+
const typeName = asString(typeObject === null || typeObject === void 0 ? void 0 : typeObject.name);
|
|
99
|
+
if (!definitionId || !namespace || !key || !typeName) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
metafieldRules.push({
|
|
103
|
+
ruleType,
|
|
104
|
+
defaultRelation,
|
|
105
|
+
allowedRelations,
|
|
106
|
+
definitionId,
|
|
107
|
+
name: name || `${namespace}.${key}`,
|
|
108
|
+
namespace,
|
|
109
|
+
key,
|
|
110
|
+
typeName,
|
|
111
|
+
valueType: inferMetafieldValueType(typeName),
|
|
112
|
+
});
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (!nativeRulesMap.has(ruleType)) {
|
|
116
|
+
nativeRulesMap.set(ruleType, {
|
|
117
|
+
ruleType,
|
|
118
|
+
defaultRelation,
|
|
119
|
+
allowedRelations,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
nativeRules: Array.from(nativeRulesMap.values()),
|
|
125
|
+
metafieldRules,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
async function listCollectionRuleConditions(context) {
|
|
129
|
+
var _a;
|
|
130
|
+
if (ruleConditionsCache && ruleConditionsCache.expiresAt > Date.now()) {
|
|
131
|
+
return ruleConditionsCache.data;
|
|
132
|
+
}
|
|
133
|
+
const response = await (0, client_1.executeShopifyGraphql)(context, COLLECTION_RULE_CONDITIONS_QUERY, {}, 0);
|
|
134
|
+
(0, client_1.assertNoGraphQLErrors)(context, response, 0);
|
|
135
|
+
const data = normalizeRuleConditions((_a = response.data) === null || _a === void 0 ? void 0 : _a.collectionRulesConditions);
|
|
136
|
+
ruleConditionsCache = {
|
|
137
|
+
expiresAt: Date.now() + CACHE_TTL_MS,
|
|
138
|
+
data,
|
|
139
|
+
};
|
|
140
|
+
return data;
|
|
141
|
+
}
|
|
142
|
+
function getCurrentStringParameter(context, parameterName) {
|
|
143
|
+
try {
|
|
144
|
+
const value = asString(context.getCurrentNodeParameter(parameterName));
|
|
145
|
+
return value.length > 0 ? value : undefined;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function getCurrentRuleValues(context) {
|
|
152
|
+
const values = {
|
|
153
|
+
ruleSource: getCurrentStringParameter(context, 'ruleSource'),
|
|
154
|
+
nativeRuleType: getCurrentStringParameter(context, 'nativeRuleType'),
|
|
155
|
+
metafieldRule: getCurrentStringParameter(context, 'metafieldRule'),
|
|
156
|
+
};
|
|
157
|
+
if (values.ruleSource && (values.nativeRuleType || values.metafieldRule)) {
|
|
158
|
+
return values;
|
|
159
|
+
}
|
|
160
|
+
const currentParameters = context.getCurrentNodeParameters();
|
|
161
|
+
if (!isObject(currentParameters)) {
|
|
162
|
+
return values;
|
|
163
|
+
}
|
|
164
|
+
const collectionRules = currentParameters.collectionRules;
|
|
165
|
+
if (!isObject(collectionRules)) {
|
|
166
|
+
return values;
|
|
167
|
+
}
|
|
168
|
+
const ruleItemsRaw = collectionRules.items;
|
|
169
|
+
if (!Array.isArray(ruleItemsRaw) || ruleItemsRaw.length === 0) {
|
|
170
|
+
return values;
|
|
171
|
+
}
|
|
172
|
+
const currentRule = ruleItemsRaw[ruleItemsRaw.length - 1];
|
|
173
|
+
if (!isObject(currentRule)) {
|
|
174
|
+
return values;
|
|
175
|
+
}
|
|
176
|
+
if (!values.ruleSource) {
|
|
177
|
+
const source = asString(currentRule.ruleSource);
|
|
178
|
+
if (source) {
|
|
179
|
+
values.ruleSource = source;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (!values.nativeRuleType) {
|
|
183
|
+
const nativeRuleType = asString(currentRule.nativeRuleType);
|
|
184
|
+
if (nativeRuleType) {
|
|
185
|
+
values.nativeRuleType = nativeRuleType;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (!values.metafieldRule) {
|
|
189
|
+
const metafieldRule = asString(currentRule.metafieldRule);
|
|
190
|
+
if (metafieldRule) {
|
|
191
|
+
values.metafieldRule = metafieldRule;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return values;
|
|
195
|
+
}
|
|
196
|
+
function encodeMetafieldRuleOptionValue(rule) {
|
|
197
|
+
const encoded = {
|
|
198
|
+
ruleType: rule.ruleType,
|
|
199
|
+
defaultRelation: rule.defaultRelation,
|
|
200
|
+
allowedRelations: rule.allowedRelations,
|
|
201
|
+
definitionId: rule.definitionId,
|
|
202
|
+
namespace: rule.namespace,
|
|
203
|
+
key: rule.key,
|
|
204
|
+
name: rule.name,
|
|
205
|
+
typeName: rule.typeName,
|
|
206
|
+
valueType: rule.valueType,
|
|
207
|
+
};
|
|
208
|
+
return JSON.stringify(encoded);
|
|
209
|
+
}
|
|
210
|
+
function decodeMetafieldRuleOptionValue(value) {
|
|
211
|
+
try {
|
|
212
|
+
const parsed = JSON.parse(value);
|
|
213
|
+
if (!parsed ||
|
|
214
|
+
typeof parsed !== 'object' ||
|
|
215
|
+
!parsed.ruleType ||
|
|
216
|
+
!parsed.definitionId ||
|
|
217
|
+
!parsed.namespace ||
|
|
218
|
+
!parsed.key ||
|
|
219
|
+
!parsed.typeName ||
|
|
220
|
+
!parsed.valueType) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
return parsed;
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
async function getCollectionNativeRuleTypeOptions(context) {
|
|
230
|
+
const conditions = await listCollectionRuleConditions(context);
|
|
231
|
+
return conditions.nativeRules
|
|
232
|
+
.map((rule) => ({
|
|
233
|
+
name: toLabel(rule.ruleType),
|
|
234
|
+
value: rule.ruleType,
|
|
235
|
+
}))
|
|
236
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
237
|
+
}
|
|
238
|
+
async function getCollectionMetafieldRuleOptions(context) {
|
|
239
|
+
const conditions = await listCollectionRuleConditions(context);
|
|
240
|
+
return conditions.metafieldRules
|
|
241
|
+
.map((rule) => ({
|
|
242
|
+
name: `${rule.namespace}.${rule.key} (${rule.typeName})`,
|
|
243
|
+
value: encodeMetafieldRuleOptionValue(rule),
|
|
244
|
+
description: rule.name,
|
|
245
|
+
}))
|
|
246
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
247
|
+
}
|
|
248
|
+
async function getCollectionRuleRelationOptions(context) {
|
|
249
|
+
var _a, _b, _c, _d;
|
|
250
|
+
const conditions = await listCollectionRuleConditions(context);
|
|
251
|
+
const currentRuleValues = getCurrentRuleValues(context);
|
|
252
|
+
const ruleSource = (_a = currentRuleValues.ruleSource) !== null && _a !== void 0 ? _a : 'native';
|
|
253
|
+
let allowedRelations = [];
|
|
254
|
+
if (ruleSource === 'metafield') {
|
|
255
|
+
const encoded = currentRuleValues.metafieldRule;
|
|
256
|
+
if (encoded) {
|
|
257
|
+
const decoded = decodeMetafieldRuleOptionValue(encoded);
|
|
258
|
+
allowedRelations = (_b = decoded === null || decoded === void 0 ? void 0 : decoded.allowedRelations) !== null && _b !== void 0 ? _b : [];
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
const selectedRuleType = currentRuleValues.nativeRuleType;
|
|
263
|
+
if (selectedRuleType) {
|
|
264
|
+
allowedRelations =
|
|
265
|
+
(_d = (_c = conditions.nativeRules.find((rule) => rule.ruleType === selectedRuleType)) === null || _c === void 0 ? void 0 : _c.allowedRelations) !== null && _d !== void 0 ? _d : [];
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
allowedRelations = conditions.nativeRules.flatMap((rule) => rule.allowedRelations);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (allowedRelations.length === 0) {
|
|
272
|
+
return [];
|
|
273
|
+
}
|
|
274
|
+
return Array.from(new Set(allowedRelations))
|
|
275
|
+
.map((relation) => ({
|
|
276
|
+
name: toLabel(relation),
|
|
277
|
+
value: relation,
|
|
278
|
+
}))
|
|
279
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=ruleConditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleConditions.js","sourceRoot":"","sources":["../../../../../nodes/ShopifyCustom/shared/collections/ruleConditions.ts"],"names":[],"mappings":";;AA4TA,wEAmBC;AAED,gFAUC;AAED,8EAWC;AAED,4EAmCC;AA5YD,8CAAiF;AA+DjF,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBxC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,IAAI,mBAAiF,CAAC;AAEtF,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,KAAK;SACV,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAChD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IACC,cAAc,KAAK,gBAAgB;QACnC,cAAc,KAAK,gBAAgB;QACnC,cAAc,KAAK,QAAQ,EAC1B,CAAC;QACF,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,IAAI,cAAc,KAAK,sBAAsB,EAAE,CAAC;QAC/C,OAAO,sBAAsB,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAC;IAChE,MAAM,cAAc,GAA+B,EAAE,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,SAAS;QACV,CAAC;QACD,MAAM,SAAS,GAAG,IAA+B,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,SAAS;QACV,CAAC;QACD,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;YACjE,CAAC,CAAC,SAAS,CAAC,gBAAgB;iBACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACrC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,EAAE,CAAC;QAEN,MAAM,UAAU,GACf,SAAS,CAAC,UAAU,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;YAC/D,CAAC,CAAE,SAAS,CAAC,UAAsC;YACnD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,kCAAkC,EAAE,CAAC;YACrD,MAAM,aAAa,GAClB,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,KAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,QAAQ;gBACpF,CAAC,CAAE,UAAU,CAAC,mBAA+C;gBAC7D,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAC;YAC3C,MAAM,UAAU,GACf,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,KAAI,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ;gBAC5D,CAAC,CAAE,aAAa,CAAC,IAAgC;gBACjD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,CAAC;YAE5C,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtD,SAAS;YACV,CAAC;YAED,cAAc,CAAC,IAAI,CAAC;gBACnB,QAAQ;gBACR,eAAe;gBACf,gBAAgB;gBAChB,YAAY;gBACZ,IAAI,EAAE,IAAI,IAAI,GAAG,SAAS,IAAI,GAAG,EAAE;gBACnC,SAAS;gBACT,GAAG;gBACH,QAAQ;gBACR,SAAS,EAAE,uBAAuB,CAAC,QAAQ,CAAC;aAC5C,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC5B,QAAQ;gBACR,eAAe;gBACf,gBAAgB;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO;QACN,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAChD,cAAc;KACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CAC1C,OAA8B;;IAE9B,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACvE,OAAO,mBAAmB,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAqB,EAC3C,OAAO,EACP,gCAAgC,EAChC,EAAE,EACF,CAAC,CACD,CAAC;IACF,IAAA,8BAAqB,EAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAA,QAAQ,CAAC,IAAI,0CAAE,yBAAyB,CAAC,CAAC;IAC/E,mBAAmB,GAAG;QACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY;QACpC,IAAI;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CACjC,OAA8B,EAC9B,aAAqB;IAErB,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA8B;IAK3D,MAAM,MAAM,GAIR;QACH,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5D,cAAc,EAAE,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACpE,aAAa,EAAE,yBAAyB,CAAC,OAAO,EAAE,eAAe,CAAC;KAClE,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,eAAe,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAI,eAA+B,CAAC,KAAK,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QACxC,CAAC;IACF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CAAC,IAA8B;IACrE,MAAM,OAAO,GAAgC;QAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;KACzB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,8BAA8B,CAAC,KAAa;IAC3D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgC,CAAC;QAChE,IACC,CAAC,MAAM;YACP,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,MAAM,CAAC,QAAQ;YAChB,CAAC,MAAM,CAAC,YAAY;YACpB,CAAC,MAAM,CAAC,SAAS;YACjB,CAAC,MAAM,CAAC,GAAG;YACX,CAAC,MAAM,CAAC,QAAQ;YAChB,CAAC,MAAM,CAAC,SAAS,EAChB,CAAC;YACF,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,kCAAkC,CACvD,OAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC,WAAW;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5B,KAAK,EAAE,IAAI,CAAC,QAAQ;KACpB,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,iCAAiC,CACtD,OAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,UAAU,CAAC,cAAc;SAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,GAAG;QACxD,KAAK,EAAE,8BAA8B,CAAC,IAAI,CAAC;QAC3C,WAAW,EAAE,IAAI,CAAC,IAAI;KACtB,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,gCAAgC,CACrD,OAA8B;;IAE9B,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAA,iBAAiB,CAAC,UAAU,mCAAI,QAAQ,CAAC;IAE5D,IAAI,gBAAgB,GAAa,EAAE,CAAC;IACpC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;YACxD,gBAAgB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,EAAE,CAAC;QACpD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC;QAC1D,IAAI,gBAAgB,EAAE,CAAC;YACtB,gBAAgB;gBACf,MAAA,MAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,0CAAE,gBAAgB,mCAC3F,EAAE,CAAC;QACL,CAAC;aAAM,CAAC;YACP,gBAAgB,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpF,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;QACvB,KAAK,EAAE,QAAQ;KACf,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IDataObject, IExecuteFunctions } from 'n8n-workflow';
|
|
2
|
+
export interface IShopifyUserError {
|
|
3
|
+
field?: string[] | null;
|
|
4
|
+
message: string;
|
|
5
|
+
code?: string | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function throwIfUserErrors(executeFunctions: IExecuteFunctions, userErrors: IShopifyUserError[] | null | undefined, itemIndex: number): void;
|
|
8
|
+
export declare function getErrorData(error: unknown): IDataObject;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throwIfUserErrors = throwIfUserErrors;
|
|
4
|
+
exports.getErrorData = getErrorData;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
function renderFieldPath(field) {
|
|
7
|
+
if (!field || field.length === 0) {
|
|
8
|
+
return '';
|
|
9
|
+
}
|
|
10
|
+
return field.join('.');
|
|
11
|
+
}
|
|
12
|
+
function throwIfUserErrors(executeFunctions, userErrors, itemIndex) {
|
|
13
|
+
if (!userErrors || userErrors.length === 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const messages = userErrors.map((userError) => {
|
|
17
|
+
const fieldPath = renderFieldPath(userError.field);
|
|
18
|
+
const code = userError.code ? ` [${userError.code}]` : '';
|
|
19
|
+
return fieldPath
|
|
20
|
+
? `${userError.message}${code} (field: ${fieldPath})`
|
|
21
|
+
: `${userError.message}${code}`;
|
|
22
|
+
});
|
|
23
|
+
throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Shopify user error: ${messages.join('; ')}`, { itemIndex });
|
|
24
|
+
}
|
|
25
|
+
function getErrorData(error) {
|
|
26
|
+
if (error instanceof Error) {
|
|
27
|
+
return {
|
|
28
|
+
message: error.message,
|
|
29
|
+
name: error.name,
|
|
30
|
+
stack: error.stack,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
message: String(error),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../nodes/ShopifyCustom/shared/errors.ts"],"names":[],"mappings":";;AAgBA,8CAsBC;AAED,oCAYC;AAnDD,+CAAkD;AAQlD,SAAS,eAAe,CAAC,KAAkC;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAgB,iBAAiB,CAChC,gBAAmC,EACnC,UAAkD,EAClD,SAAiB;IAEjB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS;YACf,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,YAAY,SAAS,GAAG;YACrD,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,iCAAkB,CAC3B,gBAAgB,CAAC,OAAO,EAAE,EAC1B,uBAAuB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC5C,EAAE,SAAS,EAAE,CACb,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SAClB,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;KACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { IDataObject, IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
|
|
2
|
+
export declare const SHOPIFY_CUSTOM_CREDENTIAL_NAME = "shopifyCustomAdminApi";
|
|
3
|
+
type ShopifyFunctionContext = IExecuteFunctions | ILoadOptionsFunctions;
|
|
4
|
+
interface IShopifyGraphQLError {
|
|
5
|
+
message: string;
|
|
6
|
+
locations?: Array<{
|
|
7
|
+
line: number;
|
|
8
|
+
column: number;
|
|
9
|
+
}>;
|
|
10
|
+
path?: string[];
|
|
11
|
+
extensions?: IDataObject;
|
|
12
|
+
}
|
|
13
|
+
interface IShopifyGraphQLResponse<TData = IDataObject> {
|
|
14
|
+
data?: TData;
|
|
15
|
+
errors?: IShopifyGraphQLError[];
|
|
16
|
+
extensions?: IDataObject;
|
|
17
|
+
}
|
|
18
|
+
interface IShopifyCredentialData extends IDataObject {
|
|
19
|
+
shopSubdomain: string;
|
|
20
|
+
apiVersion?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function normalizeShopSubdomain(input: string): string;
|
|
23
|
+
export declare function buildGraphqlUrl(credentials: IShopifyCredentialData): string;
|
|
24
|
+
export declare function executeShopifyGraphql<TData = IDataObject>(context: ShopifyFunctionContext, query: string, variables?: IDataObject, itemIndex?: number): Promise<IShopifyGraphQLResponse<TData>>;
|
|
25
|
+
export declare function assertNoGraphQLErrors(context: ShopifyFunctionContext, response: IShopifyGraphQLResponse<unknown>, itemIndex?: number): void;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SHOPIFY_CUSTOM_CREDENTIAL_NAME = void 0;
|
|
4
|
+
exports.normalizeShopSubdomain = normalizeShopSubdomain;
|
|
5
|
+
exports.buildGraphqlUrl = buildGraphqlUrl;
|
|
6
|
+
exports.executeShopifyGraphql = executeShopifyGraphql;
|
|
7
|
+
exports.assertNoGraphQLErrors = assertNoGraphQLErrors;
|
|
8
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
9
|
+
exports.SHOPIFY_CUSTOM_CREDENTIAL_NAME = 'shopifyCustomAdminApi';
|
|
10
|
+
function normalizeShopSubdomain(input) {
|
|
11
|
+
return input.trim().replace(/^https?:\/\//, '').replace(/\.myshopify\.com\/?$/, '');
|
|
12
|
+
}
|
|
13
|
+
function buildGraphqlUrl(credentials) {
|
|
14
|
+
const subdomain = normalizeShopSubdomain(credentials.shopSubdomain);
|
|
15
|
+
const apiVersion = typeof credentials.apiVersion === 'string' && credentials.apiVersion.trim().length > 0
|
|
16
|
+
? credentials.apiVersion.trim()
|
|
17
|
+
: '2025-10';
|
|
18
|
+
return `https://${subdomain}.myshopify.com/admin/api/${apiVersion}/graphql.json`;
|
|
19
|
+
}
|
|
20
|
+
function shouldRetry(error) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
if (!error || typeof error !== 'object') {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const typedError = error;
|
|
26
|
+
const statusCode = (_b = (_a = typedError.statusCode) !== null && _a !== void 0 ? _a : typedError.httpCode) !== null && _b !== void 0 ? _b : typedError.responseCode;
|
|
27
|
+
if (typeof statusCode === 'number') {
|
|
28
|
+
return statusCode === 429 || statusCode >= 500;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
async function executeShopifyGraphql(context, query, variables = {}, itemIndex = 0) {
|
|
33
|
+
const credentials = (await context.getCredentials(exports.SHOPIFY_CUSTOM_CREDENTIAL_NAME));
|
|
34
|
+
const url = buildGraphqlUrl(credentials);
|
|
35
|
+
const requestOptions = {
|
|
36
|
+
url,
|
|
37
|
+
method: 'POST',
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
Accept: 'application/json',
|
|
41
|
+
},
|
|
42
|
+
body: {
|
|
43
|
+
query,
|
|
44
|
+
variables,
|
|
45
|
+
},
|
|
46
|
+
json: true,
|
|
47
|
+
};
|
|
48
|
+
let lastError;
|
|
49
|
+
const maxAttempts = 3;
|
|
50
|
+
for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
|
|
51
|
+
try {
|
|
52
|
+
const response = (await context.helpers.httpRequestWithAuthentication.call(context, exports.SHOPIFY_CUSTOM_CREDENTIAL_NAME, requestOptions));
|
|
53
|
+
return response;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
lastError = error;
|
|
57
|
+
if (!shouldRetry(error) || attempt === maxAttempts - 1) {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), lastError, { itemIndex });
|
|
63
|
+
}
|
|
64
|
+
function assertNoGraphQLErrors(context, response, itemIndex = 0) {
|
|
65
|
+
if (!response.errors || response.errors.length === 0) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const messages = response.errors.map((error) => error.message).join('; ');
|
|
69
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Shopify GraphQL error: ${messages}`, {
|
|
70
|
+
itemIndex,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../nodes/ShopifyCustom/shared/graphql/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IDataObject } from 'n8n-workflow';
|
|
2
|
+
import type { IShopifyUserError } from '../errors';
|
|
3
|
+
import type { ShopifyOperationKey } from '../../config/operations/types';
|
|
4
|
+
interface IRegistryPaginationConfig {
|
|
5
|
+
connectionPath: string[];
|
|
6
|
+
firstVariableName?: string;
|
|
7
|
+
afterVariableName?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IRegistryOperation {
|
|
10
|
+
document: string;
|
|
11
|
+
buildVariables(parameters: IDataObject): IDataObject;
|
|
12
|
+
mapSimplified(data: IDataObject): unknown;
|
|
13
|
+
getUserErrors?(data: IDataObject): IShopifyUserError[] | undefined;
|
|
14
|
+
pagination?: IRegistryPaginationConfig;
|
|
15
|
+
}
|
|
16
|
+
export declare function getRegistryOperation(operationKey: ShopifyOperationKey): IRegistryOperation;
|
|
17
|
+
export {};
|