screw-up 0.14.0 → 0.16.0

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/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 0.14.0
3
+ * version: 0.16.0
4
4
  * description: Simply package metadata inserter on Vite plugin
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/screw-up.git
8
- * git.commit.hash: f1871df4c43aee9ab389a6ab1b2769b32322793b
8
+ * git.commit.hash: c5c68d39d1ab116299338d31f0f208c0eb49be5c
9
9
  */
10
10
 
11
- import { screwUp } from './vite-plugin.js';
12
- export * from './types.js';
11
+ import { screwUp } from './vite-plugin';
12
+ export * from './types';
13
13
  export default screwUp;
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,cAAc,YAAY,CAAC;AAC3B,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,cAAc,SAAS,CAAC;AACxB,eAAe,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 0.14.0
3
+ * version: 0.16.0
4
4
  * description: Simply package metadata inserter on Vite plugin
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/screw-up.git
8
- * git.commit.hash: f1871df4c43aee9ab389a6ab1b2769b32322793b
8
+ * git.commit.hash: c5c68d39d1ab116299338d31f0f208c0eb49be5c
9
9
  */
10
10
  import { readdir, readFile, writeFile, mkdir } from "fs/promises";
11
11
  import { join, dirname } from "path";
12
- import { r as resolvePackageMetadata, c as createConsoleLogger } from "./internal-BgCvktPU.js";
12
+ import { c as createConsoleLogger, r as resolvePackageMetadata, g as getFetchGitMetadata } from "./analyzer-CU8VuwpB.js";
13
13
  const generateBanner = (metadata, outputKeys) => {
14
14
  const parts = [];
15
15
  for (const key of outputKeys) {
@@ -50,7 +50,6 @@ const generateMetadataFile = (metadata, outputKeys) => {
50
50
  return lines.join("\n");
51
51
  };
52
52
  const screwUp = (options = {}) => {
53
- const logger = createConsoleLogger();
54
53
  const {
55
54
  outputKeys = ["name", "version", "description", "author", "license", "repository.url", "git.commit.hash"],
56
55
  assetFilters = ["\\.d\\.ts$"],
@@ -62,13 +61,15 @@ const screwUp = (options = {}) => {
62
61
  insertMetadataBanner = true
63
62
  } = options;
64
63
  const assetFiltersRegex = assetFilters.map((filter) => new RegExp(filter));
64
+ let logger = createConsoleLogger();
65
65
  let banner;
66
66
  let metadata;
67
67
  let projectRoot;
68
+ let fetchGitMetadata = () => Promise.resolve({});
68
69
  const generateMetadataSourceFile = async () => {
69
70
  const result = await resolvePackageMetadata(
70
71
  projectRoot,
71
- checkWorkingDirectoryStatus,
72
+ fetchGitMetadata,
72
73
  alwaysOverrideVersionFromGit,
73
74
  logger
74
75
  );
@@ -88,11 +89,25 @@ const screwUp = (options = {}) => {
88
89
  return {
89
90
  name: "screw-up",
90
91
  apply: "build",
91
- // Ensure screw-up runs before other plugins (especially vite-plugin-dts)
92
+ // Ensure screw-up runs before other plugins
93
+ // (especially vite-plugin-dts, avoid packageMetadata.ts is not found)
92
94
  enforce: "pre",
93
95
  // Configuration resolved phase
94
96
  configResolved: async (config) => {
97
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
95
98
  projectRoot = config.root;
99
+ const _logger = {
100
+ debug: (_d = (_c = (_a = config == null ? void 0 : config.logger) == null ? void 0 : _a.info) != null ? _c : (_b = config == null ? void 0 : config.customLogger) == null ? void 0 : _b.info) != null ? _d : logger.debug,
101
+ info: (_h = (_g = (_e = config == null ? void 0 : config.logger) == null ? void 0 : _e.info) != null ? _g : (_f = config == null ? void 0 : config.customLogger) == null ? void 0 : _f.info) != null ? _h : logger.info,
102
+ warn: (_l = (_k = (_i = config == null ? void 0 : config.logger) == null ? void 0 : _i.warn) != null ? _k : (_j = config == null ? void 0 : config.customLogger) == null ? void 0 : _j.warn) != null ? _l : logger.warn,
103
+ error: (_p = (_o = (_m = config == null ? void 0 : config.logger) == null ? void 0 : _m.error) != null ? _o : (_n = config == null ? void 0 : config.customLogger) == null ? void 0 : _n.error) != null ? _p : logger.error
104
+ };
105
+ logger = _logger;
106
+ fetchGitMetadata = getFetchGitMetadata(
107
+ projectRoot,
108
+ checkWorkingDirectoryStatus,
109
+ logger
110
+ );
96
111
  await generateMetadataSourceFile();
97
112
  },
98
113
  // Build start phase
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/vite-plugin.ts"],"sourcesContent":["// screw-up - Easy package metadata inserter on Vite plugin\n// Copyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)\n// Under MIT.\n// https://github.com/kekyo/screw-up/\n\nimport type { Plugin } from 'vite';\nimport { readFile, writeFile, readdir, mkdir } from 'fs/promises';\nimport { join, dirname } from 'path';\nimport { resolvePackageMetadata, createConsoleLogger } from './internal.js';\nimport { ScrewUpOptions, PackageMetadata } from './types.js';\n\n/**\n * Generate banner string from package.json metadata\n * @param metadata - Package metadata\n * @param outputKeys - Array of keys to output in specified order\n * @returns Banner string\n */\nexport const generateBanner = (metadata: PackageMetadata, outputKeys: string[]): string => {\n const parts: string[] = [];\n \n for (const key of outputKeys) {\n const value = metadata[key];\n if (value) {\n parts.push(`${key}: ${value}`);\n }\n }\n \n return parts.length > 0 ? `/*!\\n * ${parts.join('\\n * ')}\\n */` : '';\n};\n\n/**\n * Insert banner header at appropriate position considering shebang\n * @param content - The content to insert banner into\n * @param banner - The banner header to insert\n * @returns Content with banner header inserted\n */\nconst insertBannerHeader = (content: string, banner: string): string => {\n const lines = content.split('\\n');\n \n // Check if first line is shebang\n if (lines.length > 0 && lines[0].startsWith('#!')) {\n // Insert banner after shebang line\n return lines[0] + '\\n' + banner + '\\n' + lines.slice(1).join('\\n');\n } else {\n // Insert banner at the beginning\n return banner + '\\n' + content;\n }\n};\n\n/**\n * Convert string key to valid TypeScript identifier\n * @param key - The key to convert\n * @returns Valid TypeScript identifier\n */\nconst sanitizeKey = (key: string): string => {\n // Replace dots and other invalid characters with underscores\n return key.replace(/[^a-zA-Z0-9_]/g, '_').replace(/^(\\d)/, '_$1');\n};\n\n/**\n * Generate TypeScript metadata file content from package metadata\n * @param metadata - Package metadata\n * @param outputKeys - Array of keys to output\n * @returns TypeScript file content\n */\nconst generateMetadataFile = (metadata: PackageMetadata, outputKeys: string[]): string => {\n const lines: string[] = [];\n \n lines.push('// This file is auto-generated by screw-up plugin');\n lines.push('// Do not edit manually');\n lines.push('');\n \n for (const key of outputKeys) {\n const value = metadata[key];\n if (value) {\n const sanitizedKey = sanitizeKey(key);\n const escapedValue = JSON.stringify(value);\n lines.push(`export const ${sanitizedKey} = ${escapedValue};`);\n }\n }\n \n lines.push('');\n \n return lines.join('\\n');\n};\n\n/////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Vite plugin that adds banner to the bundled code\n * @param options - Plugin options\n * @returns Vite plugin\n */\nexport const screwUp = (options: ScrewUpOptions = {}): Plugin => {\n const logger = createConsoleLogger();\n const {\n outputKeys = ['name', 'version', 'description', 'author', 'license', 'repository.url', 'git.commit.hash'],\n assetFilters = ['\\\\.d\\\\.ts$'],\n outputMetadataFile = false,\n outputMetadataFilePath = 'src/generated/packageMetadata.ts',\n outputMetadataKeys = ['name', 'version', 'description', 'author', 'license', 'repository.url', 'git.commit.hash'],\n checkWorkingDirectoryStatus = true,\n alwaysOverrideVersionFromGit = true,\n insertMetadataBanner = true} = options;\n\n const assetFiltersRegex = assetFilters.map(filter => new RegExp(filter));\n let banner: string;\n let metadata: any;\n let projectRoot: string;\n\n // Generate and write metadata TypeScript file\n const generateMetadataSourceFile = async () => {\n // Resolve package metadata\n const result = await resolvePackageMetadata(\n projectRoot, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, logger);\n metadata = result.metadata;\n // Regenerate banner with updated metadata\n banner = generateBanner(metadata, outputKeys);\n if (outputMetadataFile) {\n const metadataSourceContent = generateMetadataFile(metadata, outputMetadataKeys);\n const metadataSourcePath = join(projectRoot, outputMetadataFilePath);\n \n try {\n // Ensure directory exists\n await mkdir(dirname(metadataSourcePath), { recursive: true });\n // Write metadata source file\n await writeFile(metadataSourcePath, metadataSourceContent);\n } catch (error) {\n logger.warn(`[screw-up]: Failed to write metadata source file: ${metadataSourcePath}: ${error}`);\n }\n }\n };\n\n return {\n name: 'screw-up',\n apply: 'build',\n // Ensure screw-up runs before other plugins (especially vite-plugin-dts)\n enforce: 'pre',\n // Configuration resolved phase\n configResolved: async config => {\n // Save project root\n projectRoot = config.root;\n // Generate metadata TypeScript file early to ensure it's available during TypeScript compilation\n await generateMetadataSourceFile();\n },\n // Build start phase\n buildStart: async () => {\n // Re-resolve package metadata to capture any changes since configResolved\n // Update metadata TypeScript file with latest data\n await generateMetadataSourceFile();\n },\n // Generate bundle phase\n generateBundle: (_options, bundle) => {\n // Add banner to each output file if enabled\n if (insertMetadataBanner) {\n for (const fileName in bundle) {\n const chunk = bundle[fileName];\n if (chunk.type === 'chunk') {\n chunk.code = insertBannerHeader(chunk.code, banner);\n } else if (chunk.type === 'asset' && assetFiltersRegex.some(filter => filter.test(fileName))) {\n if (typeof chunk.source === 'string') {\n chunk.source = insertBannerHeader(chunk.source, banner + '\\n'); // insert more blank line\n }\n }\n }\n }\n },\n // Write bundle phase\n writeBundle: async options => {\n // Handle files written by other plugins (like vite-plugin-dts) if banner insertion is enabled\n if (!insertMetadataBanner || !options.dir) return;\n\n try {\n // Read all files in the output directory\n const files = await readdir(options.dir, { recursive: true });\n\n // Iterate over all files\n for (const file of files) {\n const filePath = join(options.dir, file);\n\n // Check if the file is target asset file\n if (assetFiltersRegex.some(filter => filter.test(file))) {\n try {\n // Read the asset file\n const content = await readFile(filePath, 'utf-8');\n // Append banner to the asset file if it doesn't already contain it\n if (!content.includes(banner)) {\n await writeFile(filePath, insertBannerHeader(content, banner + '\\n'));\n }\n } catch (error) {\n // Skip files that can't be read/written\n }\n }\n }\n } catch (error) {\n // Skip files that can't be read/written\n }\n }\n };\n};\n"],"names":["options"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/vite-plugin.ts"],"sourcesContent":["// screw-up - Easy package metadata inserter on Vite plugin\n// Copyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)\n// Under MIT.\n// https://github.com/kekyo/screw-up/\n\nimport type { Plugin } from 'vite';\nimport { readFile, writeFile, readdir, mkdir } from 'fs/promises';\nimport { join, dirname } from 'path';\nimport { resolvePackageMetadata, createConsoleLogger } from './internal';\nimport { ScrewUpOptions, PackageMetadata } from './types';\nimport { getFetchGitMetadata } from './analyzer';\n\n/**\n * Generate banner string from package.json metadata\n * @param metadata - Package metadata\n * @param outputKeys - Array of keys to output in specified order\n * @returns Banner string\n */\nexport const generateBanner = (metadata: PackageMetadata, outputKeys: string[]): string => {\n const parts: string[] = [];\n \n for (const key of outputKeys) {\n const value = metadata[key];\n if (value) {\n parts.push(`${key}: ${value}`);\n }\n }\n \n return parts.length > 0 ? `/*!\\n * ${parts.join('\\n * ')}\\n */` : '';\n};\n\n/**\n * Insert banner header at appropriate position considering shebang\n * @param content - The content to insert banner into\n * @param banner - The banner header to insert\n * @returns Content with banner header inserted\n */\nconst insertBannerHeader = (content: string, banner: string): string => {\n const lines = content.split('\\n');\n \n // Check if first line is shebang\n if (lines.length > 0 && lines[0].startsWith('#!')) {\n // Insert banner after shebang line\n return lines[0] + '\\n' + banner + '\\n' + lines.slice(1).join('\\n');\n } else {\n // Insert banner at the beginning\n return banner + '\\n' + content;\n }\n};\n\n/**\n * Convert string key to valid TypeScript identifier\n * @param key - The key to convert\n * @returns Valid TypeScript identifier\n */\nconst sanitizeKey = (key: string): string => {\n // Replace dots and other invalid characters with underscores\n return key.replace(/[^a-zA-Z0-9_]/g, '_').replace(/^(\\d)/, '_$1');\n};\n\n/**\n * Generate TypeScript metadata file content from package metadata\n * @param metadata - Package metadata\n * @param outputKeys - Array of keys to output\n * @returns TypeScript file content\n */\nconst generateMetadataFile = (metadata: PackageMetadata, outputKeys: string[]): string => {\n const lines: string[] = [];\n \n lines.push('// This file is auto-generated by screw-up plugin');\n lines.push('// Do not edit manually');\n lines.push('');\n \n for (const key of outputKeys) {\n const value = metadata[key];\n if (value) {\n const sanitizedKey = sanitizeKey(key);\n const escapedValue = JSON.stringify(value);\n lines.push(`export const ${sanitizedKey} = ${escapedValue};`);\n }\n }\n \n lines.push('');\n \n return lines.join('\\n');\n};\n\n/////////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Vite plugin that adds banner to the bundled code\n * @param options - Plugin options\n * @returns Vite plugin\n */\nexport const screwUp = (options: ScrewUpOptions = {}): Plugin => {\n const {\n outputKeys = ['name', 'version', 'description', 'author', 'license', 'repository.url', 'git.commit.hash'],\n assetFilters = ['\\\\.d\\\\.ts$'],\n outputMetadataFile = false,\n outputMetadataFilePath = 'src/generated/packageMetadata.ts',\n outputMetadataKeys = ['name', 'version', 'description', 'author', 'license', 'repository.url', 'git.commit.hash'],\n checkWorkingDirectoryStatus = true,\n alwaysOverrideVersionFromGit = true,\n insertMetadataBanner = true} = options;\n\n const assetFiltersRegex = assetFilters.map(filter => new RegExp(filter));\n\n let logger = createConsoleLogger();\n let banner: string;\n let metadata: any;\n let projectRoot: string;\n let fetchGitMetadata = () => Promise.resolve<any>({});\n\n // Generate and write metadata TypeScript file\n const generateMetadataSourceFile = async () => {\n // Resolve package metadata\n const result = await resolvePackageMetadata(\n projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, logger);\n metadata = result.metadata;\n // Regenerate banner with updated metadata\n banner = generateBanner(metadata, outputKeys);\n if (outputMetadataFile) {\n const metadataSourceContent = generateMetadataFile(metadata, outputMetadataKeys);\n const metadataSourcePath = join(projectRoot, outputMetadataFilePath);\n\n try {\n // Ensure directory exists\n await mkdir(dirname(metadataSourcePath), { recursive: true });\n // Write metadata source file\n await writeFile(metadataSourcePath, metadataSourceContent);\n } catch (error) {\n logger.warn(`[screw-up]: Failed to write metadata source file: ${metadataSourcePath}: ${error}`);\n }\n }\n };\n\n return {\n name: 'screw-up',\n apply: 'build',\n // Ensure screw-up runs before other plugins\n // (especially vite-plugin-dts, avoid packageMetadata.ts is not found)\n enforce: 'pre',\n // Configuration resolved phase\n configResolved: async config => {\n // Save project root\n projectRoot = config.root;\n const _logger = {\n debug: config?.logger?.info ?? config?.customLogger?.info ?? logger.debug,\n info: config?.logger?.info ?? config?.customLogger?.info ?? logger.info,\n warn: config?.logger?.warn ?? config?.customLogger?.warn ?? logger.warn,\n error: config?.logger?.error ?? config?.customLogger?.error ?? logger.error,\n };\n logger = _logger;\n // Get Git metadata fetcher function\n fetchGitMetadata = getFetchGitMetadata(\n projectRoot, checkWorkingDirectoryStatus, logger);\n // Generate metadata TypeScript file early to ensure it's available during TypeScript compilation\n await generateMetadataSourceFile();\n },\n // Build start phase\n buildStart: async () => {\n // Re-resolve package metadata to capture any changes since configResolved\n // Update metadata TypeScript file with latest data\n await generateMetadataSourceFile();\n },\n // Generate bundle phase\n generateBundle: (_options, bundle) => {\n // Add banner to each output file if enabled\n if (insertMetadataBanner) {\n for (const fileName in bundle) {\n const chunk = bundle[fileName];\n if (chunk.type === 'chunk') {\n chunk.code = insertBannerHeader(chunk.code, banner);\n } else if (chunk.type === 'asset' && assetFiltersRegex.some(filter => filter.test(fileName))) {\n if (typeof chunk.source === 'string') {\n chunk.source = insertBannerHeader(chunk.source, banner + '\\n'); // insert more blank line\n }\n }\n }\n }\n },\n // Write bundle phase\n writeBundle: async options => {\n // Handle files written by other plugins (like vite-plugin-dts) if banner insertion is enabled\n if (!insertMetadataBanner || !options.dir) return;\n\n try {\n // Read all files in the output directory\n const files = await readdir(options.dir, { recursive: true });\n\n // Iterate over all files\n for (const file of files) {\n const filePath = join(options.dir, file);\n\n // Check if the file is target asset file\n if (assetFiltersRegex.some(filter => filter.test(file))) {\n try {\n // Read the asset file\n const content = await readFile(filePath, 'utf-8');\n // Append banner to the asset file if it doesn't already contain it\n if (!content.includes(banner)) {\n await writeFile(filePath, insertBannerHeader(content, banner + '\\n'));\n }\n } catch (error) {\n // Skip files that can't be read/written\n }\n }\n }\n } catch (error) {\n // Skip files that can't be read/written\n }\n }\n };\n};\n"],"names":["options"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 0.14.0
3
+ * version: 0.16.0
4
4
  * description: Simply package metadata inserter on Vite plugin
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/screw-up.git
8
- * git.commit.hash: f1871df4c43aee9ab389a6ab1b2769b32322793b
8
+ * git.commit.hash: c5c68d39d1ab116299338d31f0f208c0eb49be5c
9
9
  */
10
10
 
11
- import { PackageMetadata } from './types.js';
11
+ import { PackageMetadata } from './types';
12
12
  /**
13
13
  * Logger interface
14
14
  */
@@ -64,10 +64,13 @@ export declare const findWorkspaceRoot: (startPath: string, logger: Logger) => P
64
64
  /**
65
65
  * Collect workspace sibling projects
66
66
  * @param workspaceRoot - Workspace root directory
67
+ * @param fetchGitMetadata - Git metadata fetcher
68
+ * @param alwaysOverrideVersionFromGit - Always override version from Git
69
+ * @param inheritableFields - Package metadata fields that should be inherited from parent
67
70
  * @param logger - Logger instance
68
71
  * @returns Promise resolving to map of sibling projects (name -> WorkspaceSibling)
69
72
  */
70
- export declare const collectWorkspaceSiblings: (workspaceRoot: string, logger: Logger) => Promise<Map<string, WorkspaceSibling>>;
73
+ export declare const collectWorkspaceSiblings: (workspaceRoot: string, fetchGitMetadata: () => Promise<any>, alwaysOverrideVersionFromGit: boolean, inheritableFields: Set<string>, logger: Logger) => Promise<Map<string, WorkspaceSibling>>;
71
74
  /**
72
75
  * Replace "*" wildcards in peerDependencies with actual workspace sibling versions
73
76
  * @param packageJson - Package.json object to modify
@@ -78,34 +81,33 @@ export declare const collectWorkspaceSiblings: (workspaceRoot: string, logger: L
78
81
  export declare const replacePeerDependenciesWildcards: (packageJson: any, siblings: Map<string, WorkspaceSibling>, versionPrefix: string) => any;
79
82
  /**
80
83
  * Merge package metadata with inheritance (child overrides parent)
81
- * @param checkWorkingDirectoryStatus - Check working directory status to increase version
84
+ * @param fetchGitMetadata - Git metadata fetcher
82
85
  * @param alwaysOverrideVersionFromGit - Always override version from Git
83
86
  * @param sourceMap - Map to track field sources
84
87
  * @param parentMetadata - Parent package metadata
85
88
  * @param childMetadata - Child package metadata
86
89
  * @param parentSourceDir - Parent package.json directory (for source tracking)
87
90
  * @param childSourceDir - Child package.json directory (for source tracking)
88
- * @param repositoryPath - Path to Git repository root
89
91
  * @returns Merged package metadata
90
92
  */
91
- export declare const mergePackageMetadata: (checkWorkingDirectoryStatus: boolean, alwaysOverrideVersionFromGit: boolean, sourceMap: Map<string, string>, logger: Logger, parentMetadata: PackageMetadata, childMetadata: PackageMetadata, parentSourceDir: string, childSourceDir: string, repositoryPath: string) => Promise<PackageMetadata>;
93
+ export declare const mergePackageMetadata: (fetchGitMetadata: () => Promise<any>, alwaysOverrideVersionFromGit: boolean, sourceMap: Map<string, string>, parentMetadata: PackageMetadata, childMetadata: PackageMetadata, parentSourceDir: string, childSourceDir: string, _repositoryPath: string) => Promise<PackageMetadata>;
92
94
  /**
93
95
  * Resolve package metadata for current project with workspace inheritance
94
96
  * @param projectRoot - Current project root
95
- * @param checkWorkingDirectoryStatus - Check working directory status to increase version
97
+ * @param fetchGitMetadata - Git metadata fetcher
96
98
  * @param alwaysOverrideVersionFromGit - Always override version from Git
97
99
  * @param logger - Logger instance
98
100
  * @returns Promise resolving to resolved package metadata
99
101
  */
100
- export declare const resolvePackageMetadata: (projectRoot: string, checkWorkingDirectoryStatus: boolean, alwaysOverrideVersionFromGit: boolean, logger: Logger) => Promise<PackageResolutionResult<PackageMetadata>>;
102
+ export declare const resolvePackageMetadata: (projectRoot: string, fetchGitMetadata: () => Promise<any>, alwaysOverrideVersionFromGit: boolean, logger: Logger) => Promise<PackageResolutionResult<PackageMetadata>>;
101
103
  /**
102
104
  * Resolve raw package.json for current project with workspace inheritance
103
105
  * @param projectRoot - Current project root
104
- * @param checkWorkingDirectoryStatus - Check working directory status
106
+ * @param fetchGitMetadata - Git metadata fetcher
105
107
  * @param alwaysOverrideVersionFromGit - Always override version from Git
106
108
  * @param inheritableFields - Package metadata fields that should be inherited from parent
107
109
  * @param logger - Logger instance
108
110
  * @returns Promise resolving to resolved raw package.json object with source tracking
109
111
  */
110
- export declare const resolveRawPackageJsonObject: (projectRoot: string, checkWorkingDirectoryStatus: boolean, alwaysOverrideVersionFromGit: boolean, inheritableFields: Set<string>, logger: Logger) => Promise<PackageResolutionResult<any>>;
112
+ export declare const resolveRawPackageJsonObject: (projectRoot: string, fetchGitMetadata: () => Promise<any>, alwaysOverrideVersionFromGit: boolean, inheritableFields: Set<string>, logger: Logger) => Promise<PackageResolutionResult<any>>;
111
113
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;EAEE;AACF,eAAO,MAAM,mBAAmB,QAAO,MAOtC,CAAC;AAIF;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CA0BrG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAU,eAAe,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAgD3H,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,GAC3C,aAAa,GAAG,EAChB,UAAU,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACvC,eAAe,MAAM,KACpB,GAiBF,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAC/B,6BAA6B,OAAO,EACpC,8BAA8B,OAAO,EACrC,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,MAAM,EACd,gBAAgB,eAAe,EAC/B,eAAe,eAAe,EAC9B,iBAAiB,MAAM,EACvB,gBAAgB,MAAM,EACtB,gBAAgB,MAAM,KAAG,OAAO,CAAC,eAAe,CA+BjD,CAAC;AAwIF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,6BAA6B,OAAO,EACpC,8BAA8B,OAAO,EACrC,QAAQ,MAAM,KAAG,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAYlE,CAAC;AAkBF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,GACtC,aAAa,MAAM,EACnB,6BAA6B,OAAO,EACpC,8BAA8B,OAAO,EACrC,mBAAmB,GAAG,CAAC,MAAM,CAAC,EAC9B,QAAQ,MAAM,KAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAYtD,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM1C;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;EAEE;AACF,eAAO,MAAM,mBAAmB,QAAO,MAOtC,CAAC;AAIF;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CA0BrG,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,eAAe,MAAM,EACrB,kBAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,8BAA8B,OAAO,EACrC,mBAAmB,GAAG,CAAC,MAAM,CAAC,EAC9B,QAAQ,MAAM,KACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA0DvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,GAC3C,aAAa,GAAG,EAChB,UAAU,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACvC,eAAe,MAAM,KACpB,GAiBF,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,8BAA8B,OAAO,EACrC,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,gBAAgB,eAAe,EAC/B,eAAe,eAAe,EAC9B,iBAAiB,MAAM,EACvB,gBAAgB,MAAM,EACtB,iBAAiB,MAAM,KAAG,OAAO,CAAC,eAAe,CA+BlD,CAAC;AAuIF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,kBAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,8BAA8B,OAAO,EACrC,QAAQ,MAAM,KAAG,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAYlE,CAAC;AAkBF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,GACtC,aAAa,MAAM,EACnB,kBAAkB,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,8BAA8B,OAAO,EACrC,mBAAmB,GAAG,CAAC,MAAM,CAAC,EAC9B,QAAQ,MAAM,KAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAYtD,CAAC"}
package/dist/main.cjs CHANGED
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
3
  * name: screw-up
4
- * version: 0.14.0
4
+ * version: 0.16.0
5
5
  * description: Simply package metadata inserter on Vite plugin
6
6
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
7
7
  * license: MIT
8
8
  * repository.url: https://github.com/kekyo/screw-up.git
9
- * git.commit.hash: f1871df4c43aee9ab389a6ab1b2769b32322793b
9
+ * git.commit.hash: c5c68d39d1ab116299338d31f0f208c0eb49be5c
10
10
  */
11
11
  "use strict";
12
12
  const path = require("path");
13
13
  const fs = require("fs");
14
14
  const promises = require("fs/promises");
15
15
  const child_process = require("child_process");
16
+ const os = require("os");
16
17
  const stream = require("stream");
17
18
  const zlib = require("zlib");
18
19
  const promises$1 = require("stream/promises");
19
- const os = require("os");
20
- const internal = require("./internal-BHSe5LIZ.cjs");
20
+ const analyzer = require("./analyzer-2k5jeoJo.cjs");
21
21
  /*!
22
22
  * name: tar-vern
23
23
  * version: 1.2.0
@@ -693,9 +693,14 @@ const packAssets = async (targetDir, outputDir, checkWorkingDirectoryStatus, alw
693
693
  if (readmeReplacementCandidatePath && !fs.existsSync(readmeReplacementCandidatePath)) {
694
694
  throw new Error(`README replacement file is not found: ${readmeReplacementCandidatePath}`);
695
695
  }
696
- const result = await internal.resolveRawPackageJsonObject(
696
+ const fetchGitMetadata = analyzer.getFetchGitMetadata(
697
697
  targetDir,
698
698
  checkWorkingDirectoryStatus,
699
+ logger2
700
+ );
701
+ const result = await analyzer.resolveRawPackageJsonObject(
702
+ targetDir,
703
+ fetchGitMetadata,
699
704
  alwaysOverrideVersionFromGit,
700
705
  inheritableFields,
701
706
  logger2
@@ -717,11 +722,17 @@ const packAssets = async (targetDir, outputDir, checkWorkingDirectoryStatus, alw
717
722
  delete resolvedPackageJson.readme;
718
723
  }
719
724
  if (replacePeerDepsWildcards) {
720
- const workspaceRoot = await internal.findWorkspaceRoot(targetDir, logger2);
725
+ const workspaceRoot = await analyzer.findWorkspaceRoot(targetDir, logger2);
721
726
  if (workspaceRoot) {
722
- const siblings = await internal.collectWorkspaceSiblings(workspaceRoot, logger2);
727
+ const siblings = await analyzer.collectWorkspaceSiblings(
728
+ workspaceRoot,
729
+ fetchGitMetadata,
730
+ alwaysOverrideVersionFromGit,
731
+ inheritableFields,
732
+ logger2
733
+ );
723
734
  if (siblings.size > 0) {
724
- resolvedPackageJson = internal.replacePeerDependenciesWildcards(
735
+ resolvedPackageJson = analyzer.replacePeerDependenciesWildcards(
725
736
  resolvedPackageJson,
726
737
  siblings,
727
738
  peerDepsVersionPrefix
@@ -759,13 +770,13 @@ const packAssets = async (targetDir, outputDir, checkWorkingDirectoryStatus, alw
759
770
  await promises.rm(baseTempDir, { recursive: true, force: true });
760
771
  }
761
772
  };
762
- const getComputedPackageJsonObject = async (targetDir, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, inheritableFields, logger2) => {
773
+ const getComputedPackageJsonObject = async (targetDir, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger2) => {
763
774
  if (!fs.existsSync(targetDir)) {
764
775
  return void 0;
765
776
  }
766
- const result = await internal.resolveRawPackageJsonObject(
777
+ const result = await analyzer.resolveRawPackageJsonObject(
767
778
  targetDir,
768
- checkWorkingDirectoryStatus,
779
+ fetchGitMetadata,
769
780
  alwaysOverrideVersionFromGit,
770
781
  inheritableFields,
771
782
  logger2
@@ -853,9 +864,14 @@ const dumpCommand = async (args, logger2) => {
853
864
  const inheritableFields = parseInheritableFields(inheritableFieldsOption);
854
865
  const targetDir = path.resolve(directory != null ? directory : process.cwd());
855
866
  try {
856
- const computedPackageJson = await getComputedPackageJsonObject(
867
+ const fetchGitMetadata = analyzer.getFetchGitMetadata(
857
868
  targetDir,
858
869
  checkWorkingDirectoryStatus,
870
+ logger2
871
+ );
872
+ const computedPackageJson = await getComputedPackageJsonObject(
873
+ targetDir,
874
+ fetchGitMetadata,
859
875
  alwaysOverrideVersionFromGit,
860
876
  inheritableFields,
861
877
  logger2
@@ -1012,7 +1028,8 @@ const publishCommand = async (args, logger2) => {
1012
1028
  const npmOptions = [];
1013
1029
  for (let i = 0; i < args.argv.length; i++) {
1014
1030
  const arg = args.argv[i];
1015
- if (arg === "--help" || arg === "--verbose" || arg === "-h" || arg === "--no-wds" || arg === "--no-git-version-override" || arg === "--no-replace-peer-deps") ;
1031
+ if (arg === "publish") ;
1032
+ else if (arg === "--help" || arg === "--verbose" || arg === "-h" || arg === "--no-wds" || arg === "--no-git-version-override" || arg === "--no-replace-peer-deps") ;
1016
1033
  else if (arg === "--readme" || arg === "--inheritable-fields" || arg === "--peer-deps-prefix") {
1017
1034
  i++;
1018
1035
  } else {
@@ -1022,7 +1039,7 @@ const publishCommand = async (args, logger2) => {
1022
1039
  try {
1023
1040
  if (!path$1) {
1024
1041
  const targetDir = process.cwd();
1025
- const outputDir = await promises.mkdtemp("screw-up-publish-");
1042
+ const outputDir = await promises.mkdtemp(path.join(os.tmpdir(), "screw-up-publish-"));
1026
1043
  if (verbose) {
1027
1044
  logger2.info(`[screw-up:cli]: publish: Creating archive of ${targetDir}...`);
1028
1045
  }
@@ -1042,8 +1059,7 @@ const publishCommand = async (args, logger2) => {
1042
1059
  if (verbose) {
1043
1060
  logger2.info(`[screw-up:cli]: publish: Archive created successfully: ${result.packageFileName}`);
1044
1061
  }
1045
- const archiveName = `${result.metadata.name}-${result.metadata.version}.tgz`;
1046
- const archivePath = path.join(outputDir, archiveName);
1062
+ const archivePath = path.join(outputDir, result.packageFileName);
1047
1063
  return await runNpmPublish(archivePath, npmOptions, verbose, logger2);
1048
1064
  } else {
1049
1065
  logger2.error(`[screw-up:cli]: publish: Unable to find any files to pack: ${targetDir}`);
@@ -1058,7 +1074,7 @@ const publishCommand = async (args, logger2) => {
1058
1074
  return await runNpmPublish(path.resolve(path$1), npmOptions, verbose, logger2);
1059
1075
  } else if (pathStat.isDirectory()) {
1060
1076
  const targetDir = path.resolve(path$1);
1061
- const outputDir = await promises.mkdtemp("screw-up-publish-");
1077
+ const outputDir = await promises.mkdtemp(path.join(os.tmpdir(), "screw-up-publish-"));
1062
1078
  if (verbose) {
1063
1079
  logger2.info(`[screw-up:cli]: publish: Creating archive of ${targetDir}...`);
1064
1080
  }
@@ -1078,8 +1094,7 @@ const publishCommand = async (args, logger2) => {
1078
1094
  if (verbose) {
1079
1095
  logger2.info(`[screw-up:cli]: publish: Archive created successfully: ${result.packageFileName}`);
1080
1096
  }
1081
- const archiveName = `${result.metadata.name}-${result.metadata.version}.tgz`;
1082
- const archivePath = path.join(outputDir, archiveName);
1097
+ const archivePath = path.join(outputDir, result.packageFileName);
1083
1098
  return await runNpmPublish(archivePath, npmOptions, verbose, logger2);
1084
1099
  } else {
1085
1100
  logger2.error(`[screw-up:cli]: publish: Unable to find any files to pack: ${targetDir}`);
@@ -1102,7 +1117,7 @@ const publishCommand = async (args, logger2) => {
1102
1117
  }
1103
1118
  };
1104
1119
  const showHelp = async (logger2) => {
1105
- const { author, license, repository_url, version } = await Promise.resolve().then(() => require("./packageMetadata-D9nXAoK9.cjs"));
1120
+ const { author, license, repository_url, version } = await Promise.resolve().then(() => require("./packageMetadata--R5DYhGa.cjs"));
1106
1121
  logger2.info(`screw-up - Easy package metadata inserter CLI [${version}]
1107
1122
  Copyright (c) ${author}
1108
1123
  Repository: ${repository_url}
@@ -1154,7 +1169,7 @@ const cliMain = async (args, logger2) => {
1154
1169
  return 1;
1155
1170
  }
1156
1171
  };
1157
- const logger = internal.createConsoleLogger();
1172
+ const logger = analyzer.createConsoleLogger();
1158
1173
  cliMain(
1159
1174
  process.argv.slice(2),
1160
1175
  // Remove 'node' and script path