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,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeReferenceMetafieldValue = serializeReferenceMetafieldValue;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
function isObject(value) {
|
|
6
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
function parseManualIds(value) {
|
|
9
|
+
if (value === undefined || value === null) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return String(value)
|
|
13
|
+
.split(/[\n,]/g)
|
|
14
|
+
.map((item) => item.trim())
|
|
15
|
+
.filter((item) => item.length > 0);
|
|
16
|
+
}
|
|
17
|
+
function parseJsonStringArray(value) {
|
|
18
|
+
if (value === undefined || value === null || value === '') {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
const normalize = (items) => items
|
|
22
|
+
.map((item) => String(item !== null && item !== void 0 ? item : '').trim())
|
|
23
|
+
.filter((item) => item.length > 0);
|
|
24
|
+
if (Array.isArray(value)) {
|
|
25
|
+
return normalize(value);
|
|
26
|
+
}
|
|
27
|
+
if (typeof value === 'string') {
|
|
28
|
+
const trimmed = value.trim();
|
|
29
|
+
if (trimmed.length === 0) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
let parsed;
|
|
33
|
+
try {
|
|
34
|
+
parsed = JSON.parse(trimmed);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
throw new Error('Reference list values must be a valid JSON array');
|
|
38
|
+
}
|
|
39
|
+
if (!Array.isArray(parsed)) {
|
|
40
|
+
throw new Error('Reference list values must be a JSON array');
|
|
41
|
+
}
|
|
42
|
+
return normalize(parsed);
|
|
43
|
+
}
|
|
44
|
+
throw new Error('Reference list values must be a JSON array');
|
|
45
|
+
}
|
|
46
|
+
function parseReferenceListItems(value) {
|
|
47
|
+
if (!isObject(value) || !Array.isArray(value.items)) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
return value.items
|
|
51
|
+
.filter(isObject)
|
|
52
|
+
.map((entry) => { var _a; return String((_a = entry.gid) !== null && _a !== void 0 ? _a : '').trim(); })
|
|
53
|
+
.filter((gid) => gid.length > 0);
|
|
54
|
+
}
|
|
55
|
+
function serializeReferenceMetafieldValue(type, item) {
|
|
56
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.REFERENCE_TYPES)) {
|
|
57
|
+
const directValue = (typeof item.referenceGid === 'string' && item.referenceGid.trim()) ||
|
|
58
|
+
(typeof item.referenceId === 'string' && item.referenceId.trim()) ||
|
|
59
|
+
parseManualIds(item.manualReferenceIds)[0];
|
|
60
|
+
if (!directValue) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return String(directValue);
|
|
64
|
+
}
|
|
65
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.LIST_REFERENCE_TYPES)) {
|
|
66
|
+
const jsonArrayIds = parseJsonStringArray(item.listStringArray);
|
|
67
|
+
const listItems = parseReferenceListItems(item.listReferenceItems);
|
|
68
|
+
const selectedIds = Array.isArray(item.referenceIds)
|
|
69
|
+
? item.referenceIds.map((value) => String(value))
|
|
70
|
+
: [];
|
|
71
|
+
const manualIds = parseManualIds(item.manualReferenceIds);
|
|
72
|
+
const uniqueIds = [...new Set([...jsonArrayIds, ...listItems, ...selectedIds, ...manualIds])];
|
|
73
|
+
if (uniqueIds.length === 0) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
return JSON.stringify(uniqueIds);
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../../../../nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeScalarMetafieldValue = serializeScalarMetafieldValue;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
function isEmpty(value) {
|
|
6
|
+
return value === undefined || value === null || value === '';
|
|
7
|
+
}
|
|
8
|
+
function asIsoDate(value) {
|
|
9
|
+
const date = new Date(value);
|
|
10
|
+
if (Number.isNaN(date.getTime())) {
|
|
11
|
+
throw new Error(`Invalid date value: ${value}`);
|
|
12
|
+
}
|
|
13
|
+
return date.toISOString().slice(0, 10);
|
|
14
|
+
}
|
|
15
|
+
function asIsoDateTime(value) {
|
|
16
|
+
const date = new Date(value);
|
|
17
|
+
if (Number.isNaN(date.getTime())) {
|
|
18
|
+
throw new Error(`Invalid date time value: ${value}`);
|
|
19
|
+
}
|
|
20
|
+
return date.toISOString();
|
|
21
|
+
}
|
|
22
|
+
function decodeHtmlEntities(value) {
|
|
23
|
+
return value
|
|
24
|
+
.replace(/ /gi, ' ')
|
|
25
|
+
.replace(/&/gi, '&')
|
|
26
|
+
.replace(/</gi, '<')
|
|
27
|
+
.replace(/>/gi, '>')
|
|
28
|
+
.replace(/"/gi, '"')
|
|
29
|
+
.replace(/'/gi, "'");
|
|
30
|
+
}
|
|
31
|
+
function htmlToTextLines(html) {
|
|
32
|
+
const withLineBreaks = html
|
|
33
|
+
.replace(/<br\s*\/?>/gi, '\n')
|
|
34
|
+
.replace(/<\/(p|div|li|h1|h2|h3|h4|h5|h6)>/gi, '\n');
|
|
35
|
+
const withoutTags = withLineBreaks.replace(/<[^>]*>/g, '');
|
|
36
|
+
return decodeHtmlEntities(withoutTags)
|
|
37
|
+
.split(/\r?\n/g)
|
|
38
|
+
.map((line) => line.trim())
|
|
39
|
+
.filter((line) => line.length > 0);
|
|
40
|
+
}
|
|
41
|
+
function toRichTextDocumentFromHtml(html) {
|
|
42
|
+
const lines = htmlToTextLines(html);
|
|
43
|
+
const children = (lines.length > 0 ? lines : ['']).map((line) => ({
|
|
44
|
+
type: 'paragraph',
|
|
45
|
+
children: [
|
|
46
|
+
{
|
|
47
|
+
type: 'text',
|
|
48
|
+
value: line,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
}));
|
|
52
|
+
return JSON.stringify({
|
|
53
|
+
type: 'root',
|
|
54
|
+
children,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function serializeScalarMetafieldValue(type, item) {
|
|
58
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.BOOLEAN_TYPES)) {
|
|
59
|
+
return String(Boolean(item.booleanValue));
|
|
60
|
+
}
|
|
61
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.INTEGER_TYPES)) {
|
|
62
|
+
if (isEmpty(item.integerValue)) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return String(Math.trunc(Number(item.integerValue)));
|
|
66
|
+
}
|
|
67
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.NUMBER_TYPES)) {
|
|
68
|
+
if (isEmpty(item.numberValue)) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return String(Number(item.numberValue));
|
|
72
|
+
}
|
|
73
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.TEXT_TYPES)) {
|
|
74
|
+
if (type === 'email' && !isEmpty(item.emailValue)) {
|
|
75
|
+
return String(item.emailValue);
|
|
76
|
+
}
|
|
77
|
+
if (isEmpty(item.textValue)) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
return String(item.textValue);
|
|
81
|
+
}
|
|
82
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.DATE_TYPES)) {
|
|
83
|
+
if (isEmpty(item.dateValue)) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return asIsoDate(String(item.dateValue));
|
|
87
|
+
}
|
|
88
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.DATE_TIME_TYPES)) {
|
|
89
|
+
if (isEmpty(item.dateTimeValue)) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
return asIsoDateTime(String(item.dateTimeValue));
|
|
93
|
+
}
|
|
94
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.JSON_TYPES)) {
|
|
95
|
+
if (type === 'rich_text_field' && !isEmpty(item.richTextHtml)) {
|
|
96
|
+
return toRichTextDocumentFromHtml(String(item.richTextHtml));
|
|
97
|
+
}
|
|
98
|
+
if (isEmpty(item.jsonValue)) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const text = String(item.jsonValue);
|
|
102
|
+
JSON.parse(text);
|
|
103
|
+
return text;
|
|
104
|
+
}
|
|
105
|
+
if (isEmpty(item.textValue)) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
return String(item.textValue);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../../../../../nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeStructuredMetafieldValue = serializeStructuredMetafieldValue;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
function isEmpty(value) {
|
|
6
|
+
return value === undefined || value === null || value === '';
|
|
7
|
+
}
|
|
8
|
+
function ensureNumber(value, fieldName) {
|
|
9
|
+
const parsed = Number(value);
|
|
10
|
+
if (Number.isNaN(parsed)) {
|
|
11
|
+
throw new Error(`"${fieldName}" must be a number`);
|
|
12
|
+
}
|
|
13
|
+
return parsed;
|
|
14
|
+
}
|
|
15
|
+
function serializeStructuredMetafieldValue(type, item) {
|
|
16
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.MONEY_TYPES)) {
|
|
17
|
+
if (isEmpty(item.moneyAmount) || isEmpty(item.moneyCurrencyCode)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return JSON.stringify({
|
|
21
|
+
amount: String(item.moneyAmount),
|
|
22
|
+
currency_code: String(item.moneyCurrencyCode).toUpperCase(),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.RATING_TYPES)) {
|
|
26
|
+
if (isEmpty(item.ratingValue) || isEmpty(item.ratingScaleMin) || isEmpty(item.ratingScaleMax)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return JSON.stringify({
|
|
30
|
+
value: String(item.ratingValue),
|
|
31
|
+
scale_min: String(item.ratingScaleMin),
|
|
32
|
+
scale_max: String(item.ratingScaleMax),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.DIMENSION_TYPES)) {
|
|
36
|
+
if (isEmpty(item.dimensionValue) || isEmpty(item.dimensionUnit)) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return JSON.stringify({
|
|
40
|
+
value: String(ensureNumber(item.dimensionValue, 'Dimension Value')),
|
|
41
|
+
unit: String(item.dimensionUnit),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.VOLUME_TYPES)) {
|
|
45
|
+
if (isEmpty(item.volumeValue) || isEmpty(item.volumeUnit)) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
return JSON.stringify({
|
|
49
|
+
value: String(ensureNumber(item.volumeValue, 'Volume Value')),
|
|
50
|
+
unit: String(item.volumeUnit),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
if ((0, constants_1.isTypeIn)(type, constants_1.WEIGHT_TYPES)) {
|
|
54
|
+
if (isEmpty(item.weightValue) || isEmpty(item.weightUnit)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return JSON.stringify({
|
|
58
|
+
value: String(ensureNumber(item.weightValue, 'Weight Value')),
|
|
59
|
+
unit: String(item.weightUnit),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=structured.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured.js","sourceRoot":"","sources":["../../../../../../nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.ts"],"names":[],"mappings":";;AAsBA,8EAqDC;AA1ED,2CAOqB;AAErB,SAAS,OAAO,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,SAAiB;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,IAAI,SAAS,oBAAoB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,iCAAiC,CAAC,IAAY,EAAE,IAAiB;IAChF,IAAI,IAAA,oBAAQ,EAAC,IAAI,EAAE,uBAAW,CAAC,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAChC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;SAC3D,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,oBAAQ,EAAC,IAAI,EAAE,wBAAY,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/F,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACtC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;SACtC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,oBAAQ,EAAC,IAAI,EAAE,2BAAe,CAAC,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YACnE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAChC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,oBAAQ,EAAC,IAAI,EAAE,wBAAY,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC7D,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC7B,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAA,oBAAQ,EAAC,IAAI,EAAE,wBAAY,CAAC,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC7D,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC7B,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IDataObject } from 'n8n-workflow';
|
|
2
|
+
export declare function buildMetafieldsSetPayload(nodeName: string, ownerId: string, collectionValue: unknown): IDataObject[];
|
|
3
|
+
export declare function buildMetafieldsDeletePayload(nodeName: string, ownerId: string, collectionValue: unknown): IDataObject[];
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildMetafieldsSetPayload = buildMetafieldsSetPayload;
|
|
4
|
+
exports.buildMetafieldsDeletePayload = buildMetafieldsDeletePayload;
|
|
5
|
+
const definitions_1 = require("./definitions");
|
|
6
|
+
const valueAdapters_1 = require("./valueAdapters");
|
|
7
|
+
function isObject(value) {
|
|
8
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
9
|
+
}
|
|
10
|
+
function asString(value) {
|
|
11
|
+
if (value === undefined || value === null) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const normalized = String(value).trim();
|
|
15
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
16
|
+
}
|
|
17
|
+
function parseItems(source) {
|
|
18
|
+
if (!isObject(source) || !Array.isArray(source.items)) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
return source.items.filter(isObject);
|
|
22
|
+
}
|
|
23
|
+
function resolveDefinition(item) {
|
|
24
|
+
const definitionEncoded = asString(item.definition);
|
|
25
|
+
if (!definitionEncoded) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return (0, definitions_1.decodeDefinitionOptionValue)(definitionEncoded);
|
|
29
|
+
}
|
|
30
|
+
function resolveType(item, definition) {
|
|
31
|
+
if (definition) {
|
|
32
|
+
return definition.type;
|
|
33
|
+
}
|
|
34
|
+
const typeFromInput = asString(item.metafieldType);
|
|
35
|
+
if (!typeFromInput) {
|
|
36
|
+
throw new Error('Metafield type is required');
|
|
37
|
+
}
|
|
38
|
+
return typeFromInput;
|
|
39
|
+
}
|
|
40
|
+
function buildMetafieldsSetPayload(nodeName, ownerId, collectionValue) {
|
|
41
|
+
const items = parseItems(collectionValue);
|
|
42
|
+
const payload = [];
|
|
43
|
+
for (const item of items) {
|
|
44
|
+
const definition = resolveDefinition(item);
|
|
45
|
+
if (!definition) {
|
|
46
|
+
throw new Error(`[${nodeName}] Metafield definition is required`);
|
|
47
|
+
}
|
|
48
|
+
const namespace = definition.namespace;
|
|
49
|
+
const key = definition.key;
|
|
50
|
+
if (!namespace || !key) {
|
|
51
|
+
throw new Error(`[${nodeName}] Metafield namespace and key are required`);
|
|
52
|
+
}
|
|
53
|
+
const type = resolveType(item, definition);
|
|
54
|
+
const value = (0, valueAdapters_1.serializeMetafieldValue)(type, item);
|
|
55
|
+
if (value === undefined) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
payload.push({
|
|
59
|
+
ownerId,
|
|
60
|
+
namespace,
|
|
61
|
+
key,
|
|
62
|
+
type,
|
|
63
|
+
value,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return payload;
|
|
67
|
+
}
|
|
68
|
+
function buildMetafieldsDeletePayload(nodeName, ownerId, collectionValue) {
|
|
69
|
+
const items = parseItems(collectionValue);
|
|
70
|
+
const payload = [];
|
|
71
|
+
for (const item of items) {
|
|
72
|
+
const definition = resolveDefinition(item);
|
|
73
|
+
if (!definition) {
|
|
74
|
+
throw new Error(`[${nodeName}] Metafield definition is required`);
|
|
75
|
+
}
|
|
76
|
+
const namespace = definition.namespace;
|
|
77
|
+
const key = definition.key;
|
|
78
|
+
if (!namespace || !key) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
payload.push({
|
|
82
|
+
ownerId,
|
|
83
|
+
namespace,
|
|
84
|
+
key,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return payload;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=valuePayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valuePayload.js","sourceRoot":"","sources":["../../../../../nodes/ShopifyCustom/shared/metafields/valuePayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { IDataObject } from 'n8n-workflow';
|
|
2
|
+
export type ShopifyOutputMode = 'simplified' | 'raw' | 'selectedFields';
|
|
3
|
+
export declare function mapOutputItems(mode: ShopifyOutputMode, simplifiedPayload: unknown, rawPayload: IDataObject, selectedFieldsRaw: string): IDataObject[];
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapOutputItems = mapOutputItems;
|
|
4
|
+
function isObject(value) {
|
|
5
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function getByPath(source, path) {
|
|
8
|
+
if (!path) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const chunks = path.split('.').filter((chunk) => chunk.length > 0);
|
|
12
|
+
let current = source;
|
|
13
|
+
for (const chunk of chunks) {
|
|
14
|
+
if (!isObject(current) && !Array.isArray(current)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(current)) {
|
|
18
|
+
const index = Number(chunk);
|
|
19
|
+
if (Number.isNaN(index)) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
current = current[index];
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
current = current[chunk];
|
|
26
|
+
}
|
|
27
|
+
return current;
|
|
28
|
+
}
|
|
29
|
+
function setByPath(target, path, value) {
|
|
30
|
+
const chunks = path.split('.').filter((chunk) => chunk.length > 0);
|
|
31
|
+
if (chunks.length === 0) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
let current = target;
|
|
35
|
+
for (let index = 0; index < chunks.length - 1; index += 1) {
|
|
36
|
+
const chunk = chunks[index];
|
|
37
|
+
if (!isObject(current[chunk])) {
|
|
38
|
+
current[chunk] = {};
|
|
39
|
+
}
|
|
40
|
+
current = current[chunk];
|
|
41
|
+
}
|
|
42
|
+
current[chunks[chunks.length - 1]] = value;
|
|
43
|
+
}
|
|
44
|
+
function normalizeToArray(payload) {
|
|
45
|
+
if (Array.isArray(payload)) {
|
|
46
|
+
return payload.filter(isObject);
|
|
47
|
+
}
|
|
48
|
+
if (isObject(payload)) {
|
|
49
|
+
return [payload];
|
|
50
|
+
}
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
function toSelectedFields(items, selectedFieldsRaw) {
|
|
54
|
+
const fields = selectedFieldsRaw
|
|
55
|
+
.split(',')
|
|
56
|
+
.map((field) => field.trim())
|
|
57
|
+
.filter((field) => field.length > 0);
|
|
58
|
+
if (fields.length === 0) {
|
|
59
|
+
return items;
|
|
60
|
+
}
|
|
61
|
+
return items.map((item) => {
|
|
62
|
+
const selectedItem = {};
|
|
63
|
+
for (const field of fields) {
|
|
64
|
+
const value = getByPath(item, field);
|
|
65
|
+
if (value !== undefined) {
|
|
66
|
+
setByPath(selectedItem, field, value);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return selectedItem;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function mapOutputItems(mode, simplifiedPayload, rawPayload, selectedFieldsRaw) {
|
|
73
|
+
if (mode === 'raw') {
|
|
74
|
+
return [rawPayload];
|
|
75
|
+
}
|
|
76
|
+
const simplifiedItems = normalizeToArray(simplifiedPayload);
|
|
77
|
+
if (mode === 'selectedFields') {
|
|
78
|
+
return toSelectedFields(simplifiedItems, selectedFieldsRaw);
|
|
79
|
+
}
|
|
80
|
+
return simplifiedItems.length > 0 ? simplifiedItems : [rawPayload];
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=outputMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputMapper.js","sourceRoot":"","sources":["../../../../../nodes/ShopifyCustom/shared/output/outputMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplateSuffixOptions = getTemplateSuffixOptions;
|
|
4
|
+
const client_1 = require("../graphql/client");
|
|
5
|
+
const THEME_TEMPLATE_FILES_QUERY = `
|
|
6
|
+
query ThemeTemplateFiles($themeFirst: Int!, $filesFirst: Int!) {
|
|
7
|
+
themes(first: $themeFirst, roles: [MAIN]) {
|
|
8
|
+
nodes {
|
|
9
|
+
id
|
|
10
|
+
name
|
|
11
|
+
files(first: $filesFirst) {
|
|
12
|
+
nodes {
|
|
13
|
+
filename
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
const CACHE_TTL_MS = 2 * 60 * 1000;
|
|
21
|
+
const templateSuffixCache = new Map();
|
|
22
|
+
function escapeRegex(value) {
|
|
23
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
24
|
+
}
|
|
25
|
+
function toSuffixLabel(value) {
|
|
26
|
+
return value
|
|
27
|
+
.split(/[._-]/g)
|
|
28
|
+
.filter((chunk) => chunk.length > 0)
|
|
29
|
+
.map((chunk) => chunk[0].toUpperCase() + chunk.slice(1))
|
|
30
|
+
.join(' ');
|
|
31
|
+
}
|
|
32
|
+
function parseTemplateSuffix(filename, templateName) {
|
|
33
|
+
var _a;
|
|
34
|
+
const matcher = new RegExp(`^templates/${escapeRegex(templateName)}(?:\\.(.+))?\\.json$`);
|
|
35
|
+
const match = filename.match(matcher);
|
|
36
|
+
if (!match) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
return (_a = match[1]) !== null && _a !== void 0 ? _a : '';
|
|
40
|
+
}
|
|
41
|
+
async function getTemplateSuffixOptions(context, templateName) {
|
|
42
|
+
var _a, _b, _c, _d, _e, _f;
|
|
43
|
+
const cacheKey = templateName;
|
|
44
|
+
const cached = templateSuffixCache.get(cacheKey);
|
|
45
|
+
if (cached && cached.expiresAt > Date.now()) {
|
|
46
|
+
return cached.data;
|
|
47
|
+
}
|
|
48
|
+
const response = await (0, client_1.executeShopifyGraphql)(context, THEME_TEMPLATE_FILES_QUERY, {
|
|
49
|
+
themeFirst: 1,
|
|
50
|
+
filesFirst: 250,
|
|
51
|
+
}, 0);
|
|
52
|
+
(0, client_1.assertNoGraphQLErrors)(context, response, 0);
|
|
53
|
+
const theme = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.themes) === null || _b === void 0 ? void 0 : _b.nodes) === null || _c === void 0 ? void 0 : _c[0];
|
|
54
|
+
const files = (_e = (_d = theme === null || theme === void 0 ? void 0 : theme.files) === null || _d === void 0 ? void 0 : _d.nodes) !== null && _e !== void 0 ? _e : [];
|
|
55
|
+
const suffixSet = new Set();
|
|
56
|
+
for (const file of files) {
|
|
57
|
+
const suffix = parseTemplateSuffix(String((_f = file.filename) !== null && _f !== void 0 ? _f : ''), templateName);
|
|
58
|
+
if (suffix !== undefined) {
|
|
59
|
+
suffixSet.add(suffix);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const dynamicOptions = Array.from(suffixSet)
|
|
63
|
+
.filter((suffix) => suffix.length > 0)
|
|
64
|
+
.sort((a, b) => a.localeCompare(b))
|
|
65
|
+
.map((suffix) => ({
|
|
66
|
+
name: toSuffixLabel(suffix),
|
|
67
|
+
value: suffix,
|
|
68
|
+
}));
|
|
69
|
+
const options = [
|
|
70
|
+
{
|
|
71
|
+
name: 'Default',
|
|
72
|
+
value: '',
|
|
73
|
+
description: 'Use the default template',
|
|
74
|
+
},
|
|
75
|
+
...dynamicOptions,
|
|
76
|
+
];
|
|
77
|
+
templateSuffixCache.set(cacheKey, {
|
|
78
|
+
expiresAt: Date.now() + CACHE_TTL_MS,
|
|
79
|
+
data: options,
|
|
80
|
+
});
|
|
81
|
+
return options;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=templateSuffixes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateSuffixes.js","sourceRoot":"","sources":["../../../../../nodes/ShopifyCustom/shared/themes/templateSuffixes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg width="150" height="170" viewBox="0 0 150 170" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_45_2)">
|
|
3
|
+
<path d="M131.5 32.8C131.4 31.9 130.6 31.5 130 31.5C129.4 31.5 116.3 30.5 116.3 30.5C116.3 30.5 107.2 21.4 106.1 20.5C105.1 19.5 103.2 19.8 102.4 20C102.3 20 100.4 20.6 97.3 21.6C94.2 12.7 88.9 4.60001 79.4 4.60001H78.5C75.9 1.20001 72.5 -0.399994 69.7 -0.399994C47.7 -0.399994 37.1 27.1 33.8 41.1C25.2 43.8 19.1 45.6 18.4 45.9C13.6 47.4 13.5 47.5 12.9 52C12.4 55.4 -0.0999756 152.1 -0.0999756 152.1L97.2 170.3L150 158.9C150.1 158.7 131.6 33.7 131.5 32.8ZM91.9 23C89.5 23.7 86.6 24.6 83.7 25.6V23.8C83.7 18.4 83 14 81.7 10.5C86.7 11.1 89.8 16.6 91.9 23ZM75.6 11.6C76.9 15 77.8 19.8 77.8 26.4V27.4C72.4 29.1 66.7 30.8 60.8 32.7C64.1 20.1 70.4 13.9 75.6 11.6ZM69.2 5.39999C70.2 5.39999 71.2 5.79999 72 6.39999C64.9 9.69999 57.4 18 54.3 34.8C49.6 36.3 45.1 37.6 40.8 39C44.4 26.2 53.4 5.39999 69.2 5.39999Z" fill="white"/>
|
|
4
|
+
<path d="M130 31.3C129.4 31.3 116.3 30.3 116.3 30.3C116.3 30.3 107.2 21.2 106.1 20.3C105.7 19.9 105.2 19.7 104.8 19.7L97.5 170.3L150.3 158.9C150.3 158.9 131.8 33.7 131.7 32.8C131.3 31.9 130.6 31.5 130 31.3Z" fill="#8E3E3F"/>
|
|
5
|
+
<path d="M79.4 60.5L73 79.8C73 79.8 67.2 76.7 60.3 76.7C50 76.7 49.5 83.2 49.5 84.8C49.5 93.6 72.5 97 72.5 117.7C72.5 134 62.2 144.5 48.3 144.5C31.5 144.5 23.1 134.1 23.1 134.1L27.6 119.3C27.6 119.3 36.4 126.9 43.8 126.9C48.7 126.9 50.7 123.1 50.7 120.3C50.7 108.8 31.9 108.3 31.9 89.3C31.9 73.4 43.3 58 66.4 58C75 57.9 79.4 60.5 79.4 60.5Z" fill="#8E3E3F"/>
|
|
6
|
+
</g>
|
|
7
|
+
<defs>
|
|
8
|
+
<clipPath id="clip0_45_2">
|
|
9
|
+
<rect width="150" height="170" fill="white"/>
|
|
10
|
+
</clipPath>
|
|
11
|
+
</defs>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg width="150" height="170" viewBox="0 0 150 170" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_28_2)">
|
|
3
|
+
<path d="M131.5 32.8C131.4 31.9 130.6 31.5 130 31.5C129.4 31.5 116.3 30.5 116.3 30.5C116.3 30.5 107.2 21.4 106.1 20.5C105.1 19.5 103.2 19.8 102.4 20C102.3 20 100.4 20.6 97.3 21.6C94.2 12.7 88.9 4.60001 79.4 4.60001H78.5C75.9 1.20001 72.5 -0.399994 69.7 -0.399994C47.7 -0.399994 37.1 27.1 33.8 41.1C25.2 43.8 19.1 45.6 18.4 45.9C13.6 47.4 13.5 47.5 12.9 52C12.4 55.4 -0.0999756 152.1 -0.0999756 152.1L97.2 170.3L150 158.9C150.1 158.7 131.6 33.7 131.5 32.8ZM91.9 23C89.5 23.7 86.6 24.6 83.7 25.6V23.8C83.7 18.4 83 14 81.7 10.5C86.7 11.1 89.8 16.6 91.9 23ZM75.6 11.6C76.9 15 77.8 19.8 77.8 26.4V27.4C72.4 29.1 66.7 30.8 60.8 32.7C64.1 20.1 70.4 13.9 75.6 11.6ZM69.2 5.39999C70.2 5.39999 71.2 5.79999 72 6.39999C64.9 9.69999 57.4 18 54.3 34.8C49.6 36.3 45.1 37.6 40.8 39C44.4 26.2 53.4 5.39999 69.2 5.39999Z" fill="#BF4749"/>
|
|
4
|
+
<path d="M130 31.3C129.4 31.3 116.3 30.3 116.3 30.3C116.3 30.3 107.2 21.2 106.1 20.3C105.7 19.9 105.2 19.7 104.8 19.7L97.5 170.3L150.3 158.9C150.3 158.9 131.8 33.7 131.7 32.8C131.3 31.9 130.6 31.5 130 31.3Z" fill="#8E3E3F"/>
|
|
5
|
+
<path d="M79.4 60.5L73 79.8C73 79.8 67.2 76.7 60.3 76.7C50 76.7 49.5 83.2 49.5 84.8C49.5 93.6 72.5 97 72.5 117.7C72.5 134 62.2 144.5 48.3 144.5C31.5 144.5 23.1 134.1 23.1 134.1L27.6 119.3C27.6 119.3 36.4 126.9 43.8 126.9C48.7 126.9 50.7 123.1 50.7 120.3C50.7 108.8 31.9 108.3 31.9 89.3C31.9 73.4 43.3 58 66.4 58C75 57.9 79.4 60.5 79.4 60.5Z" fill="white"/>
|
|
6
|
+
</g>
|
|
7
|
+
<defs>
|
|
8
|
+
<clipPath id="clip0_28_2">
|
|
9
|
+
<rect width="150" height="170" fill="white"/>
|
|
10
|
+
</clipPath>
|
|
11
|
+
</defs>
|
|
12
|
+
</svg>
|