npmdata 0.1.6-beta.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.
@@ -0,0 +1,478 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.extract = extract;
7
+ exports.check = check;
8
+ /* eslint-disable functional/no-try-statements */
9
+ /* eslint-disable functional/no-let */
10
+ /* eslint-disable no-continue */
11
+ /* eslint-disable functional/immutable-data */
12
+ /* eslint-disable no-restricted-syntax */
13
+ const node_fs_1 = __importDefault(require("node:fs"));
14
+ const node_path_1 = __importDefault(require("node:path"));
15
+ const node_child_process_1 = require("node:child_process");
16
+ const semver_1 = require("semver");
17
+ const types_1 = require("./types");
18
+ const utils_1 = require("./utils");
19
+ const MARKER_FILE = '.publisher';
20
+ const GITIGNORE_FILE = '.gitignore';
21
+ const GITIGNORE_START = '# npmdata:start';
22
+ const GITIGNORE_END = '# npmdata:end';
23
+ /**
24
+ * Update (or create) a .gitignore in the given directory so that the managed
25
+ * files and the .publisher marker file are ignored by git.
26
+ * If managedFilenames is empty the npmdata section is removed; if the
27
+ * resulting file is empty it is deleted.
28
+ * When addEntries is false, only existing sections are updated/removed — no new
29
+ * section is written if one did not already exist.
30
+ */
31
+ function updateGitignoreForDir(dir, managedFilenames, addEntries = true) {
32
+ const gitignorePath = node_path_1.default.join(dir, GITIGNORE_FILE);
33
+ let existingContent = '';
34
+ if (node_fs_1.default.existsSync(gitignorePath)) {
35
+ existingContent = node_fs_1.default.readFileSync(gitignorePath, 'utf8');
36
+ }
37
+ const startIdx = existingContent.indexOf(GITIGNORE_START);
38
+ const endIdx = existingContent.indexOf(GITIGNORE_END);
39
+ const hasExistingSection = startIdx !== -1 && endIdx !== -1 && startIdx < endIdx;
40
+ // When not adding entries and there is no existing section, there is nothing to clean up.
41
+ if (!addEntries && !hasExistingSection)
42
+ return;
43
+ let beforeSection = existingContent;
44
+ let afterSection = '';
45
+ if (hasExistingSection) {
46
+ beforeSection = existingContent.slice(0, startIdx).trimEnd();
47
+ afterSection = existingContent.slice(endIdx + GITIGNORE_END.length).trimStart();
48
+ }
49
+ if (managedFilenames.length === 0) {
50
+ // Remove the managed section entirely.
51
+ const updatedContent = [beforeSection, afterSection].filter(Boolean).join('\n');
52
+ if (updatedContent.trim()) {
53
+ node_fs_1.default.writeFileSync(gitignorePath, `${updatedContent.trimEnd()}\n`, 'utf8');
54
+ }
55
+ else if (node_fs_1.default.existsSync(gitignorePath)) {
56
+ node_fs_1.default.unlinkSync(gitignorePath);
57
+ }
58
+ return;
59
+ }
60
+ // When addEntries is false, only update an existing section (stale entries removed);
61
+ // if there is no existing section do not create one (already returned above).
62
+ const section = [GITIGNORE_START, MARKER_FILE, ...managedFilenames.sort(), GITIGNORE_END].join('\n');
63
+ const parts = [beforeSection, section, afterSection].filter(Boolean);
64
+ const updatedContent = `${parts.join('\n')}\n`;
65
+ node_fs_1.default.writeFileSync(gitignorePath, updatedContent, 'utf8');
66
+ }
67
+ /**
68
+ * Walk outputDir and update .gitignore files for every directory that has a
69
+ * .publisher marker (to reflect its current managed files) and also clean up
70
+ * any npmdata sections in directories where the marker was removed.
71
+ * When addEntries is false, existing sections are updated/removed but no new
72
+ * sections are created — use this to clean up without opting into gitignore management.
73
+ */
74
+ function updateGitignores(outputDir, addEntries = true) {
75
+ if (!node_fs_1.default.existsSync(outputDir))
76
+ return;
77
+ const walkDir = (dir) => {
78
+ const markerPath = node_path_1.default.join(dir, MARKER_FILE);
79
+ const gitignorePath = node_path_1.default.join(dir, GITIGNORE_FILE);
80
+ if (node_fs_1.default.existsSync(markerPath)) {
81
+ try {
82
+ const managedFiles = (0, utils_1.readCsvMarker)(markerPath);
83
+ updateGitignoreForDir(dir, managedFiles.map((m) => m.path), addEntries);
84
+ }
85
+ catch {
86
+ // Ignore unreadable marker files
87
+ }
88
+ }
89
+ else if (node_fs_1.default.existsSync(gitignorePath)) {
90
+ // Clean up any leftover npmdata section
91
+ updateGitignoreForDir(dir, [], addEntries);
92
+ }
93
+ for (const item of node_fs_1.default.readdirSync(dir)) {
94
+ const fullPath = node_path_1.default.join(dir, item);
95
+ if (node_fs_1.default.statSync(fullPath).isDirectory() && !item.startsWith('.')) {
96
+ walkDir(fullPath);
97
+ }
98
+ }
99
+ };
100
+ walkDir(outputDir);
101
+ }
102
+ async function getPackageFiles(packageName, cwd) {
103
+ const pkgPath = require.resolve(`${packageName}/package.json`, {
104
+ // eslint-disable-next-line no-undefined
105
+ paths: cwd ? [cwd] : undefined,
106
+ });
107
+ const packagePath = node_path_1.default.dirname(pkgPath);
108
+ if (!packagePath) {
109
+ throw new Error(`Cannot locate installed package: ${packageName}`);
110
+ }
111
+ const contents = [];
112
+ const walkDir = (dir, basePath = '') => {
113
+ for (const file of node_fs_1.default.readdirSync(dir)) {
114
+ if (file === MARKER_FILE)
115
+ continue;
116
+ const fullPath = node_path_1.default.join(dir, file);
117
+ const relPath = basePath ? `${basePath}/${file}` : file;
118
+ if (node_fs_1.default.statSync(fullPath).isDirectory()) {
119
+ walkDir(fullPath, relPath);
120
+ }
121
+ else {
122
+ contents.push({ relPath, fullPath });
123
+ }
124
+ }
125
+ };
126
+ walkDir(packagePath);
127
+ return contents;
128
+ }
129
+ async function installPackage(packageName, version, packageManager, cwd) {
130
+ const packageSpec = version ? `${packageName}@${version}` : `${packageName}@latest`;
131
+ let cmd;
132
+ switch (packageManager) {
133
+ case 'pnpm':
134
+ cmd = `pnpm add ${packageSpec}`;
135
+ break;
136
+ case 'yarn':
137
+ cmd = `yarn add ${packageSpec}`;
138
+ break;
139
+ default:
140
+ cmd = `npm install ${packageSpec}`;
141
+ }
142
+ (0, node_child_process_1.execSync)(cmd, { encoding: 'utf8', stdio: 'pipe', cwd });
143
+ }
144
+ async function ensurePackageInstalled(packageName, version, packageManager, cwd) {
145
+ const existingVersion = (0, utils_1.getInstalledPackageVersion)(packageName, cwd);
146
+ if (!existingVersion) {
147
+ await installPackage(packageName, version, packageManager, cwd);
148
+ }
149
+ const installedVersion = (0, utils_1.getInstalledPackageVersion)(packageName, cwd);
150
+ if (!installedVersion) {
151
+ throw new Error(`Couldn't find package ${packageName}`);
152
+ }
153
+ if (version && !(0, semver_1.satisfies)(installedVersion, version)) {
154
+ throw new Error(`Installed version ${installedVersion} of package '${packageName}' does not match constraint ${version}`);
155
+ }
156
+ return installedVersion;
157
+ }
158
+ /**
159
+ * Load managed files from all marker files under outputDir, keyed by relative path.
160
+ * Each value carries the package ownership metadata.
161
+ */
162
+ function loadManagedFilesMap(outputDir) {
163
+ const files = new Map();
164
+ const walkDir = (dir) => {
165
+ if (!node_fs_1.default.existsSync(dir))
166
+ return;
167
+ for (const item of node_fs_1.default.readdirSync(dir)) {
168
+ const fullPath = node_path_1.default.join(dir, item);
169
+ const stat = node_fs_1.default.statSync(fullPath);
170
+ if (item === MARKER_FILE) {
171
+ try {
172
+ const managedFiles = (0, utils_1.readCsvMarker)(fullPath);
173
+ const markerDir = node_path_1.default.dirname(fullPath);
174
+ const relMarkerDir = node_path_1.default.relative(outputDir, markerDir);
175
+ for (const managed of managedFiles) {
176
+ const relPath = relMarkerDir === '.' ? managed.path : node_path_1.default.join(relMarkerDir, managed.path);
177
+ files.set(relPath, managed);
178
+ }
179
+ }
180
+ catch {
181
+ // Ignore unreadable marker files
182
+ }
183
+ }
184
+ else if (stat.isDirectory() && !item.startsWith('.')) {
185
+ walkDir(fullPath);
186
+ }
187
+ }
188
+ };
189
+ walkDir(outputDir);
190
+ return files;
191
+ }
192
+ /**
193
+ * Load all managed files from marker files under outputDir as a flat list.
194
+ * Paths are relative to outputDir.
195
+ */
196
+ function loadAllManagedFiles(outputDir) {
197
+ const files = [];
198
+ const walkDir = (dir) => {
199
+ if (!node_fs_1.default.existsSync(dir))
200
+ return;
201
+ for (const item of node_fs_1.default.readdirSync(dir)) {
202
+ const fullPath = node_path_1.default.join(dir, item);
203
+ const stat = node_fs_1.default.statSync(fullPath);
204
+ if (item === MARKER_FILE) {
205
+ try {
206
+ const managedFiles = (0, utils_1.readCsvMarker)(fullPath);
207
+ const markerDir = node_path_1.default.dirname(fullPath);
208
+ const relMarkerDir = node_path_1.default.relative(outputDir, markerDir);
209
+ for (const managed of managedFiles) {
210
+ const relPath = relMarkerDir === '.' ? managed.path : node_path_1.default.join(relMarkerDir, managed.path);
211
+ files.push({
212
+ path: relPath,
213
+ packageName: managed.packageName,
214
+ packageVersion: managed.packageVersion,
215
+ });
216
+ }
217
+ }
218
+ catch {
219
+ // Ignore unreadable marker files
220
+ }
221
+ }
222
+ else if (stat.isDirectory() && !item.startsWith('.')) {
223
+ walkDir(fullPath);
224
+ }
225
+ }
226
+ };
227
+ walkDir(outputDir);
228
+ return files;
229
+ }
230
+ function cleanupEmptyMarkers(outputDir) {
231
+ const walkDir = (dir) => {
232
+ if (!node_fs_1.default.existsSync(dir))
233
+ return;
234
+ for (const file of node_fs_1.default.readdirSync(dir)) {
235
+ const fullPath = node_path_1.default.join(dir, file);
236
+ if (file === MARKER_FILE) {
237
+ try {
238
+ const managedFiles = (0, utils_1.readCsvMarker)(fullPath);
239
+ if (managedFiles.length === 0) {
240
+ node_fs_1.default.chmodSync(fullPath, 0o644);
241
+ node_fs_1.default.unlinkSync(fullPath);
242
+ }
243
+ }
244
+ catch {
245
+ // Ignore unreadable marker files
246
+ }
247
+ }
248
+ else if (node_fs_1.default.statSync(fullPath).isDirectory() && !file.startsWith('.')) {
249
+ walkDir(fullPath);
250
+ }
251
+ }
252
+ };
253
+ walkDir(outputDir);
254
+ }
255
+ function cleanupEmptyDirs(outputDir) {
256
+ const walkDir = (dir) => {
257
+ if (!node_fs_1.default.existsSync(dir))
258
+ return true;
259
+ let isEmpty = true;
260
+ for (const item of node_fs_1.default.readdirSync(dir)) {
261
+ const fullPath = node_path_1.default.join(dir, item);
262
+ if (node_fs_1.default.statSync(fullPath).isDirectory() && !item.startsWith('.')) {
263
+ const childEmpty = walkDir(fullPath);
264
+ if (!childEmpty)
265
+ isEmpty = false;
266
+ }
267
+ else {
268
+ isEmpty = false;
269
+ }
270
+ }
271
+ if (isEmpty && dir !== outputDir) {
272
+ node_fs_1.default.rmdirSync(dir);
273
+ return true;
274
+ }
275
+ return isEmpty;
276
+ };
277
+ walkDir(outputDir);
278
+ }
279
+ // eslint-disable-next-line complexity
280
+ async function extractFiles(config) {
281
+ const changes = {
282
+ added: [],
283
+ modified: [],
284
+ deleted: [],
285
+ skipped: [],
286
+ };
287
+ const installedVersion = (0, utils_1.getInstalledPackageVersion)(config.packageName, config.cwd);
288
+ if (!installedVersion) {
289
+ throw new Error(`Failed to determine installed version of package ${config.packageName}`);
290
+ }
291
+ const packageFiles = await getPackageFiles(config.packageName, config.cwd);
292
+ const addedByDir = new Map();
293
+ const existingManagedMap = loadManagedFilesMap(config.outputDir);
294
+ const deletedOnlyDirs = new Set();
295
+ // eslint-disable-next-line functional/no-let
296
+ let wasForced = false;
297
+ for (const packageFile of packageFiles) {
298
+ if (!(0, utils_1.matchesFilenamePattern)(packageFile.relPath, config.filenamePatterns ?? types_1.DEFAULT_FILENAME_PATTERNS) ||
299
+ !(0, utils_1.matchesContentRegex)(packageFile.fullPath, config.contentRegexes)) {
300
+ continue;
301
+ }
302
+ const destPath = node_path_1.default.join(config.outputDir, packageFile.relPath);
303
+ (0, utils_1.ensureDir)(node_path_1.default.dirname(destPath));
304
+ const existingOwner = existingManagedMap.get(packageFile.relPath);
305
+ if (node_fs_1.default.existsSync(destPath)) {
306
+ if (existingOwner?.packageName === config.packageName) {
307
+ if ((0, utils_1.calculateFileHash)(packageFile.fullPath) === (0, utils_1.calculateFileHash)(destPath)) {
308
+ changes.skipped.push(packageFile.relPath);
309
+ }
310
+ else {
311
+ (0, utils_1.copyFile)(packageFile.fullPath, destPath);
312
+ changes.modified.push(packageFile.relPath);
313
+ }
314
+ wasForced = false;
315
+ }
316
+ else if (existingOwner && existingOwner.packageName !== config.packageName) {
317
+ throw new Error(`Package clash: ${packageFile.relPath} already managed by ${existingOwner.packageName}@${existingOwner.packageVersion}. Cannot extract from ${config.packageName}. Use force: true to override.`);
318
+ }
319
+ else if (!config.force) {
320
+ throw new Error(`File conflict: ${packageFile.relPath} already exists and is not managed by this package. Use force: true to override.`);
321
+ }
322
+ else {
323
+ (0, utils_1.copyFile)(packageFile.fullPath, destPath);
324
+ changes.added.push(packageFile.relPath);
325
+ wasForced = true;
326
+ }
327
+ }
328
+ else {
329
+ (0, utils_1.copyFile)(packageFile.fullPath, destPath);
330
+ changes.added.push(packageFile.relPath);
331
+ wasForced = false;
332
+ }
333
+ node_fs_1.default.chmodSync(destPath, 0o444);
334
+ const dir = node_path_1.default.dirname(packageFile.relPath) || '.';
335
+ if (!addedByDir.has(dir)) {
336
+ addedByDir.set(dir, []);
337
+ }
338
+ addedByDir.get(dir).push({
339
+ path: node_path_1.default.basename(packageFile.relPath),
340
+ packageName: config.packageName,
341
+ packageVersion: installedVersion,
342
+ force: wasForced,
343
+ });
344
+ }
345
+ // Delete files that were managed by this package but are no longer in the package
346
+ for (const [relPath, owner] of existingManagedMap) {
347
+ if (owner.packageName !== config.packageName)
348
+ continue;
349
+ const fileDir = node_path_1.default.dirname(relPath) === '.' ? '.' : node_path_1.default.dirname(relPath);
350
+ const dirFiles = addedByDir.get(fileDir) ?? [];
351
+ const stillPresent = dirFiles.some((m) => m.path === node_path_1.default.basename(relPath));
352
+ if (!stillPresent) {
353
+ const fullPath = node_path_1.default.join(config.outputDir, relPath);
354
+ if (node_fs_1.default.existsSync(fullPath)) {
355
+ (0, utils_1.removeFile)(fullPath);
356
+ changes.deleted.push(relPath);
357
+ }
358
+ const dir = node_path_1.default.dirname(relPath) === '.' ? '.' : node_path_1.default.dirname(relPath);
359
+ if (!addedByDir.has(dir)) {
360
+ deletedOnlyDirs.add(dir);
361
+ }
362
+ }
363
+ }
364
+ // Write updated marker files
365
+ // eslint-disable-next-line unicorn/no-keyword-prefix
366
+ for (const [dir, newFiles] of addedByDir) {
367
+ const markerDir = dir === '.' ? config.outputDir : node_path_1.default.join(config.outputDir, dir);
368
+ (0, utils_1.ensureDir)(markerDir);
369
+ const markerPath = node_path_1.default.join(markerDir, MARKER_FILE);
370
+ // eslint-disable-next-line unicorn/no-null
371
+ let existingFiles = [];
372
+ if (node_fs_1.default.existsSync(markerPath)) {
373
+ existingFiles = (0, utils_1.readCsvMarker)(markerPath);
374
+ }
375
+ // Keep entries from other packages, replace entries from this package
376
+ const mergedFiles = [
377
+ ...existingFiles.filter((m) => m.packageName !== config.packageName),
378
+ // eslint-disable-next-line unicorn/no-keyword-prefix
379
+ ...newFiles,
380
+ ];
381
+ (0, utils_1.writeCsvMarker)(markerPath, mergedFiles);
382
+ }
383
+ // Update marker files for directories where all managed files were removed (no new files added)
384
+ for (const dir of deletedOnlyDirs) {
385
+ const markerDir = dir === '.' ? config.outputDir : node_path_1.default.join(config.outputDir, dir);
386
+ const markerPath = node_path_1.default.join(markerDir, MARKER_FILE);
387
+ if (!node_fs_1.default.existsSync(markerPath))
388
+ continue;
389
+ try {
390
+ const existingFiles = (0, utils_1.readCsvMarker)(markerPath);
391
+ const mergedFiles = existingFiles.filter((m) => m.packageName !== config.packageName);
392
+ if (mergedFiles.length === 0) {
393
+ node_fs_1.default.chmodSync(markerPath, 0o644);
394
+ node_fs_1.default.unlinkSync(markerPath);
395
+ }
396
+ else {
397
+ (0, utils_1.writeCsvMarker)(markerPath, mergedFiles);
398
+ }
399
+ }
400
+ catch {
401
+ // Ignore unreadable marker files
402
+ }
403
+ }
404
+ cleanupEmptyMarkers(config.outputDir);
405
+ return changes;
406
+ }
407
+ /**
408
+ * Extract files from published package to output directory
409
+ */
410
+ async function extract(config) {
411
+ (0, utils_1.ensureDir)(config.outputDir);
412
+ const packageManager = config.packageManager ?? (0, utils_1.detectPackageManager)();
413
+ const installedVersion = await ensurePackageInstalled(config.packageName, config.version, packageManager, config.cwd);
414
+ const changes = await extractFiles(config);
415
+ cleanupEmptyMarkers(config.outputDir);
416
+ // Always clean up .gitignore entries for removed files; only add new entries when gitignore: true.
417
+ updateGitignores(config.outputDir, config.gitignore ?? false);
418
+ // Run after gitignore cleanup so dirs kept alive only by a .gitignore get removed.
419
+ cleanupEmptyDirs(config.outputDir);
420
+ return {
421
+ added: changes.added,
422
+ modified: changes.modified,
423
+ deleted: changes.deleted,
424
+ skipped: changes.skipped,
425
+ sourcePackage: {
426
+ name: config.packageName,
427
+ version: installedVersion,
428
+ },
429
+ };
430
+ }
431
+ /**
432
+ * Check if managed files are in sync with the published package.
433
+ *
434
+ * Uses the .publisher marker as the source of truth: reads entries for the
435
+ * specific package, applies the --files filter, then compares each entry
436
+ * against the installed package contents and the output directory.
437
+ */
438
+ async function check(config) {
439
+ const installedVersion = (0, utils_1.getInstalledPackageVersion)(config.packageName, config.cwd);
440
+ if (!installedVersion) {
441
+ throw new Error(`Package ${config.packageName} is not installed. Install it first.`);
442
+ }
443
+ // Load marker entries for this package and apply the --files filter
444
+ const markerFiles = loadAllManagedFiles(config.outputDir)
445
+ .filter((m) => m.packageName === config.packageName)
446
+ .filter((m) => (0, utils_1.matchesFilenamePattern)(m.path, config.filenamePatterns ?? types_1.DEFAULT_FILENAME_PATTERNS));
447
+ // Build a hash map of the installed package files (filtered the same way)
448
+ const packageFiles = await getPackageFiles(config.packageName, config.cwd);
449
+ const packageHashMap = new Map(packageFiles
450
+ .filter((f) => (0, utils_1.matchesFilenamePattern)(f.relPath, config.filenamePatterns ?? types_1.DEFAULT_FILENAME_PATTERNS) &&
451
+ (0, utils_1.matchesContentRegex)(f.fullPath, config.contentRegexes))
452
+ .map((f) => [f.relPath, (0, utils_1.calculateFileHash)(f.fullPath)]));
453
+ const differences = {
454
+ missing: [],
455
+ modified: [],
456
+ };
457
+ for (const markerFile of markerFiles) {
458
+ const localPath = node_path_1.default.join(config.outputDir, markerFile.path);
459
+ if (!node_fs_1.default.existsSync(localPath)) {
460
+ differences.missing.push(markerFile.path);
461
+ continue;
462
+ }
463
+ const packageHash = packageHashMap.get(markerFile.path);
464
+ // eslint-disable-next-line no-undefined
465
+ if (packageHash !== undefined && (0, utils_1.calculateFileHash)(localPath) !== packageHash) {
466
+ differences.modified.push(markerFile.path);
467
+ }
468
+ }
469
+ return {
470
+ ok: differences.missing.length === 0 && differences.modified.length === 0,
471
+ differences,
472
+ sourcePackage: {
473
+ name: config.packageName,
474
+ version: installedVersion,
475
+ },
476
+ };
477
+ }
478
+ //# sourceMappingURL=consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { extract, check } from './consumer';
2
+ export { initPublisher } from './publisher';
3
+ export { DEFAULT_FILENAME_PATTERNS } from './types';
4
+ export type { ConsumerConfig, FileFilterConfig, ManagedFileMetadata, PublishablePackageJson, } from './types';
5
+ export type { PublisherInitOptions, InitResult } from './publisher';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_FILENAME_PATTERNS = exports.initPublisher = exports.check = exports.extract = void 0;
4
+ // Main exports
5
+ var consumer_1 = require("./consumer");
6
+ Object.defineProperty(exports, "extract", { enumerable: true, get: function () { return consumer_1.extract; } });
7
+ Object.defineProperty(exports, "check", { enumerable: true, get: function () { return consumer_1.check; } });
8
+ var publisher_1 = require("./publisher");
9
+ Object.defineProperty(exports, "initPublisher", { enumerable: true, get: function () { return publisher_1.initPublisher; } });
10
+ // Type exports
11
+ var types_1 = require("./types");
12
+ Object.defineProperty(exports, "DEFAULT_FILENAME_PATTERNS", { enumerable: true, get: function () { return types_1.DEFAULT_FILENAME_PATTERNS; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,uCAA4C;AAAnC,mGAAA,OAAO,OAAA;AAAE,iGAAA,KAAK,OAAA;AACvB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAEtB,eAAe;AACf,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/dist/main.js ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("./cli");
5
+ // eslint-disable-next-line no-void
6
+ void (async () => {
7
+ process.on('uncaughtException', (err) => {
8
+ const errs = `${err}`;
9
+ // eslint-disable-next-line functional/no-let
10
+ let i = errs.indexOf('\n');
11
+ if (i === -1)
12
+ i = errs.length;
13
+ // eslint-disable-next-line no-console
14
+ console.log(errs.slice(0, Math.max(0, i)));
15
+ process.exit(3);
16
+ });
17
+ const exitCode = await (0, cli_1.cli)(process.argv);
18
+ process.exit(exitCode);
19
+ })();
20
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAE5B,mCAAmC;AACnC,KAAK,CAAC,KAAK,IAAmB,EAAE;IAC9B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACtB,6CAA6C;QAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAA,SAAG,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC,EAAE,CAAC"}
Binary file
@@ -0,0 +1,17 @@
1
+ export type PublisherInitOptions = {
2
+ /**
3
+ * Working directory where to initialize (default: current working directory)
4
+ */
5
+ workingDir?: string;
6
+ };
7
+ export type InitResult = {
8
+ success: boolean;
9
+ message: string;
10
+ publishedFolders?: string[];
11
+ packageJsonPath?: string;
12
+ };
13
+ /**
14
+ * Initialize publisher configuration with specified folders
15
+ */
16
+ export declare function initPublisher(folders: string[], options?: PublisherInitOptions): Promise<InitResult>;
17
+ //# sourceMappingURL=publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../src/publisher.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AA2EF;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,UAAU,CAAC,CAyCrB"}