@@ -10,16 +10,20 @@ import { ResourceDescriptor } from '../models/types.js';
1010import { RESOURCE_TYPE_METADATA , ResourceType } from '../models/resource-types.js' ;
1111
1212/**
13- * Association resource types that represent parent-child relationships
14- * (not independently publishable resources).
15- * These are handled specially during publishing via association files
16- * (apis.json, groups.json) and should not be discovered as individual resources.
13+ * Association resource types that are published by specialized parent publishers.
14+ *
15+ * Product associations are handled by product-publisher using the parent
16+ * product descriptor, so their association files should not be discovered as
17+ * independent resources.
18+ *
19+ * Gateway associations are intentionally excluded from this set because they
20+ * are published via the generic association path in resource-publisher and
21+ * must therefore be discovered from gateways/{gateway}/apis.json.
1722 */
18- const ASSOCIATION_TYPES = new Set < ResourceType > ( [
23+ const PARENT_PUBLISHED_ASSOCIATION_TYPES = new Set < ResourceType > ( [
1924 ResourceType . ProductApi ,
2025 ResourceType . ProductGroup ,
2126 ResourceType . ProductTag ,
22- ResourceType . GatewayApi ,
2327] ) ;
2428
2529const SUPPORTED_SPECIFICATION_EXTENSIONS = new Set ( [
@@ -384,8 +388,8 @@ export function parseArtifactPath(
384388
385389 // Skip association resource types — these are handled specially during publishing
386390 // via their parent's association files (apis.json, groups.json)
387- if ( ASSOCIATION_TYPES . has ( type ) ) {
388- return undefined ;
391+ if ( PARENT_PUBLISHED_ASSOCIATION_TYPES . has ( type ) ) {
392+ continue ;
389393 }
390394
391395 const nameParts = parseTemplatePath (
0 commit comments