From b003f914d87801bdb8b948e0d84e6c3e0ccddfa8 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Wed, 7 Jan 2026 10:49:39 -0600 Subject: [PATCH 1/7] Add admin.app.search.data extension target --- packages/ui-extensions/src/surfaces/admin/api.ts | 2 ++ .../src/surfaces/admin/api/search-data/data.ts | 16 ++++++++++++++++ .../admin/api/search-data/search-data.ts | 5 +++++ .../src/surfaces/admin/extension-targets.ts | 11 +++++++++++ 4 files changed, 34 insertions(+) create mode 100644 packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts create mode 100644 packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts diff --git a/packages/ui-extensions/src/surfaces/admin/api.ts b/packages/ui-extensions/src/surfaces/admin/api.ts index 7ebd12ab0e..0831af9afb 100644 --- a/packages/ui-extensions/src/surfaces/admin/api.ts +++ b/packages/ui-extensions/src/surfaces/admin/api.ts @@ -14,3 +14,5 @@ export type {OrderRoutingRuleApi} from './api/order-routing-rule/order-routing-r export type {ValidationSettingsApi} from './api/checkout-rules/validation-settings'; export type {PurchaseOptionsCardConfigurationApi} from './api/purchase-options-card-action'; export type {DiscountFunctionSettingsApi} from './api/discount-function-settings/discount-function-settings'; +export type {SearchDataApi} from './api/search-data/search-data'; +export type {SearchDataOutput} from './api/search-data/data'; diff --git a/packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts b/packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts new file mode 100644 index 0000000000..90252e99c1 --- /dev/null +++ b/packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts @@ -0,0 +1,16 @@ +export interface SearchResult { + id: string; + type: string; + url: string; + title: string; +} + +export interface SearchDataOutput { + results: SearchResult[]; + pageInfo: { + hasNextPage: boolean; + hasPreviousPage: boolean; + startCursor: string | null; + endCursor: string | null; + }; +} diff --git a/packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts b/packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts new file mode 100644 index 0000000000..a1b9db7f85 --- /dev/null +++ b/packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts @@ -0,0 +1,5 @@ +import type {StandardApi} from '../standard/standard'; +import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets'; + +export interface SearchDataApi + extends StandardApi {} diff --git a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts index 05f3a93d81..4afba32d54 100644 --- a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts +++ b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts @@ -12,6 +12,8 @@ import type { DiscountFunctionSettingsApi, CustomerSegmentTemplateApi, CustomerSegmentTemplate, + SearchDataApi, + SearchDataOutput, } from './api'; import { ShouldRenderApi, @@ -725,6 +727,15 @@ export interface ExtensionTargets { ShouldRenderApi<'admin.product-index.selection-print-action.should-render'>, ShouldRenderOutput >; + + /** + * Provides search data for the admin search functionality. + * This extension returns search results that integrate with the admin search interface. + */ + 'admin.app.search.data': RunnableExtension< + SearchDataApi<'admin.app.search.data'>, + SearchDataOutput + >; } export type ExtensionTarget = keyof ExtensionTargets; From 8e622496ea1af6476c63432196597c1c9ae2fd81 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Wed, 7 Jan 2026 11:01:40 -0600 Subject: [PATCH 2/7] Add changeset for admin.app.search.data target --- .changeset/add-admin-search-data-target.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/add-admin-search-data-target.md diff --git a/.changeset/add-admin-search-data-target.md b/.changeset/add-admin-search-data-target.md new file mode 100644 index 0000000000..785ff0299c --- /dev/null +++ b/.changeset/add-admin-search-data-target.md @@ -0,0 +1,5 @@ +--- +"@shopify/ui-extensions": patch +--- + +Add admin.app.search.data extension target From 9015b172c957ce9978f636aa878fe03e2cfa049a Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Wed, 7 Jan 2026 11:08:13 -0600 Subject: [PATCH 3/7] Format changeset file with Prettier --- .changeset/add-admin-search-data-target.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/add-admin-search-data-target.md b/.changeset/add-admin-search-data-target.md index 785ff0299c..7345477f87 100644 --- a/.changeset/add-admin-search-data-target.md +++ b/.changeset/add-admin-search-data-target.md @@ -1,5 +1,5 @@ --- -"@shopify/ui-extensions": patch +'@shopify/ui-extensions': patch --- Add admin.app.search.data extension target From 301c379b34c4471232731dcce3f1b165354968e2 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Fri, 9 Jan 2026 10:05:23 -0600 Subject: [PATCH 4/7] Rename admin.app.search.data to admin.app.tools.data - Rename SearchDataApi to ToolsDataApi - Rename SearchDataOutput to ToolsDataOutput - Rename api/search-data directory to api/tools-data - Update extension target name --- .changeset/add-admin-search-data-target.md | 5 ----- .changeset/add-admin-tools-data-target.md | 5 +++++ packages/ui-extensions/src/surfaces/admin/api.ts | 4 ++-- .../admin/api/{search-data => tools-data}/data.ts | 2 +- .../search-data.ts => tools-data/tools-data.ts} | 2 +- .../src/surfaces/admin/extension-targets.ts | 14 +++++++------- 6 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 .changeset/add-admin-search-data-target.md create mode 100644 .changeset/add-admin-tools-data-target.md rename packages/ui-extensions/src/surfaces/admin/api/{search-data => tools-data}/data.ts (87%) rename packages/ui-extensions/src/surfaces/admin/api/{search-data/search-data.ts => tools-data/tools-data.ts} (70%) diff --git a/.changeset/add-admin-search-data-target.md b/.changeset/add-admin-search-data-target.md deleted file mode 100644 index 7345477f87..0000000000 --- a/.changeset/add-admin-search-data-target.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@shopify/ui-extensions': patch ---- - -Add admin.app.search.data extension target diff --git a/.changeset/add-admin-tools-data-target.md b/.changeset/add-admin-tools-data-target.md new file mode 100644 index 0000000000..f2b35dc34a --- /dev/null +++ b/.changeset/add-admin-tools-data-target.md @@ -0,0 +1,5 @@ +--- +'@shopify/ui-extensions': patch +--- + +Add admin.app.tools.data extension target diff --git a/packages/ui-extensions/src/surfaces/admin/api.ts b/packages/ui-extensions/src/surfaces/admin/api.ts index 0831af9afb..a67d872008 100644 --- a/packages/ui-extensions/src/surfaces/admin/api.ts +++ b/packages/ui-extensions/src/surfaces/admin/api.ts @@ -14,5 +14,5 @@ export type {OrderRoutingRuleApi} from './api/order-routing-rule/order-routing-r export type {ValidationSettingsApi} from './api/checkout-rules/validation-settings'; export type {PurchaseOptionsCardConfigurationApi} from './api/purchase-options-card-action'; export type {DiscountFunctionSettingsApi} from './api/discount-function-settings/discount-function-settings'; -export type {SearchDataApi} from './api/search-data/search-data'; -export type {SearchDataOutput} from './api/search-data/data'; +export type {ToolsDataApi} from './api/tools-data/tools-data'; +export type {ToolsDataOutput} from './api/tools-data/data'; diff --git a/packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts b/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts similarity index 87% rename from packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts rename to packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts index 90252e99c1..ae6835c1da 100644 --- a/packages/ui-extensions/src/surfaces/admin/api/search-data/data.ts +++ b/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts @@ -5,7 +5,7 @@ export interface SearchResult { title: string; } -export interface SearchDataOutput { +export interface ToolsDataOutput { results: SearchResult[]; pageInfo: { hasNextPage: boolean; diff --git a/packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts b/packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts similarity index 70% rename from packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts rename to packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts index a1b9db7f85..3b14144381 100644 --- a/packages/ui-extensions/src/surfaces/admin/api/search-data/search-data.ts +++ b/packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts @@ -1,5 +1,5 @@ import type {StandardApi} from '../standard/standard'; import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets'; -export interface SearchDataApi +export interface ToolsDataApi extends StandardApi {} diff --git a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts index 4afba32d54..bb655cfc4c 100644 --- a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts +++ b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts @@ -12,8 +12,8 @@ import type { DiscountFunctionSettingsApi, CustomerSegmentTemplateApi, CustomerSegmentTemplate, - SearchDataApi, - SearchDataOutput, + ToolsDataApi, + ToolsDataOutput, } from './api'; import { ShouldRenderApi, @@ -729,12 +729,12 @@ export interface ExtensionTargets { >; /** - * Provides search data for the admin search functionality. - * This extension returns search results that integrate with the admin search interface. + * Provides tools data for the admin tools functionality. + * This extension returns tool results that integrate with the admin interface. */ - 'admin.app.search.data': RunnableExtension< - SearchDataApi<'admin.app.search.data'>, - SearchDataOutput + 'admin.app.tools.data': RunnableExtension< + ToolsDataApi<'admin.app.tools.data'>, + ToolsDataOutput >; } From 274be3fd7d762783e007d04b3c73db0e61aab341 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Tue, 13 Jan 2026 14:11:35 -0600 Subject: [PATCH 5/7] Rename SearchResult to ToolResult Co-Authored-By: Claude Opus 4.5 --- packages/ui-extensions/src/surfaces/admin/api.ts | 2 +- .../ui-extensions/src/surfaces/admin/api/tools-data/data.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ui-extensions/src/surfaces/admin/api.ts b/packages/ui-extensions/src/surfaces/admin/api.ts index a67d872008..e9685b5f0d 100644 --- a/packages/ui-extensions/src/surfaces/admin/api.ts +++ b/packages/ui-extensions/src/surfaces/admin/api.ts @@ -15,4 +15,4 @@ export type {ValidationSettingsApi} from './api/checkout-rules/validation-settin export type {PurchaseOptionsCardConfigurationApi} from './api/purchase-options-card-action'; export type {DiscountFunctionSettingsApi} from './api/discount-function-settings/discount-function-settings'; export type {ToolsDataApi} from './api/tools-data/tools-data'; -export type {ToolsDataOutput} from './api/tools-data/data'; +export type {ToolResult, ToolsDataOutput} from './api/tools-data/data'; diff --git a/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts b/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts index ae6835c1da..0d065c2395 100644 --- a/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts +++ b/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts @@ -1,4 +1,4 @@ -export interface SearchResult { +export interface ToolResult { id: string; type: string; url: string; @@ -6,7 +6,7 @@ export interface SearchResult { } export interface ToolsDataOutput { - results: SearchResult[]; + results: ToolResult[]; pageInfo: { hasNextPage: boolean; hasPreviousPage: boolean; From 1f42d93d0097c81553f27aece9073a8e3df17113 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Tue, 13 Jan 2026 14:17:10 -0600 Subject: [PATCH 6/7] Change admin.app.tools.data to return undefined Remove ToolsDataOutput and ToolResult types as the extension target now returns undefined per issue requirements. Co-Authored-By: Claude Opus 4.5 --- packages/ui-extensions/src/surfaces/admin/api.ts | 1 - .../src/surfaces/admin/api/tools-data/data.ts | 16 ---------------- .../src/surfaces/admin/extension-targets.ts | 4 +--- 3 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts diff --git a/packages/ui-extensions/src/surfaces/admin/api.ts b/packages/ui-extensions/src/surfaces/admin/api.ts index e9685b5f0d..9442bdf085 100644 --- a/packages/ui-extensions/src/surfaces/admin/api.ts +++ b/packages/ui-extensions/src/surfaces/admin/api.ts @@ -15,4 +15,3 @@ export type {ValidationSettingsApi} from './api/checkout-rules/validation-settin export type {PurchaseOptionsCardConfigurationApi} from './api/purchase-options-card-action'; export type {DiscountFunctionSettingsApi} from './api/discount-function-settings/discount-function-settings'; export type {ToolsDataApi} from './api/tools-data/tools-data'; -export type {ToolResult, ToolsDataOutput} from './api/tools-data/data'; diff --git a/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts b/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts deleted file mode 100644 index 0d065c2395..0000000000 --- a/packages/ui-extensions/src/surfaces/admin/api/tools-data/data.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface ToolResult { - id: string; - type: string; - url: string; - title: string; -} - -export interface ToolsDataOutput { - results: ToolResult[]; - pageInfo: { - hasNextPage: boolean; - hasPreviousPage: boolean; - startCursor: string | null; - endCursor: string | null; - }; -} diff --git a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts index bb655cfc4c..a98e46ce54 100644 --- a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts +++ b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts @@ -13,7 +13,6 @@ import type { CustomerSegmentTemplateApi, CustomerSegmentTemplate, ToolsDataApi, - ToolsDataOutput, } from './api'; import { ShouldRenderApi, @@ -730,11 +729,10 @@ export interface ExtensionTargets { /** * Provides tools data for the admin tools functionality. - * This extension returns tool results that integrate with the admin interface. */ 'admin.app.tools.data': RunnableExtension< ToolsDataApi<'admin.app.tools.data'>, - ToolsDataOutput + undefined >; } From 6165c7a57dfb80d88abe1b5015eb9d13bae53b71 Mon Sep 17 00:00:00 2001 From: Bill Fienberg Date: Tue, 13 Jan 2026 14:19:21 -0600 Subject: [PATCH 7/7] Use StandardApi for admin.app.tools.data target Remove custom ToolsDataApi in favor of StandardApi. Co-Authored-By: Claude Opus 4.5 --- packages/ui-extensions/src/surfaces/admin/api.ts | 1 - .../src/surfaces/admin/api/tools-data/tools-data.ts | 5 ----- .../ui-extensions/src/surfaces/admin/extension-targets.ts | 4 ++-- 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts diff --git a/packages/ui-extensions/src/surfaces/admin/api.ts b/packages/ui-extensions/src/surfaces/admin/api.ts index 9442bdf085..7ebd12ab0e 100644 --- a/packages/ui-extensions/src/surfaces/admin/api.ts +++ b/packages/ui-extensions/src/surfaces/admin/api.ts @@ -14,4 +14,3 @@ export type {OrderRoutingRuleApi} from './api/order-routing-rule/order-routing-r export type {ValidationSettingsApi} from './api/checkout-rules/validation-settings'; export type {PurchaseOptionsCardConfigurationApi} from './api/purchase-options-card-action'; export type {DiscountFunctionSettingsApi} from './api/discount-function-settings/discount-function-settings'; -export type {ToolsDataApi} from './api/tools-data/tools-data'; diff --git a/packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts b/packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts deleted file mode 100644 index 3b14144381..0000000000 --- a/packages/ui-extensions/src/surfaces/admin/api/tools-data/tools-data.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type {StandardApi} from '../standard/standard'; -import type {ExtensionTarget as AnyExtensionTarget} from '../../extension-targets'; - -export interface ToolsDataApi - extends StandardApi {} diff --git a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts index a98e46ce54..5dc42d6046 100644 --- a/packages/ui-extensions/src/surfaces/admin/extension-targets.ts +++ b/packages/ui-extensions/src/surfaces/admin/extension-targets.ts @@ -12,7 +12,7 @@ import type { DiscountFunctionSettingsApi, CustomerSegmentTemplateApi, CustomerSegmentTemplate, - ToolsDataApi, + StandardApi, } from './api'; import { ShouldRenderApi, @@ -731,7 +731,7 @@ export interface ExtensionTargets { * Provides tools data for the admin tools functionality. */ 'admin.app.tools.data': RunnableExtension< - ToolsDataApi<'admin.app.tools.data'>, + StandardApi<'admin.app.tools.data'>, undefined >; }