syntax = "proto3";
// flynt-disable package-matches-structure
package com.wixpress.appservice.api;

import "google/protobuf/wrappers.proto";
import "wix/api/validations.proto";
import "wix/api/annotations.proto";
import "wix/api/entity.proto";
import "components_catalog_common.proto";

/*
SDK exports specify the metadata of a module.
 */
message SDKExports {
  Npm import_metadata = 1; // Npm data that
  ExportMetadata export_metadata = 2; // The export definition of a module
  ExtensionExposure exposure_and_maturity = 3; // The maturity of the SDK exports
  //flynt-disable field-type-breaking-change
  map<string, string> peer_dependencies = 4; //  Map peer dependency package name to its version
  //flynt-disable field-type-breaking-change
  map<string, string> dev_dependencies = 5; // Map dev dependency package name to its version
  repeated string optional_peer_dependencies = 6 [(.wix.api.maxLength) = 200, (.wix.api.maxSize) = 200]; // List of peer dependency package names that are optional

  message Npm {
    string package_name = 1 [(wix.api.minLength) = 2, (wix.api.maxLength) = 100]; // Npm package name
    string package_version = 2  [(wix.api.minLength) = 2, (wix.api.maxLength) = 100]; // Npm semantic version
    google.protobuf.StringValue specifier = 3 [(wix.api.minLength) = 2, (wix.api.maxLength) = 100]; // Package entry point, default to main entry
    google.protobuf.StringValue imported_name = 4 [(wix.api.minLength) = 2, (wix.api.maxLength) = 100]; // Imported name, default to default import
  }

  message ExportMetadata {
     //flynt-disable field-type-breaking-change
    google.protobuf.StringValue exported_name = 1 [(wix.api.maxLength) = 100]; // Exported name of a module
    google.protobuf.StringValue relative_specifier = 3 [(wix.api.minLength) = 2, (wix.api.maxLength) = 100]; // Package entry point, default to main entry
  }
}



