n8n-nodes-commercetools 1.0.14 → 1.0.16
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 -19
- package/README.md +69 -14
- package/dist/icons/github.dark.svg +3 -3
- package/dist/icons/github.svg +3 -3
- package/dist/nodes/Commercetools/generated/properties.js +1278 -411
- package/dist/nodes/Commercetools/generated/properties.js.map +1 -1
- package/dist/nodes/Commercetools/generated/subscription.properties.d.ts +1 -1
- package/dist/nodes/Commercetools/generated/subscription.properties.js +287 -287
- package/dist/nodes/Commercetools/generated/subscription.properties.js.map +1 -1
- package/dist/nodes/Commercetools/lambda/awsHandler.js +108 -0
- package/dist/nodes/Commercetools/lambda/gcpHandler.js +94 -0
- package/dist/package.json +17 -11
- package/package.json +17 -11
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.d.ts +0 -9
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.js +0 -230
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.js.map +0 -1
- package/dist/nodes/Commercetools/Commercetools.node.d.ts +0 -5
- package/dist/nodes/Commercetools/Commercetools.node.js +0 -412
- package/dist/nodes/Commercetools/Commercetools.node.js.map +0 -1
- package/dist/nodes/Commercetools/Commercetools.node.json +0 -18
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.d.ts +0 -22
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js +0 -69
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js.map +0 -1
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.json +0 -21
- package/dist/nodes/Commercetools/generated/ctp-event-registry.json +0 -1513
- package/dist/nodes/Commercetools/generated/operations.json +0 -40468
- package/dist/nodes/Commercetools/utils/awsInfra.utils.d.ts +0 -19
- package/dist/nodes/Commercetools/utils/awsInfra.utils.js +0 -375
- package/dist/nodes/Commercetools/utils/awsInfra.utils.js.map +0 -1
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.d.ts +0 -20
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.js +0 -330
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.js.map +0 -1
- package/dist/nodes/Commercetools/utils/subscription.utils.d.ts +0 -15
- package/dist/nodes/Commercetools/utils/subscription.utils.js +0 -109
- package/dist/nodes/Commercetools/utils/subscription.utils.js.map +0 -1
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.d.ts +0 -8
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.js +0 -235
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.js.map +0 -1
- package/dist/scripts/parseCollection.d.ts +0 -34
- package/dist/scripts/parseCollection.js +0 -275
- package/dist/scripts/parseCollection.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/LICENSE.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
Copyright 2025 jjtech-digital
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
-
the Software without restriction, including without limitation the rights to
|
|
6
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
-
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
-
so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in all
|
|
11
|
-
copies or substantial portions of the Software.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
-
SOFTWARE.
|
|
1
|
+
Copyright 2025 jjtech-digital
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -269,16 +269,18 @@ A hash of `{ events, hasAWS, hasGCP }` is stored in workflow static data. When `
|
|
|
269
269
|
When `awsAccessKeyId` and `awsSecretAccessKey` are present in the credential, the node automatically provisions:
|
|
270
270
|
|
|
271
271
|
- SQS queue (14-day retention, long polling)
|
|
272
|
-
- Lambda function (Node.js) with `WEBHOOK_URL` env var
|
|
272
|
+
- Lambda function (Node.js 22.x) with `WEBHOOK_URL` env var
|
|
273
273
|
- IAM role with SQS receive/delete and CloudWatch Logs policies
|
|
274
274
|
- Event source mapping (SQS → Lambda, batch size 10)
|
|
275
275
|
|
|
276
276
|
The Lambda forwards each SQS message to the n8n webhook URL as a POST request. All resources are deleted when the trigger is deactivated or its configuration changes.
|
|
277
277
|
|
|
278
|
+
Uses **AWS SDK for JavaScript v3** (`@aws-sdk/client-sqs`, `@aws-sdk/client-lambda`, `@aws-sdk/client-iam`, `@aws-sdk/client-sts`, `@aws-sdk/client-cloudwatch-logs`).
|
|
279
|
+
|
|
278
280
|
**Requirements:**
|
|
279
281
|
|
|
280
282
|
- Publicly reachable n8n webhook URL
|
|
281
|
-
- AWS credentials with permissions for: SQS, Lambda, IAM, CloudWatch Logs
|
|
283
|
+
- AWS credentials with permissions for: SQS, Lambda, IAM, STS, CloudWatch Logs
|
|
282
284
|
|
|
283
285
|
> ⚠️ AWS costs may apply.
|
|
284
286
|
|
|
@@ -356,7 +358,7 @@ npm run dev
|
|
|
356
358
|
# Regenerate operations from the latest Postman collection + rebuild event registry
|
|
357
359
|
npm run generate
|
|
358
360
|
|
|
359
|
-
# Build
|
|
361
|
+
# Build (cross-platform — also copies lambda handlers to dist/ via scripts/copyLambda.js)
|
|
360
362
|
npm run build
|
|
361
363
|
|
|
362
364
|
# Build and watch
|
|
@@ -365,6 +367,9 @@ npm run build:watch
|
|
|
365
367
|
# Lint
|
|
366
368
|
npm run lint
|
|
367
369
|
npm run lint:fix
|
|
370
|
+
|
|
371
|
+
# Run tests
|
|
372
|
+
npm test
|
|
368
373
|
```
|
|
369
374
|
|
|
370
375
|
### Code generation pipeline
|
|
@@ -372,7 +377,13 @@ npm run lint:fix
|
|
|
372
377
|
```
|
|
373
378
|
scripts/generate.ts (entry point: npm run generate)
|
|
374
379
|
│
|
|
375
|
-
├── parseCollection.ts
|
|
380
|
+
├── parseCollection.ts (thin orchestrator)
|
|
381
|
+
│ ├── collection/postmanTypes.ts PostmanItem, PostmanCollection interfaces
|
|
382
|
+
│ ├── collection/types.ts BodyField, ParsedOperation interfaces
|
|
383
|
+
│ ├── collection/helpers.ts slugify, formatLabel, isLocalizedObject
|
|
384
|
+
│ ├── collection/fieldExtractors.ts extractFields, extractActionBodyFields
|
|
385
|
+
│ ├── collection/findFolder.ts findFolder (module-level cache — PERF-5)
|
|
386
|
+
│ └── collection/walkItems.ts walkItems (top-level exported function)
|
|
376
387
|
│ Downloads Postman collection.json → ParsedOperation[]
|
|
377
388
|
│ Detects per operation:
|
|
378
389
|
│ isSearch POST .../search
|
|
@@ -384,7 +395,13 @@ scripts/generate.ts (entry point: npm run generate)
|
|
|
384
395
|
│ bodyFields extracted from Postman body.raw JSON
|
|
385
396
|
│ actionBodyFields fields from inside actions[0]
|
|
386
397
|
│
|
|
387
|
-
├── generateProperties.ts
|
|
398
|
+
├── generateProperties.ts (thin orchestrator — PERF-4: Map index built once)
|
|
399
|
+
│ ├── properties/helpers.ts Constants + shared property builders
|
|
400
|
+
│ ├── properties/resourceAndOperation.ts Resource + Operation dropdowns
|
|
401
|
+
│ ├── properties/idFields.ts ID / Key / Container / path param fields
|
|
402
|
+
│ ├── properties/versionAndActions.ts Actions (JSON) + Actions (UI) fixedCollection
|
|
403
|
+
│ ├── properties/bodyFields.ts Create / Misc-POST / Search body fields
|
|
404
|
+
│ └── properties/imageAndQuery.ts Image upload fields + query-param Filters
|
|
388
405
|
│ ParsedOperation[] → INodeProperties[]
|
|
389
406
|
│ Emits in order:
|
|
390
407
|
│ 1. Resource dropdown
|
|
@@ -408,7 +425,11 @@ scripts/generate.ts (entry point: npm run generate)
|
|
|
408
425
|
│ Extracts: *MessagePayload type literals,
|
|
409
426
|
│ MessageSubscriptionResourceTypeId values,
|
|
410
427
|
│ ChangeSubscriptionResourceTypeId values
|
|
411
|
-
│
|
|
428
|
+
│ Filters to allowedResources: [product, customer, cart, order, business-unit,
|
|
429
|
+
│ category, channel, associate-role, inventory-entry, review, shopping-list,
|
|
430
|
+
│ type, payment, quote, quote-request, staged-quote, approval-rule,
|
|
431
|
+
│ approval-flow, standalone-price, store, product-tailoring,
|
|
432
|
+
│ customer-group, product-selection]
|
|
412
433
|
│ → nodes/Commercetools/generated/ctp-event-registry.json
|
|
413
434
|
│
|
|
414
435
|
└── generateSubscriptionProperties.ts
|
|
@@ -421,6 +442,37 @@ scripts/generate.ts (entry point: npm run generate)
|
|
|
421
442
|
|
|
422
443
|
Generated files are committed to the repository. The built node works without running `generate` unless the Postman collection or SDK has changed.
|
|
423
444
|
|
|
445
|
+
### Node source layout
|
|
446
|
+
|
|
447
|
+
```
|
|
448
|
+
nodes/Commercetools/
|
|
449
|
+
├── Commercetools.node.ts Thin action-node orchestrator (~175 lines)
|
|
450
|
+
├── CommercetoolsTrigger.node.ts Webhook trigger — receives and routes events
|
|
451
|
+
├── generated/ Auto-generated (do not edit manually)
|
|
452
|
+
│ ├── properties.ts
|
|
453
|
+
│ ├── operations.json
|
|
454
|
+
│ ├── ctp-event-registry.json
|
|
455
|
+
│ └── subscription.properties.ts
|
|
456
|
+
├── lambda/
|
|
457
|
+
│ ├── awsHandler.js Lambda: SQS → n8n webhook forwarder
|
|
458
|
+
│ └── gcpHandler.js Cloud Function: Pub/Sub → n8n webhook forwarder
|
|
459
|
+
└── utils/
|
|
460
|
+
├── urlBuilder.utils.ts URL construction + path-param substitution
|
|
461
|
+
├── bodyBuilder.utils.ts Request body assembly for all operation types
|
|
462
|
+
├── imageUpload.utils.ts SSRF-guarded image download + CT binary POST
|
|
463
|
+
├── subscription.utils.ts Subscription CRUD + body building + event routing
|
|
464
|
+
├── webhookMethods.utils.ts Webhook lifecycle: checkExists / create / delete
|
|
465
|
+
├── cloudVerification.utils.ts AWS + GCP infrastructure existence checks
|
|
466
|
+
├── awsInfra.utils.ts AWS SQS / Lambda / IAM provisioning (SDK v3)
|
|
467
|
+
├── awsDelete.utils.ts AWS infrastructure teardown (SDK v3)
|
|
468
|
+
├── gcpInfra.utils.ts GCP Pub/Sub / Cloud Functions provisioning
|
|
469
|
+
└── gcpDelete.utils.ts GCP infrastructure teardown
|
|
470
|
+
|
|
471
|
+
scripts/
|
|
472
|
+
├── copyLambda.js Cross-platform postbuild: copies lambda/*.js → dist/
|
|
473
|
+
└── ...
|
|
474
|
+
```
|
|
475
|
+
|
|
424
476
|
---
|
|
425
477
|
|
|
426
478
|
## Auto-Update Pipeline
|
|
@@ -450,6 +502,13 @@ New API endpoints and fields appear in the node automatically without manual dev
|
|
|
450
502
|
| Business Unit Search: `Search Not Ready` | Business Unit Search must be activated on your project — call `PUT /{projectKey}/business-units/search/indexing-status` with `{ "activated": true }` then wait for indexing to complete |
|
|
451
503
|
| GCP: private key / PEM errors | Use the **Service Account JSON** field; paste the entire `.json` key file, not individual fields |
|
|
452
504
|
| GCP: deploy timeout on first activation | GCP API enablement takes time on cold projects — retry after a minute |
|
|
505
|
+
| GCP: `gcpRegion` missing error on activation | Open the credential and select a GCP Region — the field is required for Cloud Functions deployment |
|
|
506
|
+
| AWS: wrong queue ARN in GovCloud / China regions | ARN is fetched from `GetQueueAttributes` (not constructed manually) |
|
|
507
|
+
| AWS: `credentials are invalid` or `permissions denied` | Verify the IAM user has SQS, Lambda, IAM, STS, and CloudWatch Logs permissions |
|
|
508
|
+
| Build: `The syntax of the command is incorrect` on Windows | Ensure you are on v1.0.15+ — the postbuild script is now cross-platform (`scripts/copyLambda.js`) |
|
|
509
|
+
| Trigger: malformed webhook payload crashes execution | Update to v1.0.14 — invalid JSON payloads are now silently dropped instead of crashing the context |
|
|
510
|
+
| Subscription: `subscriptionId is empty` error | The subscription ID was not persisted in static data — deactivate and reactivate the workflow |
|
|
511
|
+
| Update operation: zero value (`0`) silently dropped | Update to v1.0.14 — `quantity: 0` and `centAmount: 0` are now sent correctly |
|
|
453
512
|
| Node not visible in n8n | Run `npm install` then `npm run dev` |
|
|
454
513
|
| Trigger: `"A message with the name 'PaymentMethodCreated' is unknown for the TypeId 'payment'"` | CT Subscriptions API does not support `payment-method` as a resourceTypeId. Use CT API Extensions or a schedule-based polling trigger instead. |
|
|
455
514
|
|
|
@@ -459,14 +518,10 @@ New API endpoints and fields appear in the node automatically without manual dev
|
|
|
459
518
|
|
|
460
519
|
| Version | Changes |
|
|
461
520
|
| ------- | ----------------------------------------------------------------------------------------------------------------------------|
|
|
462
|
-
| v1.0.
|
|
463
|
-
| v1.0.
|
|
464
|
-
| v1.0.
|
|
465
|
-
| v1.0.
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
521
|
+
| v1.0.16 | Readme Update |
|
|
522
|
+
| v1.0.15 | Migrated AWS infrastructure to SDK v3 (`@aws-sdk/client-*`); cross-platform postbuild script (`scripts/copyLambda.js`) fixes Windows build; lambda handlers now correctly copied to `dist/`; CI workflow adds test step and npm cache; ESLint allows `console.warn`/`console.error` for infrastructure logging |
|
|
523
|
+
| v1.0.14 | Added Product Discounts, Product Types, Product Projections, Tax Categories, Attribute Groups, API Clients, Recurring Orders, Recurrence Policies, Discount Groups, and In-Store Endpoints |
|
|
524
|
+
| v1.0.13 | Added Standalone Prices, Stores, Product Tailoring, Customer Groups, Product Selections, Cart Discounts, and Discount Codes |
|
|
470
525
|
---
|
|
471
526
|
|
|
472
527
|
## License
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="white"/>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="white"/>
|
|
3
|
+
</svg>
|
package/dist/icons/github.svg
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="#24292F"/>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0165 0C8.94791 0 0 9.01388 0 20.1653C0 29.0792 5.73324 36.6246 13.6868 39.2952C14.6812 39.496 15.0454 38.8613 15.0454 38.3274C15.0454 37.8599 15.0126 36.2575 15.0126 34.5879C9.4445 35.79 8.28498 32.1841 8.28498 32.1841C7.39015 29.847 6.06429 29.2463 6.06429 29.2463C4.24185 28.011 6.19704 28.011 6.19704 28.011C8.21861 28.1446 9.27938 30.081 9.27938 30.081C11.0686 33.1522 13.9518 32.2844 15.1118 31.7502C15.2773 30.4481 15.8079 29.5467 16.3713 29.046C11.9303 28.5785 7.25781 26.8425 7.25781 19.0967C7.25781 16.8932 8.05267 15.0905 9.31216 13.6884C9.11344 13.1877 8.41732 11.1174 9.51128 8.34644C9.51128 8.34644 11.2014 7.81217 15.0122 10.4164C16.6438 9.97495 18.3263 9.7504 20.0165 9.74851C21.7067 9.74851 23.4295 9.98246 25.0205 10.4164C28.8317 7.81217 30.5218 8.34644 30.5218 8.34644C31.6158 11.1174 30.9192 13.1877 30.7205 13.6884C32.0132 15.0905 32.7753 16.8932 32.7753 19.0967C32.7753 26.8425 28.1028 28.5449 23.6287 29.046C24.358 29.6802 24.9873 30.882 24.9873 32.7851C24.9873 35.4893 24.9545 37.6596 24.9545 38.327C24.9545 38.8613 25.3192 39.496 26.3132 39.2956C34.2667 36.6242 39.9999 29.0792 39.9999 20.1653C40.0327 9.01388 31.052 0 20.0165 0Z" fill="#24292F"/>
|
|
3
|
+
</svg>
|