@push.rocks/smartnpm 2.0.3
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_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/index.d.ts +2 -0
- package/dist_ts/index.js +4 -0
- package/dist_ts/smartnpm.classes.npmpackage.d.ts +82 -0
- package/dist_ts/smartnpm.classes.npmpackage.js +118 -0
- package/dist_ts/smartnpm.classes.npmregistry.d.ts +41 -0
- package/dist_ts/smartnpm.classes.npmregistry.js +197 -0
- package/dist_ts/smartnpm.classes.packagedisttag.d.ts +5 -0
- package/dist_ts/smartnpm.classes.packagedisttag.js +8 -0
- package/dist_ts/smartnpm.classes.packageversion.d.ts +31 -0
- package/dist_ts/smartnpm.classes.packageversion.js +9 -0
- package/dist_ts/smartnpm.classes.registrycache.d.ts +17 -0
- package/dist_ts/smartnpm.classes.registrycache.js +35 -0
- package/dist_ts/smartnpm.interfaces.d.ts +15 -0
- package/dist_ts/smartnpm.interfaces.js +2 -0
- package/dist_ts/smartnpm.paths.d.ts +2 -0
- package/dist_ts/smartnpm.paths.js +4 -0
- package/dist_ts/smartnpm.plugins.d.ts +14 -0
- package/dist_ts/smartnpm.plugins.js +18 -0
- package/npmextra.json +17 -0
- package/package.json +49 -0
- package/readme.md +39 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/index.ts +4 -0
- package/ts/smartnpm.classes.npmpackage.ts +187 -0
- package/ts/smartnpm.classes.npmregistry.ts +228 -0
- package/ts/smartnpm.classes.packagedisttag.ts +11 -0
- package/ts/smartnpm.classes.packageversion.ts +31 -0
- package/ts/smartnpm.classes.registrycache.ts +50 -0
- package/ts/smartnpm.interfaces.ts +24 -0
- package/ts/smartnpm.paths.ts +4 -0
- package/ts/smartnpm.plugins.ts +22 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* autocreated commitinfo by @pushrocks/commitinfo
|
|
3
|
+
*/
|
|
4
|
+
export const commitinfo = {
|
|
5
|
+
name: '@pushrocks/smartnpm',
|
|
6
|
+
version: '2.0.3',
|
|
7
|
+
description: 'interface with npm to retrieve package information'
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLG9EQUFvRDtDQUNsRSxDQUFBIn0=
|
package/dist_ts/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import './smartnpm.plugins.js';
|
|
2
|
+
export * from './smartnpm.classes.npmregistry.js';
|
|
3
|
+
export * from './smartnpm.classes.npmpackage.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUF5Qix1QkFBdUIsQ0FBQztBQUVqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUMifQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
2
|
+
import { NpmRegistry } from './smartnpm.classes.npmregistry.js';
|
|
3
|
+
import { PackageDisttag } from './smartnpm.classes.packagedisttag.js';
|
|
4
|
+
import { PackageVersion, IVersionData } from './smartnpm.classes.packageversion.js';
|
|
5
|
+
export declare class NpmPackage {
|
|
6
|
+
static createFromFullMetadataAndVersionData(npmRegistryArg: NpmRegistry, fullMetadataArg: plugins.packageJson.FullMetadata, versionsDataArg: {
|
|
7
|
+
name: string;
|
|
8
|
+
'dist-tags': {
|
|
9
|
+
[key: string]: string;
|
|
10
|
+
};
|
|
11
|
+
versions: {
|
|
12
|
+
[key: string]: IVersionData;
|
|
13
|
+
};
|
|
14
|
+
}): Promise<NpmPackage>;
|
|
15
|
+
name: string;
|
|
16
|
+
scope: string;
|
|
17
|
+
version: string;
|
|
18
|
+
allVersions: PackageVersion[];
|
|
19
|
+
allDistTags: PackageDisttag[];
|
|
20
|
+
description: string;
|
|
21
|
+
keywords: string[];
|
|
22
|
+
date: string;
|
|
23
|
+
license: string;
|
|
24
|
+
links: {
|
|
25
|
+
npm: string;
|
|
26
|
+
homepage: string;
|
|
27
|
+
repository: string;
|
|
28
|
+
bugs: string;
|
|
29
|
+
};
|
|
30
|
+
author: {
|
|
31
|
+
name: 'Lossless GmbH';
|
|
32
|
+
};
|
|
33
|
+
publisher: {
|
|
34
|
+
username: 'gitzone';
|
|
35
|
+
email: 'npm@git.zone';
|
|
36
|
+
};
|
|
37
|
+
maintainers: any;
|
|
38
|
+
dist: {
|
|
39
|
+
integrity: string;
|
|
40
|
+
shasum: string;
|
|
41
|
+
tarball: string;
|
|
42
|
+
};
|
|
43
|
+
score: {
|
|
44
|
+
final: number;
|
|
45
|
+
detail: {
|
|
46
|
+
quality: number;
|
|
47
|
+
popularity: number;
|
|
48
|
+
maintenance: number;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
searchScore: number;
|
|
52
|
+
npmRegistryRef: NpmRegistry;
|
|
53
|
+
constructor(npmRegistryArg: NpmRegistry);
|
|
54
|
+
/**
|
|
55
|
+
* saves the package to disk
|
|
56
|
+
*/
|
|
57
|
+
saveToDisk(targetDir: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* saves the complete package to cache
|
|
60
|
+
*/
|
|
61
|
+
saveToCache(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* get files from package
|
|
64
|
+
*/
|
|
65
|
+
getFilesFromPackage(filePath: string, optionsArg: {
|
|
66
|
+
distTag?: string;
|
|
67
|
+
version?: string;
|
|
68
|
+
}, returnOnFirstArg?: boolean): Promise<plugins.smartfile.Smartfile[]>;
|
|
69
|
+
/**
|
|
70
|
+
* get files from package
|
|
71
|
+
*/
|
|
72
|
+
getFileFromPackage(filePath: string, optionsArg?: {
|
|
73
|
+
distTag?: string;
|
|
74
|
+
version?: string;
|
|
75
|
+
}): Promise<plugins.smartfile.Smartfile>;
|
|
76
|
+
/**
|
|
77
|
+
* updates the package with information from the registry
|
|
78
|
+
*/
|
|
79
|
+
update(): void;
|
|
80
|
+
/** */
|
|
81
|
+
getBestMatchingVersion(versionArg: string): string;
|
|
82
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
2
|
+
import './smartnpm.classes.npmregistry.js';
|
|
3
|
+
import { PackageDisttag } from './smartnpm.classes.packagedisttag.js';
|
|
4
|
+
import { PackageVersion } from './smartnpm.classes.packageversion.js';
|
|
5
|
+
export class NpmPackage {
|
|
6
|
+
constructor(npmRegistryArg) {
|
|
7
|
+
// INSTANCE
|
|
8
|
+
this.name = null;
|
|
9
|
+
this.scope = null;
|
|
10
|
+
this.version = null;
|
|
11
|
+
this.description = null;
|
|
12
|
+
this.keywords = null;
|
|
13
|
+
this.maintainers = null;
|
|
14
|
+
this.score = null;
|
|
15
|
+
this.searchScore = null;
|
|
16
|
+
this.npmRegistryRef = npmRegistryArg;
|
|
17
|
+
}
|
|
18
|
+
static async createFromFullMetadataAndVersionData(npmRegistryArg, fullMetadataArg, versionsDataArg) {
|
|
19
|
+
const npmPackage = new NpmPackage(npmRegistryArg);
|
|
20
|
+
Object.assign(npmPackage, fullMetadataArg);
|
|
21
|
+
npmPackage.allVersions = [];
|
|
22
|
+
npmPackage.allDistTags = [];
|
|
23
|
+
for (const versionArg of Object.keys(versionsDataArg.versions)) {
|
|
24
|
+
const packageVersion = PackageVersion.createFromVersionData(versionsDataArg.versions[versionArg]);
|
|
25
|
+
npmPackage.allVersions.push(packageVersion);
|
|
26
|
+
}
|
|
27
|
+
for (const distTagArg of Object.keys(versionsDataArg['dist-tags'])) {
|
|
28
|
+
const packageDistTag = new PackageDisttag(distTagArg, versionsDataArg['dist-tags'][distTagArg]);
|
|
29
|
+
npmPackage.allDistTags.push(packageDistTag);
|
|
30
|
+
}
|
|
31
|
+
return npmPackage;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* saves the package to disk
|
|
35
|
+
*/
|
|
36
|
+
async saveToDisk(targetDir) {
|
|
37
|
+
const smartarchiveInstance = new plugins.smartarchive.SmartArchive();
|
|
38
|
+
await smartarchiveInstance.extractArchiveFromUrlToFs(this.dist.tarball, targetDir);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* saves the complete package to cache
|
|
42
|
+
*/
|
|
43
|
+
async saveToCache() { }
|
|
44
|
+
/**
|
|
45
|
+
* get files from package
|
|
46
|
+
*/
|
|
47
|
+
async getFilesFromPackage(filePath, optionsArg, returnOnFirstArg = false) {
|
|
48
|
+
const done = plugins.smartpromise.defer();
|
|
49
|
+
const smartarchiveInstance = new plugins.smartarchive.SmartArchive();
|
|
50
|
+
let tarballUrl = this.dist?.tarball;
|
|
51
|
+
if (optionsArg?.version || optionsArg?.distTag) {
|
|
52
|
+
if (optionsArg.distTag && optionsArg.version) {
|
|
53
|
+
throw new Error('Please either specify version OR disttag, not both.');
|
|
54
|
+
}
|
|
55
|
+
let targetVersionString;
|
|
56
|
+
if (optionsArg.distTag) {
|
|
57
|
+
const targetDistTag = this.allDistTags.find((distTag) => {
|
|
58
|
+
return distTag.name === optionsArg.distTag;
|
|
59
|
+
});
|
|
60
|
+
if (targetDistTag) {
|
|
61
|
+
targetVersionString = targetDistTag.targetVersion;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
targetVersionString = optionsArg.version;
|
|
66
|
+
}
|
|
67
|
+
// lets find the best matching release
|
|
68
|
+
const bestMatchingVersion = this.getBestMatchingVersion(targetVersionString);
|
|
69
|
+
if (!bestMatchingVersion) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
tarballUrl = this.allVersions.find((packageVersion) => packageVersion.version === bestMatchingVersion).dist.tarball;
|
|
73
|
+
}
|
|
74
|
+
const fileObservable = await smartarchiveInstance.extractArchiveFromUrlToObservable(tarballUrl);
|
|
75
|
+
const wantedFilePath = plugins.path.join('package', filePath);
|
|
76
|
+
const allMatchingFiles = [];
|
|
77
|
+
const subscription = fileObservable.subscribe((fileArg) => {
|
|
78
|
+
// returnOnFirstArg requires exact match
|
|
79
|
+
if (returnOnFirstArg && fileArg.path === wantedFilePath) {
|
|
80
|
+
// lets resolve with the wanted file
|
|
81
|
+
done.resolve([fileArg]);
|
|
82
|
+
subscription.unsubscribe();
|
|
83
|
+
}
|
|
84
|
+
else if (!returnOnFirstArg && fileArg.path.startsWith(wantedFilePath)) {
|
|
85
|
+
allMatchingFiles.push(fileArg);
|
|
86
|
+
}
|
|
87
|
+
}, (err) => {
|
|
88
|
+
console.log(err);
|
|
89
|
+
}, () => {
|
|
90
|
+
done.resolve(allMatchingFiles);
|
|
91
|
+
subscription.unsubscribe();
|
|
92
|
+
});
|
|
93
|
+
return done.promise;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* get files from package
|
|
97
|
+
*/
|
|
98
|
+
async getFileFromPackage(filePath, optionsArg) {
|
|
99
|
+
const result = await this.getFilesFromPackage(filePath, optionsArg, true);
|
|
100
|
+
return result[0] || null;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* updates the package with information from the registry
|
|
104
|
+
*/
|
|
105
|
+
update() { }
|
|
106
|
+
/** */
|
|
107
|
+
getBestMatchingVersion(versionArg) {
|
|
108
|
+
// lets find the best matching release
|
|
109
|
+
const targetVersion = plugins.smartversion.SmartVersion.fromFuzzyString(versionArg);
|
|
110
|
+
const versionStrings = this.allVersions.map((packageVersion) => packageVersion.version);
|
|
111
|
+
const bestMatchingVersion = targetVersion.getBestMatch(versionStrings);
|
|
112
|
+
if (!bestMatchingVersion) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
return bestMatchingVersion;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0uY2xhc3Nlcy5ucG1wYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRucG0uY2xhc3Nlcy5ucG1wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBNEIsbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQWdCLE1BQU0sc0NBQXNDLENBQUM7QUFFcEYsTUFBTSxPQUFPLFVBQVU7SUFzRXJCLFlBQVksY0FBMkI7UUF4Q3ZDLFdBQVc7UUFDSixTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBVyxJQUFJLENBQUM7UUFDckIsWUFBTyxHQUFXLElBQUksQ0FBQztRQUd2QixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixhQUFRLEdBQWEsSUFBSSxDQUFDO1FBZ0IxQixnQkFBVyxHQUFRLElBQUksQ0FBQztRQU14QixVQUFLLEdBT1IsSUFBSSxDQUFDO1FBQ0YsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFJaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQXZFTSxNQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUN0RCxjQUEyQixFQUMzQixlQUFpRCxFQUNqRCxlQUlDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0MsVUFBVSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFR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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
2
|
+
import { ISearchObject } from './smartnpm.interfaces.js';
|
|
3
|
+
import { NpmPackage } from './smartnpm.classes.npmpackage.js';
|
|
4
|
+
import { RegistryCache } from './smartnpm.classes.registrycache.js';
|
|
5
|
+
export interface INpmRegistryConstructorOptions {
|
|
6
|
+
npmRegistryUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class NpmRegistry {
|
|
9
|
+
options: INpmRegistryConstructorOptions;
|
|
10
|
+
registryCache: RegistryCache;
|
|
11
|
+
private searchDomain;
|
|
12
|
+
constructor(optionsArg?: INpmRegistryConstructorOptions);
|
|
13
|
+
/**
|
|
14
|
+
* gets info about a package
|
|
15
|
+
* @param packageName
|
|
16
|
+
*/
|
|
17
|
+
getPackageInfo(packageName: string): Promise<NpmPackage>;
|
|
18
|
+
/**
|
|
19
|
+
* saves a package to disk
|
|
20
|
+
* @param packageName
|
|
21
|
+
* @param targetDir
|
|
22
|
+
*/
|
|
23
|
+
savePackageToDisk(packageName: string, targetDir: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* gets a file from a package as Smartfile
|
|
26
|
+
*/
|
|
27
|
+
getFileFromPackage(packageNameArg: string, filePathArg: string, optionsArg?: {
|
|
28
|
+
distTag?: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
}): Promise<plugins.smartfile.Smartfile>;
|
|
31
|
+
getFilesFromPackage(packageNameArg: string, filePath: string, optionsArg?: {
|
|
32
|
+
distTag?: string;
|
|
33
|
+
version?: string;
|
|
34
|
+
}): Promise<plugins.smartfile.Smartfile[]>;
|
|
35
|
+
getPackageAsSmartfileVirtualDir(packageNameArg: string): Promise<plugins.smartfile.VirtualDirectory>;
|
|
36
|
+
/**
|
|
37
|
+
* searches for a package on npm
|
|
38
|
+
* @param searchObjectArg
|
|
39
|
+
*/
|
|
40
|
+
searchOnNpm(searchObjectArg: ISearchObject): Promise<NpmPackage[]>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
2
|
+
import * as paths from './smartnpm.paths.js';
|
|
3
|
+
// interfaces
|
|
4
|
+
import './smartnpm.interfaces.js';
|
|
5
|
+
// classes
|
|
6
|
+
import { NpmPackage } from './smartnpm.classes.npmpackage.js';
|
|
7
|
+
import { RegistryCache } from './smartnpm.classes.registrycache.js';
|
|
8
|
+
export class NpmRegistry {
|
|
9
|
+
constructor(optionsArg = {}) {
|
|
10
|
+
this.searchDomain = 'https://api.npms.io/v2/search?q=';
|
|
11
|
+
const defaultOptions = {
|
|
12
|
+
npmRegistryUrl: 'https://registry.npmjs.org',
|
|
13
|
+
};
|
|
14
|
+
this.options = {
|
|
15
|
+
...defaultOptions,
|
|
16
|
+
...optionsArg,
|
|
17
|
+
};
|
|
18
|
+
this.registryCache = new RegistryCache(this);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* gets info about a package
|
|
22
|
+
* @param packageName
|
|
23
|
+
*/
|
|
24
|
+
async getPackageInfo(packageName) {
|
|
25
|
+
const fullMetadata = await plugins.packageJson(packageName, {
|
|
26
|
+
registryUrl: this.options.npmRegistryUrl,
|
|
27
|
+
fullMetadata: true,
|
|
28
|
+
}).catch(err => {
|
|
29
|
+
console.log(err);
|
|
30
|
+
return null;
|
|
31
|
+
});
|
|
32
|
+
const versionData = await plugins.packageJson(packageName, {
|
|
33
|
+
registryUrl: this.options.npmRegistryUrl,
|
|
34
|
+
allVersions: true
|
|
35
|
+
});
|
|
36
|
+
const npmPackage = await NpmPackage.createFromFullMetadataAndVersionData(this, fullMetadata, versionData);
|
|
37
|
+
return npmPackage;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* saves a package to disk
|
|
41
|
+
* @param packageName
|
|
42
|
+
* @param targetDir
|
|
43
|
+
*/
|
|
44
|
+
async savePackageToDisk(packageName, targetDir) {
|
|
45
|
+
plugins.smartfile.fs.ensureDirSync(paths.nogitDir);
|
|
46
|
+
const npmPackage = await this.getPackageInfo(packageName);
|
|
47
|
+
await npmPackage.saveToDisk(targetDir);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* gets a file from a package as Smartfile
|
|
51
|
+
*/
|
|
52
|
+
async getFileFromPackage(packageNameArg, filePathArg, optionsArg) {
|
|
53
|
+
// lets create a cache descriptor
|
|
54
|
+
const cacheDescriptor = {
|
|
55
|
+
registryUrl: this.options.npmRegistryUrl,
|
|
56
|
+
packageName: packageNameArg,
|
|
57
|
+
filePath: filePathArg,
|
|
58
|
+
distTag: optionsArg?.distTag,
|
|
59
|
+
version: optionsArg?.version
|
|
60
|
+
};
|
|
61
|
+
// lets see if we have something cached
|
|
62
|
+
const cachedFile = await this.registryCache.getCachedFile(cacheDescriptor);
|
|
63
|
+
// lets handle both occasions
|
|
64
|
+
if (!cachedFile) {
|
|
65
|
+
const npmPackage = await this.getPackageInfo(packageNameArg);
|
|
66
|
+
if (!optionsArg?.version && !optionsArg?.distTag) {
|
|
67
|
+
const latestAvailable = npmPackage.allDistTags.find(packageArg => packageArg.name === 'latest');
|
|
68
|
+
if (!latestAvailable) {
|
|
69
|
+
optionsArg = {
|
|
70
|
+
version: npmPackage.getBestMatchingVersion('*')
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const fileResult = await npmPackage.getFileFromPackage(filePathArg, optionsArg);
|
|
75
|
+
if (fileResult) {
|
|
76
|
+
this.registryCache.cacheSmartFile(cacheDescriptor, fileResult);
|
|
77
|
+
}
|
|
78
|
+
return fileResult;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return cachedFile;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async getFilesFromPackage(packageNameArg, filePath, optionsArg) {
|
|
85
|
+
const npmPackage = await this.getPackageInfo(packageNameArg);
|
|
86
|
+
if (!optionsArg?.version && !optionsArg?.distTag) {
|
|
87
|
+
const latestAvailable = npmPackage.allDistTags.find(packageDistTagArg => packageDistTagArg.name === 'latest');
|
|
88
|
+
if (!latestAvailable) {
|
|
89
|
+
optionsArg = {
|
|
90
|
+
version: npmPackage.getBestMatchingVersion('*')
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return npmPackage.getFilesFromPackage(filePath, optionsArg);
|
|
95
|
+
}
|
|
96
|
+
async getPackageAsSmartfileVirtualDir(packageNameArg) {
|
|
97
|
+
/**
|
|
98
|
+
* TODO: rewrite as memory only
|
|
99
|
+
*/
|
|
100
|
+
const baseDir = plugins.path.join(paths.nogitDir, packageNameArg.replace('/', '__'));
|
|
101
|
+
await plugins.smartfile.fs.ensureDir(baseDir);
|
|
102
|
+
await this.savePackageToDisk(packageNameArg, baseDir);
|
|
103
|
+
const virtualDir = await plugins.smartfile.VirtualDirectory.fromFsDirPath(baseDir);
|
|
104
|
+
await plugins.smartfile.fs.remove(baseDir);
|
|
105
|
+
return virtualDir;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* searches for a package on npm
|
|
109
|
+
* @param searchObjectArg
|
|
110
|
+
*/
|
|
111
|
+
async searchOnNpm(searchObjectArg) {
|
|
112
|
+
if (this.options.npmRegistryUrl !== 'https://registry.npmjs.org') {
|
|
113
|
+
throw Error(`cannot search registries other than registry.gitlab.com`);
|
|
114
|
+
}
|
|
115
|
+
let searchString = '';
|
|
116
|
+
const addToSearchString = (addStringArg) => {
|
|
117
|
+
searchString = `${searchString}+${addStringArg}`;
|
|
118
|
+
};
|
|
119
|
+
// name
|
|
120
|
+
if (searchObjectArg.name) {
|
|
121
|
+
searchString = `${searchObjectArg.name}`;
|
|
122
|
+
}
|
|
123
|
+
// metadata
|
|
124
|
+
if (searchObjectArg.author) {
|
|
125
|
+
addToSearchString(`author:${searchObjectArg.author}`);
|
|
126
|
+
}
|
|
127
|
+
if (searchObjectArg.maintainer) {
|
|
128
|
+
addToSearchString(`maintainer:${searchObjectArg.maintainer}`);
|
|
129
|
+
}
|
|
130
|
+
if (searchObjectArg.scope) {
|
|
131
|
+
addToSearchString(`scope:${searchObjectArg.scope}`);
|
|
132
|
+
}
|
|
133
|
+
// status
|
|
134
|
+
if (searchObjectArg.deprecated) {
|
|
135
|
+
if (searchObjectArg.deprecated === true) {
|
|
136
|
+
addToSearchString(`is:deprecated`);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
addToSearchString(`not:deprecated`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (searchObjectArg.unstable) {
|
|
143
|
+
if (searchObjectArg.unstable === true) {
|
|
144
|
+
addToSearchString(`is:unstable`);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
addToSearchString(`not:unstable`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (searchObjectArg.insecure) {
|
|
151
|
+
if (searchObjectArg.insecure === true) {
|
|
152
|
+
addToSearchString(`is:insecure`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
addToSearchString(`not:insecure`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// search behaviour
|
|
159
|
+
if (searchObjectArg.boostExact) {
|
|
160
|
+
addToSearchString(`boost-exact:${searchObjectArg.boostExact}`);
|
|
161
|
+
}
|
|
162
|
+
if (searchObjectArg.scoreEffect) {
|
|
163
|
+
addToSearchString(`score-effect:${searchObjectArg.scoreEffect}`);
|
|
164
|
+
}
|
|
165
|
+
// analytics
|
|
166
|
+
if (searchObjectArg.qualityWeight) {
|
|
167
|
+
addToSearchString(`author:${searchObjectArg.qualityWeight}`);
|
|
168
|
+
}
|
|
169
|
+
if (searchObjectArg.popularityWeight) {
|
|
170
|
+
addToSearchString(`author:${searchObjectArg.popularityWeight}`);
|
|
171
|
+
}
|
|
172
|
+
if (searchObjectArg.maintenanceWeight) {
|
|
173
|
+
addToSearchString(`author:${searchObjectArg.maintenanceWeight}`);
|
|
174
|
+
}
|
|
175
|
+
console.log(`info: Search on npm for ${plugins.consolecolor.coloredString(searchString, 'pink')}`);
|
|
176
|
+
let body;
|
|
177
|
+
try {
|
|
178
|
+
const response = await plugins.smartrequest.getJson(this.searchDomain + searchString, {});
|
|
179
|
+
body = response.body;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// we do nothing
|
|
183
|
+
}
|
|
184
|
+
// lets create the packageArray
|
|
185
|
+
const packageArray = [];
|
|
186
|
+
// if request failed just return it empty
|
|
187
|
+
if (!body || typeof body === 'string') {
|
|
188
|
+
return packageArray;
|
|
189
|
+
}
|
|
190
|
+
for (const packageSearchInfoArg of body.results) {
|
|
191
|
+
const npmPackage = await this.getPackageInfo(packageSearchInfoArg.package.name);
|
|
192
|
+
packageArray.push(npmPackage);
|
|
193
|
+
}
|
|
194
|
+
return packageArray;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0uY2xhc3Nlcy5ucG1yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bnBtLmNsYXNzZXMubnBtcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLGFBQWE7QUFDYixPQUE4QiwwQkFBMEIsQ0FBQztBQUV6RCxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFNdEYsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFBWSxhQUE2QyxFQUFFO1FBRm5ELGlCQUFZLEdBQUcsa0NBQWtDLENBQUM7UUFHeEQsTUFBTSxjQUFjLEdBQW1DO1lBQ3JELGNBQWMsRUFBRSw0QkFBNEI7U0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLGNBQWM7WUFDakIsR0FBRyxVQUFVO1NBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBbUI7UUFDN0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtZQUMxRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO1lBQ3hDLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxN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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import './smartnpm.plugins.js';
|
|
2
|
+
export class PackageDisttag {
|
|
3
|
+
constructor(nameArg, targetVersionArg) {
|
|
4
|
+
this.name = nameArg;
|
|
5
|
+
this.targetVersion = targetVersionArg;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0uY2xhc3Nlcy5wYWNrYWdlZGlzdHRhZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bnBtLmNsYXNzZXMucGFja2FnZWRpc3R0YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBeUIsdUJBQXVCLENBQUM7QUFFakQsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFBWSxPQUFlLEVBQUUsZ0JBQXdCO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDeEMsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface IVersionData {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
dependencies: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
};
|
|
7
|
+
devDependencies: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
dist: {
|
|
11
|
+
integrity: string;
|
|
12
|
+
shasum: string;
|
|
13
|
+
tarball: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare class PackageVersion implements IVersionData {
|
|
17
|
+
static createFromVersionData(versionDataArg: IVersionData): PackageVersion;
|
|
18
|
+
name: string;
|
|
19
|
+
version: string;
|
|
20
|
+
dependencies: {
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
};
|
|
23
|
+
devDependencies: {
|
|
24
|
+
[key: string]: string;
|
|
25
|
+
};
|
|
26
|
+
dist: {
|
|
27
|
+
integrity: string;
|
|
28
|
+
shasum: string;
|
|
29
|
+
tarball: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import './smartnpm.plugins.js';
|
|
2
|
+
export class PackageVersion {
|
|
3
|
+
static createFromVersionData(versionDataArg) {
|
|
4
|
+
const packageVersion = new PackageVersion();
|
|
5
|
+
Object.assign(packageVersion, versionDataArg);
|
|
6
|
+
return packageVersion;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0uY2xhc3Nlcy5wYWNrYWdldmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bnBtLmNsYXNzZXMucGFja2FnZXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBeUIsdUJBQXVCLENBQUM7QUFjakQsTUFBTSxPQUFPLGNBQWM7SUFDbEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGNBQTRCO1FBQzlELE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQVdGIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NpmRegistry } from './smartnpm.classes.npmregistry.js';
|
|
2
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
3
|
+
export interface ICacheDescriptor {
|
|
4
|
+
registryUrl: string;
|
|
5
|
+
packageName: string;
|
|
6
|
+
filePath: string;
|
|
7
|
+
distTag?: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class RegistryCache {
|
|
11
|
+
npmregistryRef: NpmRegistry;
|
|
12
|
+
levelCache: plugins.levelcache.LevelCache;
|
|
13
|
+
constructor(npmRegistryRefArg: NpmRegistry);
|
|
14
|
+
getCachedFile(cacheDescriptorArg: ICacheDescriptor): Promise<plugins.smartfile.Smartfile>;
|
|
15
|
+
cacheSmartFile(cacheDescriptorArg: ICacheDescriptor, smartfileArg: plugins.smartfile.Smartfile): Promise<void>;
|
|
16
|
+
getCacheDescriptorAsString(cacheDescriptorArg?: ICacheDescriptor): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import './smartnpm.classes.npmregistry.js';
|
|
2
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
3
|
+
export class RegistryCache {
|
|
4
|
+
constructor(npmRegistryRefArg) {
|
|
5
|
+
this.npmregistryRef = npmRegistryRefArg;
|
|
6
|
+
this.levelCache = new plugins.levelcache.LevelCache({
|
|
7
|
+
cacheId: encodeURIComponent(this.npmregistryRef.options.npmRegistryUrl),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
async getCachedFile(cacheDescriptorArg) {
|
|
11
|
+
const cacheEntry = await this.levelCache.retrieveCacheEntryByKey(this.getCacheDescriptorAsString(cacheDescriptorArg));
|
|
12
|
+
if (cacheEntry) {
|
|
13
|
+
return plugins.smartfile.Smartfile.fromFoldedJson(cacheEntry.contents.toString());
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
async cacheSmartFile(cacheDescriptorArg, smartfileArg) {
|
|
18
|
+
if (smartfileArg && cacheDescriptorArg.version) {
|
|
19
|
+
await this.levelCache.storeCacheEntryByKey(this.getCacheDescriptorAsString(cacheDescriptorArg), new plugins.levelcache.CacheEntry({
|
|
20
|
+
contents: Buffer.from(smartfileArg.foldToJson()),
|
|
21
|
+
ttl: plugins.smarttime.getMilliSecondsFromUnits({ hours: 1 })
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
await this.levelCache.storeCacheEntryByKey(this.getCacheDescriptorAsString(cacheDescriptorArg), new plugins.levelcache.CacheEntry({
|
|
26
|
+
contents: Buffer.from(smartfileArg.foldToJson()),
|
|
27
|
+
ttl: plugins.smarttime.getMilliSecondsFromUnits({ minutes: 1 })
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getCacheDescriptorAsString(cacheDescriptorArg) {
|
|
32
|
+
return `${cacheDescriptorArg.registryUrl}//+//${cacheDescriptorArg.packageName}//+//${cacheDescriptorArg.filePath}//+//${cacheDescriptorArg.distTag || cacheDescriptorArg.version}`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0uY2xhc3Nlcy5yZWdpc3RyeWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRucG0uY2xhc3Nlcy5yZWdpc3RyeWNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQTRCLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxPQUFPLE1BQU0sdUJBQXVCLENBQUM7QUFXakQsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxpQkFBOEI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDbEQsT0FBTyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUV4RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBRSxrQkFBb0M7UUFDOUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsY0FBYyxDQUFFLGtCQUFvQyxFQUFFLFlBQXlDO1FBQzFHLElBQUksWUFBWSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtZQUM5QyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztnQkFDaEksUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQzthQUM1RCxDQUFDLENBQUMsQ0FBQztTQUNMO2FBQU07WUFDTCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztnQkFDaEksUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQzthQUM5RCxDQUFDLENBQUMsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVNLDBCQUEwQixDQUFDLGtCQUFxQztRQUNyRSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxRQUFRLGtCQUFrQixDQUFDLFdBQVcsUUFBUSxrQkFBa0IsQ0FBQyxRQUFRLFFBQVEsa0JBQWtCLENBQUMsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RMLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ISearchObject {
|
|
2
|
+
name?: string;
|
|
3
|
+
author?: string;
|
|
4
|
+
maintainer?: string;
|
|
5
|
+
scope?: string;
|
|
6
|
+
keywords?: string[];
|
|
7
|
+
deprecated?: boolean;
|
|
8
|
+
unstable?: boolean;
|
|
9
|
+
insecure?: boolean;
|
|
10
|
+
boostExact?: boolean;
|
|
11
|
+
scoreEffect?: number;
|
|
12
|
+
qualityWeight?: number;
|
|
13
|
+
popularityWeight?: number;
|
|
14
|
+
maintenanceWeight?: number;
|
|
15
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as plugins from './smartnpm.plugins.js';
|
|
2
|
+
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
|
3
|
+
export const nogitDir = plugins.path.join(packageDir, '.nogit/');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRucG0ucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydG5wbS5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
export { path };
|
|
3
|
+
import * as consolecolor from '@pushrocks/consolecolor';
|
|
4
|
+
import * as levelcache from '@pushrocks/levelcache';
|
|
5
|
+
import * as smartarchive from '@pushrocks/smartarchive';
|
|
6
|
+
import * as smartfile from '@pushrocks/smartfile';
|
|
7
|
+
import * as smartpath from '@pushrocks/smartpath';
|
|
8
|
+
import * as smartpromise from '@pushrocks/smartpromise';
|
|
9
|
+
import * as smartrequest from '@pushrocks/smartrequest';
|
|
10
|
+
import * as smartversion from '@pushrocks/smartversion';
|
|
11
|
+
import * as smarttime from '@pushrocks/smarttime';
|
|
12
|
+
export { consolecolor, levelcache, smartarchive, smartfile, smartpath, smartpromise, smartrequest, smartversion, smarttime };
|
|
13
|
+
import packageJson from 'package-json';
|
|
14
|
+
export { packageJson };
|