@cloudcart/dev-mcp 0.2.13 → 0.2.15

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/data/admin.json CHANGED
@@ -7061,6 +7061,68 @@
7061
7061
  "isDeprecated": false,
7062
7062
  "deprecationReason": null
7063
7063
  },
7064
+ {
7065
+ "name": "paymentProviders",
7066
+ "description": "List the payment providers available to the current site, each with its\nreal activation state (PaymentProviderConfiguration.active).\n\nUse this — not applications(filter: { group: \"payment\" }) — to determine\nwhether a payment method is actually activated for checkout. The\nApplication.isActive flag reads a different store that is not kept in sync\nwith payment activation.",
7067
+ "args": [
7068
+ {
7069
+ "name": "filter",
7070
+ "description": "Filters for narrowing results.",
7071
+ "type": {
7072
+ "kind": "INPUT_OBJECT",
7073
+ "name": "PaymentProviderFilterInput",
7074
+ "ofType": null
7075
+ },
7076
+ "defaultValue": null
7077
+ }
7078
+ ],
7079
+ "type": {
7080
+ "kind": "NON_NULL",
7081
+ "name": null,
7082
+ "ofType": {
7083
+ "kind": "LIST",
7084
+ "name": null,
7085
+ "ofType": {
7086
+ "kind": "NON_NULL",
7087
+ "name": null,
7088
+ "ofType": {
7089
+ "kind": "OBJECT",
7090
+ "name": "PaymentProvider",
7091
+ "ofType": null
7092
+ }
7093
+ }
7094
+ }
7095
+ },
7096
+ "isDeprecated": false,
7097
+ "deprecationReason": null
7098
+ },
7099
+ {
7100
+ "name": "paymentProvider",
7101
+ "description": "Find a single payment provider by key (e.g. cod).",
7102
+ "args": [
7103
+ {
7104
+ "name": "key",
7105
+ "description": "The payment provider key.",
7106
+ "type": {
7107
+ "kind": "NON_NULL",
7108
+ "name": null,
7109
+ "ofType": {
7110
+ "kind": "SCALAR",
7111
+ "name": "String",
7112
+ "ofType": null
7113
+ }
7114
+ },
7115
+ "defaultValue": null
7116
+ }
7117
+ ],
7118
+ "type": {
7119
+ "kind": "OBJECT",
7120
+ "name": "PaymentProvider",
7121
+ "ofType": null
7122
+ },
7123
+ "isDeprecated": false,
7124
+ "deprecationReason": null
7125
+ },
7064
7126
  {
7065
7127
  "name": "productReviewSettings",
7066
7128
  "description": "Get Product Review app settings. Returns null if the app is not installed.",
@@ -17803,6 +17865,128 @@
17803
17865
  "isDeprecated": false,
17804
17866
  "deprecationReason": null
17805
17867
  },
17868
+ {
17869
+ "name": "productsBulkAttachBrandModels",
17870
+ "description": "Attach additional brand-models to N products WITHOUT touching the rest. Use when the merchant wants to ADD a model to existing pinnings — e.g. 'also tag these tires as Audi A4' without removing the BMW M3 pinning they already have. Existing brand-model attachments are preserved; the supplied ids are added on top. Same validation as `productsBulkSetBrandModels` — invalid ids surface in `bulkOperationStatus.extra.invalidBrandModelIds`, all-invalid fails with `not_found`.",
17871
+ "args": [
17872
+ {
17873
+ "name": "ids",
17874
+ "description": "Product IDs.",
17875
+ "type": {
17876
+ "kind": "NON_NULL",
17877
+ "name": null,
17878
+ "ofType": {
17879
+ "kind": "LIST",
17880
+ "name": null,
17881
+ "ofType": {
17882
+ "kind": "NON_NULL",
17883
+ "name": null,
17884
+ "ofType": {
17885
+ "kind": "SCALAR",
17886
+ "name": "ID",
17887
+ "ofType": null
17888
+ }
17889
+ }
17890
+ }
17891
+ },
17892
+ "defaultValue": null
17893
+ },
17894
+ {
17895
+ "name": "brandModelIds",
17896
+ "description": "Brand-model ROW IDs (the `BrandModelItem.id` field) to ADD. Resolve via `brand(id) { models { id } }` or `brandModels(brandId)`. Ids already attached on a product are no-ops for that product.",
17897
+ "type": {
17898
+ "kind": "NON_NULL",
17899
+ "name": null,
17900
+ "ofType": {
17901
+ "kind": "LIST",
17902
+ "name": null,
17903
+ "ofType": {
17904
+ "kind": "NON_NULL",
17905
+ "name": null,
17906
+ "ofType": {
17907
+ "kind": "SCALAR",
17908
+ "name": "ID",
17909
+ "ofType": null
17910
+ }
17911
+ }
17912
+ }
17913
+ },
17914
+ "defaultValue": null
17915
+ }
17916
+ ],
17917
+ "type": {
17918
+ "kind": "NON_NULL",
17919
+ "name": null,
17920
+ "ofType": {
17921
+ "kind": "OBJECT",
17922
+ "name": "BulkOperationJob",
17923
+ "ofType": null
17924
+ }
17925
+ },
17926
+ "isDeprecated": false,
17927
+ "deprecationReason": null
17928
+ },
17929
+ {
17930
+ "name": "productsBulkDetachBrandModels",
17931
+ "description": "Detach specific brand-models from N products WITHOUT touching the rest. Use when the merchant wants to REMOVE one pinning while keeping others — e.g. 'untag these tires from Audi A4' but leave BMW M3 alone. Only the supplied ids are removed; ids not currently attached are no-ops for that product. Same validation as `productsBulkSetBrandModels`.",
17932
+ "args": [
17933
+ {
17934
+ "name": "ids",
17935
+ "description": "Product IDs.",
17936
+ "type": {
17937
+ "kind": "NON_NULL",
17938
+ "name": null,
17939
+ "ofType": {
17940
+ "kind": "LIST",
17941
+ "name": null,
17942
+ "ofType": {
17943
+ "kind": "NON_NULL",
17944
+ "name": null,
17945
+ "ofType": {
17946
+ "kind": "SCALAR",
17947
+ "name": "ID",
17948
+ "ofType": null
17949
+ }
17950
+ }
17951
+ }
17952
+ },
17953
+ "defaultValue": null
17954
+ },
17955
+ {
17956
+ "name": "brandModelIds",
17957
+ "description": "Brand-model ROW IDs to REMOVE. Resolve via `product(id) { brandModels { id } }` to see what's currently attached.",
17958
+ "type": {
17959
+ "kind": "NON_NULL",
17960
+ "name": null,
17961
+ "ofType": {
17962
+ "kind": "LIST",
17963
+ "name": null,
17964
+ "ofType": {
17965
+ "kind": "NON_NULL",
17966
+ "name": null,
17967
+ "ofType": {
17968
+ "kind": "SCALAR",
17969
+ "name": "ID",
17970
+ "ofType": null
17971
+ }
17972
+ }
17973
+ }
17974
+ },
17975
+ "defaultValue": null
17976
+ }
17977
+ ],
17978
+ "type": {
17979
+ "kind": "NON_NULL",
17980
+ "name": null,
17981
+ "ofType": {
17982
+ "kind": "OBJECT",
17983
+ "name": "BulkOperationJob",
17984
+ "ofType": null
17985
+ }
17986
+ },
17987
+ "isDeprecated": false,
17988
+ "deprecationReason": null
17989
+ },
17806
17990
  {
17807
17991
  "name": "productsBulkAttachCategories",
17808
17992
  "description": "Attach N additional categories to N products (multi-category pivot — `Product.categories`). Existing categories on the products are kept; the supplied ids are added on top. Use `productsBulkSetCategory` for the SINGLE main category (`category_id` column).",
@@ -30268,7 +30452,7 @@
30268
30452
  },
30269
30453
  {
30270
30454
  "name": "createBrand",
30271
- "description": "Create a new brand.",
30455
+ "description": "Create a new brand. On success `data` contains `{ id }` (the new brand id) — capture it to avoid an extra brands() lookup. The created brand can be re-read via `brand(id) { ... }`.",
30272
30456
  "args": [
30273
30457
  {
30274
30458
  "name": "input",
@@ -30375,7 +30559,7 @@
30375
30559
  },
30376
30560
  {
30377
30561
  "name": "createBrandModel",
30378
- "description": "Create a new model under a brand.",
30562
+ "description": "Create a new model under a brand. On success `data` contains `{ id }` (the new model id) — capture it for subsequent `productsBulkSetBrandModels` calls without re-querying `brandModels`.",
30379
30563
  "args": [
30380
30564
  {
30381
30565
  "name": "brandId",
@@ -30522,6 +30706,82 @@
30522
30706
  "isDeprecated": false,
30523
30707
  "deprecationReason": null
30524
30708
  },
30709
+ {
30710
+ "name": "deleteBrand",
30711
+ "description": "Delete a single brand. Synchronous — returns immediately with success/error instead of queueing a job. Refuses with `dependency_blocked` when the brand still has products attached. Use the bulk variant `brandsBulkDelete` only for batch / async deletes.",
30712
+ "args": [
30713
+ {
30714
+ "name": "id",
30715
+ "description": "Brand ID.",
30716
+ "type": {
30717
+ "kind": "NON_NULL",
30718
+ "name": null,
30719
+ "ofType": {
30720
+ "kind": "SCALAR",
30721
+ "name": "ID",
30722
+ "ofType": null
30723
+ }
30724
+ },
30725
+ "defaultValue": null
30726
+ }
30727
+ ],
30728
+ "type": {
30729
+ "kind": "NON_NULL",
30730
+ "name": null,
30731
+ "ofType": {
30732
+ "kind": "OBJECT",
30733
+ "name": "AdminAppMutationResult",
30734
+ "ofType": null
30735
+ }
30736
+ },
30737
+ "isDeprecated": false,
30738
+ "deprecationReason": null
30739
+ },
30740
+ {
30741
+ "name": "deleteBrandModel",
30742
+ "description": "Delete a single brand model. Synchronous — returns immediately with success/error instead of queueing a job. Refuses with `dependency_blocked` when the model still has products attached. Use the bulk variant `brandModelsBulkDelete` only for batch / async deletes.",
30743
+ "args": [
30744
+ {
30745
+ "name": "brandId",
30746
+ "description": "Brand ID.",
30747
+ "type": {
30748
+ "kind": "NON_NULL",
30749
+ "name": null,
30750
+ "ofType": {
30751
+ "kind": "SCALAR",
30752
+ "name": "ID",
30753
+ "ofType": null
30754
+ }
30755
+ },
30756
+ "defaultValue": null
30757
+ },
30758
+ {
30759
+ "name": "modelId",
30760
+ "description": "Model ID.",
30761
+ "type": {
30762
+ "kind": "NON_NULL",
30763
+ "name": null,
30764
+ "ofType": {
30765
+ "kind": "SCALAR",
30766
+ "name": "ID",
30767
+ "ofType": null
30768
+ }
30769
+ },
30770
+ "defaultValue": null
30771
+ }
30772
+ ],
30773
+ "type": {
30774
+ "kind": "NON_NULL",
30775
+ "name": null,
30776
+ "ofType": {
30777
+ "kind": "OBJECT",
30778
+ "name": "AdminAppMutationResult",
30779
+ "ofType": null
30780
+ }
30781
+ },
30782
+ "isDeprecated": false,
30783
+ "deprecationReason": null
30784
+ },
30525
30785
  {
30526
30786
  "name": "brandsBulkDelete",
30527
30787
  "description": "Bulk-delete brands. Mirrors the admin Brand & Model listing's Delete bulk action. Refuses with `dependency_blocked` when any of the supplied brands still has products attached.",
@@ -97610,6 +97870,152 @@
97610
97870
  "enumValues": null,
97611
97871
  "possibleTypes": null
97612
97872
  },
97873
+ {
97874
+ "kind": "OBJECT",
97875
+ "name": "PaymentProvider",
97876
+ "description": "A payment provider (payment method) on the current site, with its real\nactivation state.\n\nUse this instead of `applications(filter: { group: \"payment\" })` to tell\nwhether a payment method is actually turned on for checkout. `Application.isActive`\nreads the generic app-install flag (the `apps` table), which is NOT kept in\nsync with the payment Activate/Deactivate toggle. `PaymentProvider.isActive`\nreads the authoritative `PaymentProviderConfiguration.active` value that the\nadmin payment page writes.",
97877
+ "fields": [
97878
+ {
97879
+ "name": "key",
97880
+ "description": "Payment provider key (e.g. cod, stripe, borica_way4).",
97881
+ "args": [],
97882
+ "type": {
97883
+ "kind": "NON_NULL",
97884
+ "name": null,
97885
+ "ofType": {
97886
+ "kind": "SCALAR",
97887
+ "name": "String",
97888
+ "ofType": null
97889
+ }
97890
+ },
97891
+ "isDeprecated": false,
97892
+ "deprecationReason": null
97893
+ },
97894
+ {
97895
+ "name": "name",
97896
+ "description": "Display name (the configuration title if set, otherwise the provider name).",
97897
+ "args": [],
97898
+ "type": {
97899
+ "kind": "NON_NULL",
97900
+ "name": null,
97901
+ "ofType": {
97902
+ "kind": "SCALAR",
97903
+ "name": "String",
97904
+ "ofType": null
97905
+ }
97906
+ },
97907
+ "isDeprecated": false,
97908
+ "deprecationReason": null
97909
+ },
97910
+ {
97911
+ "name": "group",
97912
+ "description": "Provider group (always payment).",
97913
+ "args": [],
97914
+ "type": {
97915
+ "kind": "SCALAR",
97916
+ "name": "String",
97917
+ "ofType": null
97918
+ },
97919
+ "isDeprecated": false,
97920
+ "deprecationReason": null
97921
+ },
97922
+ {
97923
+ "name": "isInstalled",
97924
+ "description": "Whether the payment method is installed on the current site (a configuration record exists).",
97925
+ "args": [],
97926
+ "type": {
97927
+ "kind": "NON_NULL",
97928
+ "name": null,
97929
+ "ofType": {
97930
+ "kind": "SCALAR",
97931
+ "name": "Boolean",
97932
+ "ofType": null
97933
+ }
97934
+ },
97935
+ "isDeprecated": false,
97936
+ "deprecationReason": null
97937
+ },
97938
+ {
97939
+ "name": "isActive",
97940
+ "description": "Whether the payment method is activated for checkout — the value of the\nActivate/Deactivate toggle on the admin payment page. Reads\nPaymentProviderConfiguration.active; this is the authoritative flag, NOT\nthe generic Application.isActive.",
97941
+ "args": [],
97942
+ "type": {
97943
+ "kind": "NON_NULL",
97944
+ "name": null,
97945
+ "ofType": {
97946
+ "kind": "SCALAR",
97947
+ "name": "Boolean",
97948
+ "ofType": null
97949
+ }
97950
+ },
97951
+ "isDeprecated": false,
97952
+ "deprecationReason": null
97953
+ },
97954
+ {
97955
+ "name": "isConfigured",
97956
+ "description": "Whether the provider is configured (a configuration record exists).",
97957
+ "args": [],
97958
+ "type": {
97959
+ "kind": "NON_NULL",
97960
+ "name": null,
97961
+ "ofType": {
97962
+ "kind": "SCALAR",
97963
+ "name": "Boolean",
97964
+ "ofType": null
97965
+ }
97966
+ },
97967
+ "isDeprecated": false,
97968
+ "deprecationReason": null
97969
+ },
97970
+ {
97971
+ "name": "image",
97972
+ "description": "Logo image URL (custom uploaded configuration image if present, otherwise the app icon).",
97973
+ "args": [],
97974
+ "type": {
97975
+ "kind": "SCALAR",
97976
+ "name": "String",
97977
+ "ofType": null
97978
+ },
97979
+ "isDeprecated": false,
97980
+ "deprecationReason": null
97981
+ }
97982
+ ],
97983
+ "inputFields": null,
97984
+ "interfaces": [],
97985
+ "enumValues": null,
97986
+ "possibleTypes": null
97987
+ },
97988
+ {
97989
+ "kind": "INPUT_OBJECT",
97990
+ "name": "PaymentProviderFilterInput",
97991
+ "description": "Filters for the paymentProviders query.",
97992
+ "fields": null,
97993
+ "inputFields": [
97994
+ {
97995
+ "name": "isInstalled",
97996
+ "description": "Keep only providers installed on the current site.",
97997
+ "type": {
97998
+ "kind": "SCALAR",
97999
+ "name": "Boolean",
98000
+ "ofType": null
98001
+ },
98002
+ "defaultValue": null
98003
+ },
98004
+ {
98005
+ "name": "isActive",
98006
+ "description": "Keep only providers activated for checkout (PaymentProviderConfiguration.active = yes).",
98007
+ "type": {
98008
+ "kind": "SCALAR",
98009
+ "name": "Boolean",
98010
+ "ofType": null
98011
+ },
98012
+ "defaultValue": null
98013
+ }
98014
+ ],
98015
+ "interfaces": null,
98016
+ "enumValues": null,
98017
+ "possibleTypes": null
98018
+ },
97613
98019
  {
97614
98020
  "kind": "OBJECT",
97615
98021
  "name": "ProductReviewSettings",
@@ -100286,7 +100692,7 @@
100286
100692
  },
100287
100693
  {
100288
100694
  "name": "data",
100289
- "description": "Additional data (app-specific).",
100695
+ "description": "Additional data (app-specific). Conventions across the admin mutations: `createBrand` / `createBrandModel` populate `{ id }` of the new entity here; `updateBrand` / `updateBrandModel` echo `{ id }` of the touched row; `toggleBrandStatus` / `toggleBrandModelStatus` return `{ active }` so callers can read the new state without re-querying. When `success: false`, `data` is usually null and the failure detail is in `message`.",
100290
100696
  "args": [],
100291
100697
  "type": {
100292
100698
  "kind": "SCALAR",
Binary file