@platforma-sdk/package-builder-lib 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +2 -3
- package/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/core/archive.cjs +1 -2
- package/dist/core/archive.cjs.map +1 -1
- package/dist/core/archive.js +1 -2
- package/dist/core/conda/builder.cjs +1 -2
- package/dist/core/conda/builder.cjs.map +1 -1
- package/dist/core/conda/builder.js +1 -2
- package/dist/core/conda/builder.js.map +1 -1
- package/dist/core/conda/validate-spec.cjs +1 -2
- package/dist/core/conda/validate-spec.js +1 -2
- package/dist/core/core.cjs +11 -12
- package/dist/core/core.cjs.map +1 -1
- package/dist/core/core.d.ts +3 -5
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +13 -13
- package/dist/core/core.js.map +1 -1
- package/dist/core/docker-conda.cjs +1 -2
- package/dist/core/docker-conda.js +1 -2
- package/dist/core/docker-coverage.cjs +1 -2
- package/dist/core/docker-coverage.d.ts +1 -3
- package/dist/core/docker-coverage.d.ts.map +1 -1
- package/dist/core/docker-coverage.js +3 -3
- package/dist/core/docker-coverage.js.map +1 -1
- package/dist/core/docker-python.cjs +1 -2
- package/dist/core/docker-python.js +1 -2
- package/dist/core/docker.cjs +1 -2
- package/dist/core/docker.cjs.map +1 -1
- package/dist/core/docker.js +1 -2
- package/dist/core/envs.cjs +1 -2
- package/dist/core/envs.d.ts +0 -1
- package/dist/core/envs.js +1 -2
- package/dist/core/package-info.cjs +13 -12
- package/dist/core/package-info.cjs.map +1 -1
- package/dist/core/package-info.d.ts +4 -5
- package/dist/core/package-info.d.ts.map +1 -1
- package/dist/core/package-info.js +13 -12
- package/dist/core/package-info.js.map +1 -1
- package/dist/core/paths.cjs +1 -2
- package/dist/core/paths.cjs.map +1 -1
- package/dist/core/paths.js +1 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/push-guard.cjs +1 -2
- package/dist/core/push-guard.cjs.map +1 -1
- package/dist/core/push-guard.d.ts +0 -2
- package/dist/core/push-guard.d.ts.map +1 -1
- package/dist/core/push-guard.js +1 -2
- package/dist/core/resolver.cjs +1 -2
- package/dist/core/resolver.js +1 -2
- package/dist/core/schemas/artifacts.cjs +1 -2
- package/dist/core/schemas/artifacts.d.ts +1 -169
- package/dist/core/schemas/artifacts.d.ts.map +1 -1
- package/dist/core/schemas/artifacts.js +1 -2
- package/dist/core/schemas/entrypoints.cjs +1 -2
- package/dist/core/schemas/entrypoints.d.ts +1 -352
- package/dist/core/schemas/entrypoints.d.ts.map +1 -1
- package/dist/core/schemas/entrypoints.js +1 -2
- package/dist/core/schemas/sw-json.cjs +1 -2
- package/dist/core/schemas/sw-json.js +1 -2
- package/dist/core/storage.cjs +1 -2
- package/dist/core/storage.js +1 -2
- package/dist/core/sw-json-render.cjs +1 -2
- package/dist/core/sw-json-render.js +1 -2
- package/dist/core/util.cjs +1 -2
- package/dist/core/util.cjs.map +1 -1
- package/dist/core/util.d.ts +0 -1
- package/dist/core/util.js +1 -2
- package/dist/defaults.cjs +1 -2
- package/dist/defaults.d.ts +0 -1
- package/dist/defaults.js +1 -2
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/package.json +20 -15
- package/src/core/conda/builder.ts +1 -1
package/dist/core/util.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","names":["fs","path","os"],"sources":["../../src/core/util.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as os from \"node:os\";\nimport fs from \"node:fs\";\nimport type { Hash } from \"node:crypto\";\nimport { createHash } from \"node:crypto\";\nimport winston from \"winston\";\nimport type { z } from \"zod/v4\";\nimport * as envs from \"./envs\";\n\nexport const packageJsonName = \"package.json\";\nexport const softwareConfigName = \"package.json\";\n\nexport function assertNever(_a: never): never {\n throw new Error(`code logic error: assertNever() call for ${JSON.stringify(_a)}`);\n}\n\nexport function trimPrefix(str: string, prefix: string): string {\n if (str.startsWith(prefix)) {\n return str.slice(prefix.length);\n }\n return str;\n}\n\nexport function trimSuffix(str: string, suffix: string): string {\n if (str.endsWith(suffix)) {\n return str.slice(0, -suffix.length);\n }\n return str;\n}\n\nexport function hashDirMetaSync(folder: string, hasher?: Hash): Hash {\n const hash = hasher ? hasher : createHash(\"sha256\");\n const info = fs.readdirSync(folder, { withFileTypes: true });\n\n for (const item of info) {\n const fullPath = path.join(folder, item.name);\n\n if (item.isFile()) {\n const statInfo = fs.statSync(fullPath);\n const fileInfo = `${fullPath}:${statInfo.size}:${statInfo.mtimeMs}`;\n hash.update(fileInfo);\n } else if (item.isDirectory()) {\n hashDirMetaSync(fullPath, hash);\n }\n }\n\n return hash;\n}\n\nexport function hashDirSync(rootDir: string, hasher?: Hash, subdir?: string): Hash {\n const hash = hasher ? hasher : createHash(\"sha256\");\n const folder = path.join(rootDir, subdir ?? \".\");\n\n // Sort for a host-independent hash: readdir enumeration order is not guaranteed.\n const info = fs\n .readdirSync(folder, { withFileTypes: true })\n .sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));\n\n for (const item of info) {\n const relPath = path.join(subdir ?? \".\", item.name);\n const fullPath = path.join(folder, item.name);\n\n hash.update(relPath);\n\n if (item.isFile()) {\n const fileDescriptor = fs.openSync(fullPath, \"r\");\n const buffer = Buffer.alloc(65536);\n let bytesRead: number;\n\n while ((bytesRead = fs.readSync(fileDescriptor, buffer, 0, buffer.length, null)) !== 0) {\n hash.update(buffer.subarray(0, bytesRead));\n }\n\n fs.closeSync(fileDescriptor);\n } else if (item.isDirectory()) {\n // Keep rootDir fixed and pass the accumulated relPath so nested entries hash under their\n // full path from the root — otherwise `dirA/` + `file` collides with `dirA/file`.\n hashDirSync(rootDir, hash, relPath);\n }\n }\n\n return hash;\n}\n\n//\n// Creates all intermediate directories down to given <dirPath>.\n//\nexport function ensureDirsExist(dirPath: string) {\n if (fs.existsSync(dirPath)) {\n return;\n }\n const parentDir = path.dirname(dirPath);\n ensureDirsExist(parentDir);\n fs.mkdirSync(dirPath);\n}\n\nexport function findPackageRoot(logger: winston.Logger, startPath?: string): string {\n if (!startPath) {\n startPath = process.cwd();\n }\n logger.debug(`Detecting package root...`);\n const pkgRoot = searchPathUp(startPath, startPath, packageJsonName);\n logger.debug(` package root found at '${pkgRoot}'`);\n\n return pkgRoot;\n}\n\nexport function findNodeModules(logger: winston.Logger, startPath?: string): string {\n if (!startPath) {\n startPath = process.cwd();\n }\n logger.debug(`Detecting 'node_modules' directory...`);\n const nodeModules = searchPathUp(startPath, startPath, \"node_modules\");\n logger.debug(` 'node_modules' found at '${nodeModules}'`);\n\n return path.join(nodeModules, \"node_modules\");\n}\n\nexport function findInstalledModule(\n logger: winston.Logger,\n packageName: string,\n startPath?: string,\n): string {\n const nodeModules = findNodeModules(logger, startPath);\n const packagePath = path.resolve(nodeModules, packageName);\n\n if (!fs.existsSync(packagePath)) {\n throw CLIError(\n `package '${packageName}' not found in '${nodeModules}'. Did you forget to add it as a dependency?`,\n );\n }\n\n return packagePath;\n}\n\nfunction searchPathUp(startPath: string, pathToCheck: string, itemToCheck: string): string {\n const itemPath = path.resolve(pathToCheck, itemToCheck);\n\n if (fs.existsSync(itemPath)) {\n return pathToCheck;\n }\n\n const parentDir = path.dirname(pathToCheck);\n if (parentDir === pathToCheck || pathToCheck === \"\") {\n throw CLIError(\n `failed to find '${itemToCheck}' file in any of parent directories starting from '${startPath}'`,\n );\n }\n\n return searchPathUp(startPath, parentDir, itemToCheck);\n}\n\nexport function createLogger(level: string = \"debug\"): winston.Logger {\n if (envs.isCI() && envs.isRunnerDebug()) {\n level = \"debug\";\n }\n\n return winston.createLogger({\n level: level,\n\n format: winston.format.printf(({ level, message }) => {\n const indent = \" \".repeat(level.length + 2); // For ': ' after the level\n if (typeof message !== \"string\") {\n const messageJson = JSON.stringify(message);\n throw new Error(`logger message ${messageJson} is not a string`);\n }\n const indentedMessage = message\n .split(\"\\n\")\n .map((line: string, index: number) => (index === 0 ? line : indent + line))\n .join(\"\\n\");\n\n const colorize = (l: string) => winston.format.colorize().colorize(l, l);\n\n return `${colorize(level)}: ${indentedMessage}`;\n }),\n\n transports: [\n new winston.transports.Console({\n stderrLevels: [\"error\", \"warn\", \"info\", \"debug\"],\n handleExceptions: true,\n }),\n ],\n });\n}\n\nexport function rSplit(input: string, delimiter: string, limit?: number): string[] {\n const parts = input.split(delimiter);\n if (!limit || parts.length <= limit) {\n return parts;\n }\n\n return [parts.slice(0, -limit + 1).join(delimiter), ...parts.slice(-limit + 1)];\n}\n\nconst replaceDuplicateSlashes = new RegExp(\"//+\", \"g\");\nexport function urlJoin(url: string, appendPath: string): string {\n const u = new URL(url, \"file:/nonexistent-9672674c/\");\n if (u.protocol === \"file:\" && u.pathname.startsWith(\"/nonexistent-9672674c/\")) {\n throw new Error(`string '${url}' is not valid URL`);\n }\n\n u.pathname = u.pathname + \"/\" + appendPath;\n u.pathname = u.pathname.replaceAll(replaceDuplicateSlashes, \"/\");\n return u.toString();\n}\n\nexport function wrapErr(e: any, msg: string): any {\n if (!(e instanceof Error)) {\n return e;\n }\n\n const wrappedError = new Error(`${msg}: ${e.message}`);\n wrappedError.name = e.name;\n wrappedError.stack = e.stack;\n // Copy any additional custom properties\n Object.assign(wrappedError, e);\n return wrappedError;\n}\n\n/**\n * Converts any value to integer number 1 if value is truthful and 0 otherwice.\n * Provides simple way to count values that are defined in an object:\n * toInt(options.a) + toInt(options.b) + toInt(options.c) === 1\n * @param input: any\n * @returns number - '1' or '0'\n */\nexport function toInt(input: any): number {\n return input ? 1 : 0;\n}\n\nexport const OSes = [\"linux\", \"macosx\", \"windows\"] as const;\nexport type OSType = (typeof OSes)[number];\n\nexport function currentOS(): OSType {\n const platform = os.platform();\n switch (platform) {\n case \"darwin\":\n return \"macosx\";\n case \"linux\":\n return \"linux\";\n case \"win32\":\n return \"windows\";\n default:\n throw CLIError(\n `operating system '${platform}' is not currently supported by Platforma ecosystem. The list of OSes supported: ` +\n JSON.stringify(OSes),\n );\n }\n}\n\nexport const Arches = [\"x64\", \"aarch64\"] as const;\nexport type ArchType = (typeof Arches)[number];\n\nexport function currentArch(): ArchType {\n const arch = os.arch();\n switch (arch) {\n case \"arm64\":\n return \"aarch64\";\n case \"x64\":\n return \"x64\";\n default:\n throw CLIError(\n `processor architecture '${arch}' is not currently supported by Platforma ecosystem. The list of architectures supported: ` +\n JSON.stringify(Arches),\n );\n }\n}\n\n// Combinartions of OS and architecture, Platforma supports.\nexport const AllPlatforms: `${OSType}-${ArchType}`[] = [\n \"linux-x64\",\n \"linux-aarch64\",\n \"macosx-x64\",\n \"macosx-aarch64\",\n \"windows-x64\",\n] as const;\nexport type PlatformType = (typeof AllPlatforms)[number];\n\nexport function splitPlatform(platform: PlatformType): { os: OSType; arch: ArchType } {\n const parts = platform.split(\"-\");\n\n return {\n os: parts[0] as OSType,\n arch: parts[1] as ArchType,\n };\n}\n\nexport function joinPlatform(os: OSType, arch: ArchType): PlatformType {\n return `${os}-${arch}`;\n}\n\nexport function isPlatformSupported(os: OSType, arch: ArchType): boolean {\n return AllPlatforms.includes(`${os}-${arch}`);\n}\n\nexport function currentPlatform(): PlatformType {\n return `${currentOS()}-${currentArch()}`;\n}\n\nexport const AllSoftwareSources = [\"archive\", \"docker\"] as const; // add 'image', '<whatever>' here when supported\nexport type SoftwareSource = (typeof AllSoftwareSources)[number];\n\nexport type BuildMode = \"dev-local\" | \"dev-remote\" | \"release\";\n\nexport function isDevMode(mode: BuildMode): mode is \"dev-local\" | \"dev-remote\" {\n return mode === \"dev-local\" || mode === \"dev-remote\";\n}\n\nexport function producesRegistryDescriptor(mode: BuildMode): mode is \"dev-remote\" | \"release\" {\n return mode === \"dev-remote\" || mode === \"release\";\n}\n\n// Resolve a `--do`/`--no-do` (or PL_*_/PL_*_NO_ env) tri-state: explicit disable wins, then enable,\n// else the default.\nexport function shouldDoAction(opts: {\n default: boolean;\n enable?: boolean;\n disable?: boolean;\n}): boolean {\n if (opts.disable) return false;\n if (opts.enable) return true;\n return opts.default;\n}\n\nexport type artifactID = {\n package: string;\n name: string;\n};\n\nexport function artifactIDFromString(s: string): artifactID {\n const parts = s.split(\":\", 2);\n if (parts.length < 2) {\n throw CLIError(\n `string '${s}' is not an artifact ID (artifact ID format is <packageName>:<artifactName>)`,\n );\n }\n return {\n package: parts[0],\n name: parts[1],\n };\n}\n\nexport function artifactIDToString(a: artifactID): string {\n return `${a.package}:${a.name}`;\n}\n\nexport function indentText(txt: string, indent: string | number, skipFirstLine: boolean = false) {\n indent = typeof indent === \"number\" ? \" \".repeat(indent) : indent;\n\n return txt\n .split(\"\\n\")\n .map((line, index) => (index === 0 && skipFirstLine ? line : `${indent}${line}`))\n .join(\"\\n\");\n}\n\nexport const formatZodIssues = (\n issues: z.core.$ZodIssue[],\n i: string = \"\",\n p: PropertyKey[] = [],\n): string => {\n const _errors: string[] = [];\n\n const formatSubpath = (path: PropertyKey[], prefix: string = \"\") => {\n let pp = path.join(\".\");\n if (pp != \"\" && p.length > 0) pp = `.${pp}`;\n if (pp != \"\") pp = `${prefix}${pp}`;\n return pp;\n };\n\n const addItem = (item: string) => _errors.push(indentText(item, i));\n\n for (const issue of issues) {\n if (issue.code === \"invalid_union\") {\n addItem(`✖ Expected one of several possible values`);\n const path = formatSubpath(issue.path, \"\");\n addItem(` → at '${path}':`);\n for (const errGrp of issue.errors) {\n _errors.push(formatZodIssues(errGrp, `${i} `, [...p, ...issue.path]));\n }\n } else if (issue.code === \"invalid_element\" || issue.code === \"invalid_key\") {\n addItem(`✖ ${issue.code.replaceAll(\"_\", \" \")}:`);\n _errors.push(formatZodIssues(issue.issues, `${i} `, [...p, ...issue.path]));\n } else if (issue.code === \"invalid_type\") {\n const path = formatSubpath(issue.path, \" \");\n const prefix = `✖ (${issue.expected})${path}: `;\n const msg = indentText(issue.message, Math.min(prefix.length, 20), true);\n addItem(`${prefix}${msg}`);\n } else {\n const path = formatSubpath(issue.path, \" \");\n const prefix = `✖ (${issue.code.replaceAll(\"_\", \" \")})${path}: `;\n const msg = indentText(issue.message, Math.min(prefix.length, 20), true);\n addItem(`${prefix}${msg}`);\n }\n }\n\n return _errors.join(\"\\n\");\n};\n\n// User-facing CLI error. The top-level handler (bin/run.mjs) prints its\n// message without a stack trace and exits non-zero.\nexport class CLIErrorClass extends Error {\n constructor(msg: string | Error) {\n super(typeof msg === \"string\" ? msg : msg.message);\n this.name = \"CLIError\";\n }\n}\n\nexport function CLIError(msg: string | Error): CLIErrorClass {\n return new CLIErrorClass(msg);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.cjs","names":["createHash","fs","path","os"],"sources":["../../src/core/util.ts"],"sourcesContent":["import * as path from \"node:path\";\nimport * as os from \"node:os\";\nimport fs from \"node:fs\";\nimport type { Hash } from \"node:crypto\";\nimport { createHash } from \"node:crypto\";\nimport winston from \"winston\";\nimport type { z } from \"zod/v4\";\nimport * as envs from \"./envs\";\n\nexport const packageJsonName = \"package.json\";\nexport const softwareConfigName = \"package.json\";\n\nexport function assertNever(_a: never): never {\n throw new Error(`code logic error: assertNever() call for ${JSON.stringify(_a)}`);\n}\n\nexport function trimPrefix(str: string, prefix: string): string {\n if (str.startsWith(prefix)) {\n return str.slice(prefix.length);\n }\n return str;\n}\n\nexport function trimSuffix(str: string, suffix: string): string {\n if (str.endsWith(suffix)) {\n return str.slice(0, -suffix.length);\n }\n return str;\n}\n\nexport function hashDirMetaSync(folder: string, hasher?: Hash): Hash {\n const hash = hasher ? hasher : createHash(\"sha256\");\n const info = fs.readdirSync(folder, { withFileTypes: true });\n\n for (const item of info) {\n const fullPath = path.join(folder, item.name);\n\n if (item.isFile()) {\n const statInfo = fs.statSync(fullPath);\n const fileInfo = `${fullPath}:${statInfo.size}:${statInfo.mtimeMs}`;\n hash.update(fileInfo);\n } else if (item.isDirectory()) {\n hashDirMetaSync(fullPath, hash);\n }\n }\n\n return hash;\n}\n\nexport function hashDirSync(rootDir: string, hasher?: Hash, subdir?: string): Hash {\n const hash = hasher ? hasher : createHash(\"sha256\");\n const folder = path.join(rootDir, subdir ?? \".\");\n\n // Sort for a host-independent hash: readdir enumeration order is not guaranteed.\n const info = fs\n .readdirSync(folder, { withFileTypes: true })\n .sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));\n\n for (const item of info) {\n const relPath = path.join(subdir ?? \".\", item.name);\n const fullPath = path.join(folder, item.name);\n\n hash.update(relPath);\n\n if (item.isFile()) {\n const fileDescriptor = fs.openSync(fullPath, \"r\");\n const buffer = Buffer.alloc(65536);\n let bytesRead: number;\n\n while ((bytesRead = fs.readSync(fileDescriptor, buffer, 0, buffer.length, null)) !== 0) {\n hash.update(buffer.subarray(0, bytesRead));\n }\n\n fs.closeSync(fileDescriptor);\n } else if (item.isDirectory()) {\n // Keep rootDir fixed and pass the accumulated relPath so nested entries hash under their\n // full path from the root — otherwise `dirA/` + `file` collides with `dirA/file`.\n hashDirSync(rootDir, hash, relPath);\n }\n }\n\n return hash;\n}\n\n//\n// Creates all intermediate directories down to given <dirPath>.\n//\nexport function ensureDirsExist(dirPath: string) {\n if (fs.existsSync(dirPath)) {\n return;\n }\n const parentDir = path.dirname(dirPath);\n ensureDirsExist(parentDir);\n fs.mkdirSync(dirPath);\n}\n\nexport function findPackageRoot(logger: winston.Logger, startPath?: string): string {\n if (!startPath) {\n startPath = process.cwd();\n }\n logger.debug(`Detecting package root...`);\n const pkgRoot = searchPathUp(startPath, startPath, packageJsonName);\n logger.debug(` package root found at '${pkgRoot}'`);\n\n return pkgRoot;\n}\n\nexport function findNodeModules(logger: winston.Logger, startPath?: string): string {\n if (!startPath) {\n startPath = process.cwd();\n }\n logger.debug(`Detecting 'node_modules' directory...`);\n const nodeModules = searchPathUp(startPath, startPath, \"node_modules\");\n logger.debug(` 'node_modules' found at '${nodeModules}'`);\n\n return path.join(nodeModules, \"node_modules\");\n}\n\nexport function findInstalledModule(\n logger: winston.Logger,\n packageName: string,\n startPath?: string,\n): string {\n const nodeModules = findNodeModules(logger, startPath);\n const packagePath = path.resolve(nodeModules, packageName);\n\n if (!fs.existsSync(packagePath)) {\n throw CLIError(\n `package '${packageName}' not found in '${nodeModules}'. Did you forget to add it as a dependency?`,\n );\n }\n\n return packagePath;\n}\n\nfunction searchPathUp(startPath: string, pathToCheck: string, itemToCheck: string): string {\n const itemPath = path.resolve(pathToCheck, itemToCheck);\n\n if (fs.existsSync(itemPath)) {\n return pathToCheck;\n }\n\n const parentDir = path.dirname(pathToCheck);\n if (parentDir === pathToCheck || pathToCheck === \"\") {\n throw CLIError(\n `failed to find '${itemToCheck}' file in any of parent directories starting from '${startPath}'`,\n );\n }\n\n return searchPathUp(startPath, parentDir, itemToCheck);\n}\n\nexport function createLogger(level: string = \"debug\"): winston.Logger {\n if (envs.isCI() && envs.isRunnerDebug()) {\n level = \"debug\";\n }\n\n return winston.createLogger({\n level: level,\n\n format: winston.format.printf(({ level, message }) => {\n const indent = \" \".repeat(level.length + 2); // For ': ' after the level\n if (typeof message !== \"string\") {\n const messageJson = JSON.stringify(message);\n throw new Error(`logger message ${messageJson} is not a string`);\n }\n const indentedMessage = message\n .split(\"\\n\")\n .map((line: string, index: number) => (index === 0 ? line : indent + line))\n .join(\"\\n\");\n\n const colorize = (l: string) => winston.format.colorize().colorize(l, l);\n\n return `${colorize(level)}: ${indentedMessage}`;\n }),\n\n transports: [\n new winston.transports.Console({\n stderrLevels: [\"error\", \"warn\", \"info\", \"debug\"],\n handleExceptions: true,\n }),\n ],\n });\n}\n\nexport function rSplit(input: string, delimiter: string, limit?: number): string[] {\n const parts = input.split(delimiter);\n if (!limit || parts.length <= limit) {\n return parts;\n }\n\n return [parts.slice(0, -limit + 1).join(delimiter), ...parts.slice(-limit + 1)];\n}\n\nconst replaceDuplicateSlashes = new RegExp(\"//+\", \"g\");\nexport function urlJoin(url: string, appendPath: string): string {\n const u = new URL(url, \"file:/nonexistent-9672674c/\");\n if (u.protocol === \"file:\" && u.pathname.startsWith(\"/nonexistent-9672674c/\")) {\n throw new Error(`string '${url}' is not valid URL`);\n }\n\n u.pathname = u.pathname + \"/\" + appendPath;\n u.pathname = u.pathname.replaceAll(replaceDuplicateSlashes, \"/\");\n return u.toString();\n}\n\nexport function wrapErr(e: any, msg: string): any {\n if (!(e instanceof Error)) {\n return e;\n }\n\n const wrappedError = new Error(`${msg}: ${e.message}`);\n wrappedError.name = e.name;\n wrappedError.stack = e.stack;\n // Copy any additional custom properties\n Object.assign(wrappedError, e);\n return wrappedError;\n}\n\n/**\n * Converts any value to integer number 1 if value is truthful and 0 otherwice.\n * Provides simple way to count values that are defined in an object:\n * toInt(options.a) + toInt(options.b) + toInt(options.c) === 1\n * @param input: any\n * @returns number - '1' or '0'\n */\nexport function toInt(input: any): number {\n return input ? 1 : 0;\n}\n\nexport const OSes = [\"linux\", \"macosx\", \"windows\"] as const;\nexport type OSType = (typeof OSes)[number];\n\nexport function currentOS(): OSType {\n const platform = os.platform();\n switch (platform) {\n case \"darwin\":\n return \"macosx\";\n case \"linux\":\n return \"linux\";\n case \"win32\":\n return \"windows\";\n default:\n throw CLIError(\n `operating system '${platform}' is not currently supported by Platforma ecosystem. The list of OSes supported: ` +\n JSON.stringify(OSes),\n );\n }\n}\n\nexport const Arches = [\"x64\", \"aarch64\"] as const;\nexport type ArchType = (typeof Arches)[number];\n\nexport function currentArch(): ArchType {\n const arch = os.arch();\n switch (arch) {\n case \"arm64\":\n return \"aarch64\";\n case \"x64\":\n return \"x64\";\n default:\n throw CLIError(\n `processor architecture '${arch}' is not currently supported by Platforma ecosystem. The list of architectures supported: ` +\n JSON.stringify(Arches),\n );\n }\n}\n\n// Combinartions of OS and architecture, Platforma supports.\nexport const AllPlatforms: `${OSType}-${ArchType}`[] = [\n \"linux-x64\",\n \"linux-aarch64\",\n \"macosx-x64\",\n \"macosx-aarch64\",\n \"windows-x64\",\n] as const;\nexport type PlatformType = (typeof AllPlatforms)[number];\n\nexport function splitPlatform(platform: PlatformType): { os: OSType; arch: ArchType } {\n const parts = platform.split(\"-\");\n\n return {\n os: parts[0] as OSType,\n arch: parts[1] as ArchType,\n };\n}\n\nexport function joinPlatform(os: OSType, arch: ArchType): PlatformType {\n return `${os}-${arch}`;\n}\n\nexport function isPlatformSupported(os: OSType, arch: ArchType): boolean {\n return AllPlatforms.includes(`${os}-${arch}`);\n}\n\nexport function currentPlatform(): PlatformType {\n return `${currentOS()}-${currentArch()}`;\n}\n\nexport const AllSoftwareSources = [\"archive\", \"docker\"] as const; // add 'image', '<whatever>' here when supported\nexport type SoftwareSource = (typeof AllSoftwareSources)[number];\n\nexport type BuildMode = \"dev-local\" | \"dev-remote\" | \"release\";\n\nexport function isDevMode(mode: BuildMode): mode is \"dev-local\" | \"dev-remote\" {\n return mode === \"dev-local\" || mode === \"dev-remote\";\n}\n\nexport function producesRegistryDescriptor(mode: BuildMode): mode is \"dev-remote\" | \"release\" {\n return mode === \"dev-remote\" || mode === \"release\";\n}\n\n// Resolve a `--do`/`--no-do` (or PL_*_/PL_*_NO_ env) tri-state: explicit disable wins, then enable,\n// else the default.\nexport function shouldDoAction(opts: {\n default: boolean;\n enable?: boolean;\n disable?: boolean;\n}): boolean {\n if (opts.disable) return false;\n if (opts.enable) return true;\n return opts.default;\n}\n\nexport type artifactID = {\n package: string;\n name: string;\n};\n\nexport function artifactIDFromString(s: string): artifactID {\n const parts = s.split(\":\", 2);\n if (parts.length < 2) {\n throw CLIError(\n `string '${s}' is not an artifact ID (artifact ID format is <packageName>:<artifactName>)`,\n );\n }\n return {\n package: parts[0],\n name: parts[1],\n };\n}\n\nexport function artifactIDToString(a: artifactID): string {\n return `${a.package}:${a.name}`;\n}\n\nexport function indentText(txt: string, indent: string | number, skipFirstLine: boolean = false) {\n indent = typeof indent === \"number\" ? \" \".repeat(indent) : indent;\n\n return txt\n .split(\"\\n\")\n .map((line, index) => (index === 0 && skipFirstLine ? line : `${indent}${line}`))\n .join(\"\\n\");\n}\n\nexport const formatZodIssues = (\n issues: z.core.$ZodIssue[],\n i: string = \"\",\n p: PropertyKey[] = [],\n): string => {\n const _errors: string[] = [];\n\n const formatSubpath = (path: PropertyKey[], prefix: string = \"\") => {\n let pp = path.join(\".\");\n if (pp != \"\" && p.length > 0) pp = `.${pp}`;\n if (pp != \"\") pp = `${prefix}${pp}`;\n return pp;\n };\n\n const addItem = (item: string) => _errors.push(indentText(item, i));\n\n for (const issue of issues) {\n if (issue.code === \"invalid_union\") {\n addItem(`✖ Expected one of several possible values`);\n const path = formatSubpath(issue.path, \"\");\n addItem(` → at '${path}':`);\n for (const errGrp of issue.errors) {\n _errors.push(formatZodIssues(errGrp, `${i} `, [...p, ...issue.path]));\n }\n } else if (issue.code === \"invalid_element\" || issue.code === \"invalid_key\") {\n addItem(`✖ ${issue.code.replaceAll(\"_\", \" \")}:`);\n _errors.push(formatZodIssues(issue.issues, `${i} `, [...p, ...issue.path]));\n } else if (issue.code === \"invalid_type\") {\n const path = formatSubpath(issue.path, \" \");\n const prefix = `✖ (${issue.expected})${path}: `;\n const msg = indentText(issue.message, Math.min(prefix.length, 20), true);\n addItem(`${prefix}${msg}`);\n } else {\n const path = formatSubpath(issue.path, \" \");\n const prefix = `✖ (${issue.code.replaceAll(\"_\", \" \")})${path}: `;\n const msg = indentText(issue.message, Math.min(prefix.length, 20), true);\n addItem(`${prefix}${msg}`);\n }\n }\n\n return _errors.join(\"\\n\");\n};\n\n// User-facing CLI error. The top-level handler (bin/run.mjs) prints its\n// message without a stack trace and exits non-zero.\nexport class CLIErrorClass extends Error {\n constructor(msg: string | Error) {\n super(typeof msg === \"string\" ? msg : msg.message);\n this.name = \"CLIError\";\n }\n}\n\nexport function CLIError(msg: string | Error): CLIErrorClass {\n return new CLIErrorClass(msg);\n}\n"],"mappings":"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"}
|
package/dist/core/util.d.ts
CHANGED
package/dist/core/util.js
CHANGED
|
@@ -5,7 +5,7 @@ import * as path$1 from "node:path";
|
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
import * as os from "node:os";
|
|
7
7
|
import winston from "winston";
|
|
8
|
-
|
|
8
|
+
// src/core/util.ts
|
|
9
9
|
var util_exports = /* @__PURE__ */ __exportAll({
|
|
10
10
|
AllPlatforms: () => AllPlatforms,
|
|
11
11
|
AllSoftwareSources: () => AllSoftwareSources,
|
|
@@ -284,7 +284,6 @@ var CLIErrorClass = class extends Error {
|
|
|
284
284
|
function CLIError(msg) {
|
|
285
285
|
return new CLIErrorClass(msg);
|
|
286
286
|
}
|
|
287
|
-
//#endregion
|
|
288
287
|
export { AllPlatforms, AllSoftwareSources, Arches, CLIError, CLIErrorClass, OSes, artifactIDFromString, artifactIDToString, assertNever, createLogger, currentArch, currentOS, currentPlatform, ensureDirsExist, findInstalledModule, findNodeModules, findPackageRoot, formatZodIssues, hashDirMetaSync, hashDirSync, indentText, isDevMode, isPlatformSupported, joinPlatform, packageJsonName, producesRegistryDescriptor, rSplit, shouldDoAction, softwareConfigName, splitPlatform, toInt, trimPrefix, trimSuffix, urlJoin, util_exports, wrapErr };
|
|
289
288
|
|
|
290
289
|
//# sourceMappingURL=util.js.map
|
package/dist/defaults.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/defaults.ts
|
|
2
2
|
var defaults_exports = /* @__PURE__ */ require("./_virtual/_rolldown/runtime.cjs").__exportAll({
|
|
3
3
|
AWS_DEV_PROFILE: () => AWS_DEV_PROFILE,
|
|
4
4
|
BIN_REGISTRY_DOWNLOAD_URL: () => BIN_REGISTRY_DOWNLOAD_URL,
|
|
@@ -41,7 +41,6 @@ const DEV_DOCKER_REGISTRY = "public.ecr.aws/miresearch/pl-containers";
|
|
|
41
41
|
const DEV_DOCKER_PUSH_TARGET = `ecr://${DEV_DOCKER_REGISTRY}`;
|
|
42
42
|
const AWS_DEV_PROFILE = "research-poweruser";
|
|
43
43
|
const DOCKER_BUILD_PLATFORM = "linux/amd64";
|
|
44
|
-
//#endregion
|
|
45
44
|
exports.AWS_DEV_PROFILE = AWS_DEV_PROFILE;
|
|
46
45
|
exports.BIN_REGISTRY_DOWNLOAD_URL = BIN_REGISTRY_DOWNLOAD_URL;
|
|
47
46
|
exports.BIN_REGISTRY_NAME = BIN_REGISTRY_NAME;
|
package/dist/defaults.d.ts
CHANGED
|
@@ -22,6 +22,5 @@ export declare const DEV_DOCKER_REGISTRY = "public.ecr.aws/miresearch/pl-contain
|
|
|
22
22
|
export declare const DEV_DOCKER_PUSH_TARGET = "ecr://public.ecr.aws/miresearch/pl-containers";
|
|
23
23
|
export declare const AWS_DEV_PROFILE = "research-poweruser";
|
|
24
24
|
export declare const DOCKER_BUILD_PLATFORM = "linux/amd64";
|
|
25
|
-
//#endregion
|
|
26
25
|
export { defaults_d_exports };
|
|
27
26
|
//# sourceMappingURL=defaults.d.ts.map
|
package/dist/defaults.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
2
|
+
// src/defaults.ts
|
|
3
3
|
var defaults_exports = /* @__PURE__ */ __exportAll({
|
|
4
4
|
AWS_DEV_PROFILE: () => AWS_DEV_PROFILE,
|
|
5
5
|
BIN_REGISTRY_DOWNLOAD_URL: () => BIN_REGISTRY_DOWNLOAD_URL,
|
|
@@ -42,7 +42,6 @@ const DEV_DOCKER_REGISTRY = "public.ecr.aws/miresearch/pl-containers";
|
|
|
42
42
|
const DEV_DOCKER_PUSH_TARGET = `ecr://${DEV_DOCKER_REGISTRY}`;
|
|
43
43
|
const AWS_DEV_PROFILE = "research-poweruser";
|
|
44
44
|
const DOCKER_BUILD_PLATFORM = "linux/amd64";
|
|
45
|
-
//#endregion
|
|
46
45
|
export { AWS_DEV_PROFILE, BIN_REGISTRY_DOWNLOAD_URL, BIN_REGISTRY_NAME, CONDA_DATA_LOCATION, CONDA_DOCKER_BASE_IMAGE, CONDA_FROZEN_ENV_SPEC_FILE, CONDA_MICROMAMBA_VERSION, CONDA_SOURCE_ENV_SPEC_FILE, DEV_BINARY_UPLOAD_TARGET, DEV_BIN_REGISTRY_NAME, DEV_DOCKER_PUSH_TARGET, DEV_DOCKER_REGISTRY, DOCKER_BUILD_PLATFORM, DOCKER_DOCKERFILE, DOCKER_PLACEHOLDER_PKG, DOCKER_REGISTRY, NO_SOFTWARE_PLACEHOLDER, PYTHON_DOCKER_BASE_IMAGE, PYTHON_REQUIREMENTS_FILE, defaults_exports };
|
|
47
46
|
|
|
48
47
|
//# sourceMappingURL=defaults.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -5,11 +5,10 @@ const require_util = require("./core/util.cjs");
|
|
|
5
5
|
const require_docker_coverage = require("./core/docker-coverage.cjs");
|
|
6
6
|
const require_core = require("./core/core.cjs");
|
|
7
7
|
const require_push_guard = require("./core/push-guard.cjs");
|
|
8
|
-
|
|
8
|
+
// src/index.ts
|
|
9
9
|
function createBuilder(logger, opts) {
|
|
10
10
|
return new require_core.Core(logger, opts);
|
|
11
11
|
}
|
|
12
|
-
//#endregion
|
|
13
12
|
exports.assertDockerCoverage = require_docker_coverage.assertDockerCoverage;
|
|
14
13
|
exports.assertDockerPushIntent = require_push_guard.assertDockerPushIntent;
|
|
15
14
|
exports.createBuilder = createBuilder;
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { defaults_d_exports } from "./defaults.js";
|
|
|
5
5
|
import { PushIntent, assertDockerPushIntent } from "./core/push-guard.js";
|
|
6
6
|
import { DockerCoverage, assertDockerCoverage, descriptorHasNoDockerVariant, softwareEntrypointsWithoutDocker } from "./core/docker-coverage.js";
|
|
7
7
|
import winston from "winston";
|
|
8
|
-
//#region src/index.d.ts
|
|
9
8
|
/** The logger the engine and its callers pass around. */
|
|
10
9
|
export type Logger = winston.Logger;
|
|
11
10
|
/**
|
|
@@ -18,6 +17,5 @@ export type Builder = Pick<Core, "buildMode" | "targetPlatform" | "allPlatforms"
|
|
|
18
17
|
export declare function createBuilder(logger: winston.Logger, opts?: {
|
|
19
18
|
packageRoot?: string;
|
|
20
19
|
}): Builder;
|
|
21
|
-
//#endregion
|
|
22
20
|
export { type DockerCoverage, type PushIntent, assertDockerCoverage, assertDockerPushIntent, defaults_d_exports as defaults, descriptorHasNoDockerVariant, envs_d_exports as envs, softwareEntrypointsWithoutDocker, util_d_exports as util };
|
|
23
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;YAeY,SAAS,QAAQ;;;;;;;YAQjB,UAAU,KACpB;wBAiBc,cAAc,QAAQ,QAAQ,QAAQ;EAAS;IAAyB"}
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,10 @@ import { util_exports } from "./core/util.js";
|
|
|
4
4
|
import { assertDockerCoverage, descriptorHasNoDockerVariant, softwareEntrypointsWithoutDocker } from "./core/docker-coverage.js";
|
|
5
5
|
import { Core } from "./core/core.js";
|
|
6
6
|
import { assertDockerPushIntent } from "./core/push-guard.js";
|
|
7
|
-
|
|
7
|
+
// src/index.ts
|
|
8
8
|
function createBuilder(logger, opts) {
|
|
9
9
|
return new Core(logger, opts);
|
|
10
10
|
}
|
|
11
|
-
//#endregion
|
|
12
11
|
export { assertDockerCoverage, assertDockerPushIntent, createBuilder, defaults_exports as defaults, descriptorHasNoDockerVariant, envs_exports as envs, softwareEntrypointsWithoutDocker, util_exports as util };
|
|
13
12
|
|
|
14
13
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/package-builder-lib",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "MiLaboratories Platforma Package builder engine (library)",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -21,26 +21,31 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@aws-sdk/client-s3": "3.
|
|
25
|
-
"@aws-sdk/lib-storage": "3.
|
|
24
|
+
"@aws-sdk/client-s3": "3.1157.0",
|
|
25
|
+
"@aws-sdk/lib-storage": "3.1157.0",
|
|
26
|
+
"@milaboratories/resolve-helper": "1.1.3",
|
|
26
27
|
"archiver": "^7.0.1",
|
|
27
|
-
"undici": "~7.
|
|
28
|
+
"undici": "~7.30.1",
|
|
28
29
|
"winston": "^3.17.0",
|
|
29
|
-
"yaml": "^2.
|
|
30
|
-
"zod": "~3.25.76"
|
|
31
|
-
"@milaboratories/resolve-helper": "1.1.3"
|
|
30
|
+
"yaml": "^2.9.1",
|
|
31
|
+
"zod": "~3.25.76"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@platforma-open/milaboratories.runenv-python-3": "1.13.2",
|
|
35
|
-
"@types/archiver": "^6.0.3",
|
|
36
|
-
"@types/node": "~24.5.2",
|
|
37
|
-
"@vitest/coverage-istanbul": "^4.1.3",
|
|
38
|
-
"typescript": "7.0.2",
|
|
39
|
-
"vite": "^8.0.6",
|
|
40
|
-
"vitest": "^4.1.3",
|
|
41
34
|
"@milaboratories/build-configs": "2.0.2",
|
|
35
|
+
"@milaboratories/ts-builder": "1.7.3",
|
|
42
36
|
"@milaboratories/ts-configs": "1.4.0",
|
|
43
|
-
"@milaboratories
|
|
37
|
+
"@platforma-open/milaboratories.runenv-python-3": "1.16.1",
|
|
38
|
+
"@types/archiver": "^6.0.3",
|
|
39
|
+
"@types/node": "~24.19.2",
|
|
40
|
+
"@vitest/coverage-istanbul": "^4.1.12",
|
|
41
|
+
"typescript": "7.0.2",
|
|
42
|
+
"vite": "^8.3.5",
|
|
43
|
+
"vitest": "^4.1.12"
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/milaboratory/platforma.git",
|
|
48
|
+
"directory": "lib/node/package-builder-lib"
|
|
44
49
|
},
|
|
45
50
|
"scripts": {
|
|
46
51
|
"build": "ts-builder build --target node",
|