/** * Parse npm package specifiers from the `plugins:` list into name + range. * * The leading `@` of a scope is NOT a separator: only the last `@` at a * non-zero index splits the package name from its semver range. * "@skaile/provider-fly@^0.1.0" → { name: "@skaile/provider-fly", range: "^0.1.0" } * "@skaile/connector-redis" → { name: "@skaile/connector-redis", range: "*" } * "lodash@^4" → { name: "lodash", range: "^4" } */ /** A parsed plugin specifier: package name plus a semver range (`"*"` when omitted). */ export interface PluginSpec { name: string; range: string; } /** * Parse a single plugin specifier into `{ name, range }`. * * @param spec - An npm specifier, e.g. `"@skaile/provider-fly@^0.1.0"` or `"lodash"`. * @returns The package name and semver range (range defaults to `"*"`). * @throws Error when the specifier is empty. */ export declare function parseSpec(spec: string): PluginSpec; /** Convenience: just the package name of a specifier. */ export declare function specName(spec: string): string; //# sourceMappingURL=spec.d.ts.map