"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var interface_package_exports = {};
__export(interface_package_exports, {
  generateInterfacePackage: () => generateInterfacePackage
});
module.exports = __toCommonJS(interface_package_exports);
var consts = __toESM(require("../consts"));
var gen = __toESM(require("../generators"));
var import_interface_package_definition = require("./interface-package-definition");
const generateInterfacePackageModule = (definitionImport, pkg) => {
  const id = pkg.interface.id;
  const uri = pkg.path;
  const tsId = gen.primitiveToTypescriptValue(id);
  const tsUri = gen.primitiveToTypescriptValue(uri);
  const tsName = gen.primitiveToTypescriptValue(pkg.name);
  const tsVersion = gen.primitiveToTypescriptValue(pkg.version);
  return [
    consts.GENERATED_HEADER,
    'import * as sdk from "@botpress/sdk"',
    "",
    `import definition from "${definitionImport}"`,
    "",
    "export default {",
    '  type: "interface",',
    `  id: ${tsId},`,
    `  uri: ${tsUri},`,
    `  name: ${tsName},`,
    `  version: ${tsVersion},`,
    "  definition,",
    "} satisfies sdk.InterfacePackage"
  ].join("\n");
};
const generateInterfacePackage = async (pkg) => {
  const definitionDir = "definition";
  const definitionModule = new import_interface_package_definition.InterfacePackageDefinitionModule(pkg.interface);
  definitionModule.unshift(definitionDir);
  const definitionFiles = await definitionModule.flatten();
  return [
    ...definitionFiles,
    {
      path: consts.INDEX_FILE,
      content: generateInterfacePackageModule(`./${definitionDir}`, pkg)
    }
  ];
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  generateInterfacePackage
});
//# sourceMappingURL=index.js.map
