{"version":3,"file":"GithubNugetRegistryInfo.mjs","names":["getEnvironmentVariableValue","NRIOptionsBase"],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"sourcesContent":["import type { Type } from 'arktype';\nimport { getEnvVarValue as getEnvironmentVariableValue } from '../utils/env.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\nimport {\n  NugetRegistryInfo,\n  NRIOptsBase as NRIOptionsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Default } from 'arktype/internal/attributes.ts';\n\nconst NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n// eslint-disable-next-line unicorn/name-replacements\nexport const DefaultGithubTokenEnvVars: readonly ['GH_TOKEN', 'GITHUB_TOKEN'] = Object.freeze([\n  'GH_TOKEN',\n  'GITHUB_TOKEN',\n]);\n\nexport class GithubNugetRegistryInfo extends NugetRegistryInfo {\n  static readonly NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n\n  /**\n   * Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json`\n   * or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor\n   * {@link process.cwd() $CWD}/.env) `undefined`.\n   * @returns If GITHUB_REPOSITORY_OWNER is defined, returns the GitHub Package Repository URL endpoint for NuGet pushes (--source).\\\n   * Otherwise, returns `undefined`\n   */\n  static getNugetGitHubUrl(): string | undefined {\n    const owner = getEnvironmentVariableValue('GITHUB_REPOSITORY_OWNER');\n    return owner === undefined\n      ? undefined\n      : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`;\n  }\n\n  // GithubNugetRegistryInfo.CtorArgs(...) behaves differently than NugetRegistryInfo.CtorArgs(...)\n  /**\n   * Creates an instance of GithubNugetRegistryInfo.\n   * @param opts The input type of {@link GHNRIOpts.from}\n   */\n  // eslint-disable-next-line unicorn/name-replacements\n  constructor(opts: typeof GHNRIOpts.inferIn) {\n    super(GHNRIOpts.from(opts));\n  }\n}\nconst GHNRI = GithubNugetRegistryInfo;\n\n/**\n * The default value of {@link GHNRIOpts.t.source `source`} is dependent on\n * {@link GHNRI.getNugetGitHubUrl} and will default to an empty string if the\n * environment variable `GITHUB_REPOSITORY_OWNER` is undefined!\n */\n// eslint-disable-next-line unicorn/name-replacements\nexport const GHNRIOpts: Type<{\n  project: MSBuildProject | {\n    readonly Items: Readonly<Required<MSBuildEvaluationOutput>['Items']>;\n    readonly Properties: Readonly<NugetProjectProperties>;\n    readonly Targets: readonly string[];\n    readonly TargetResults: Required<MSBuildEvaluationOutput>['TargetResults'][];\n  };\n  source: Default<string, string>;\n  tokenEnvVars: Default<readonly string[], readonly ['GH_TOKEN', 'GITHUB_TOKEN']>;\n}> = NRIOptionsBase.merge({\n  /** @see {@link GHNRI.getNugetGitHubUrl } */\n  source: NRIOptionsBase.get('source')\n    .default(() => GHNRI.getNugetGitHubUrl() ?? ''),\n  tokenEnvVars: NRIOptionsBase.get('tokenEnvVars')\n    .default(\n      /* must be a function. A fixed-length array is NOT a primitive type! */\n      (): typeof DefaultGithubTokenEnvVars => DefaultGithubTokenEnvVars,\n    ),\n});\n"],"mappings":";;;AAUA,MAAM,uBAAuB;AAE7B,MAAa,4BAAmE,OAAO,OAAO,CAC5F,YACA,cACF,CAAC;AAED,IAAa,0BAAb,cAA6C,kBAAkB;CAC7D,OAAgB,uBAAuB;;;;;;;;CASvC,OAAO,oBAAwC;EAC7C,MAAM,QAAQA,eAA4B,yBAAyB;EACnE,OAAO,UAAU,KAAA,IACb,KAAA,IACA,GAAG,qBAAqB,GAAG,MAAM;CACvC;;;;;CAQA,YAAY,MAAgC;EAC1C,MAAM,UAAU,KAAK,IAAI,CAAC;CAC5B;AACF;AACA,MAAM,QAAQ;;;;;;AAQd,MAAa,YASRC,YAAe,MAAM;;CAExB,QAAQA,YAAe,IAAI,QAAQ,CAAC,CACjC,cAAc,MAAM,kBAAkB,KAAK,EAAE;CAChD,cAAcA,YAAe,IAAI,cAAc,CAAC,CAC7C,cAEyC,yBAC1C;AACJ,CAAC"}