@gapi/cli 1.8.147 → 1.8.149

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.
Files changed (54) hide show
  1. package/dist/core/services/root.service.d.ts +0 -2
  2. package/dist/core/services/root.service.js +10 -10
  3. package/dist/daemon-server/core/services/ipfs-hash-map.service.js +1 -1
  4. package/dist/tasks/start.d.ts +0 -5
  5. package/dist/tasks/start.js +38 -42
  6. package/package.json +3 -3
  7. package/dist/core/helpers/ps-list.d.ts +0 -12
  8. package/dist/core/helpers/ps-list.js +0 -68
  9. package/dist/core/helpers/stringEnum.d.ts +0 -3
  10. package/dist/core/helpers/stringEnum.js +0 -10
  11. package/dist/core/services/daemon-executor/daemon-executor.service.d.ts +0 -5
  12. package/dist/core/services/daemon-executor/daemon-executor.service.js +0 -38
  13. package/dist/core/services/file.d.ts +0 -12
  14. package/dist/core/services/file.js +0 -109
  15. package/dist/daemon-server/api-introspection/index.d.ts +0 -53
  16. package/dist/daemon-server/api-introspection/index.js +0 -6
  17. package/dist/daemon-server/core/core.module.d.ts +0 -2
  18. package/dist/daemon-server/core/core.module.js +0 -22
  19. package/dist/daemon-server/core/interceptors/notify.interceptor.d.ts +0 -5
  20. package/dist/daemon-server/core/interceptors/notify.interceptor.js +0 -41
  21. package/dist/daemon-server/core/services/child.service.d.ts +0 -3
  22. package/dist/daemon-server/core/services/child.service.js +0 -39
  23. package/dist/daemon-server/core/services/daemon.service.d.ts +0 -16
  24. package/dist/daemon-server/core/services/daemon.service.js +0 -107
  25. package/dist/daemon-server/core/services/ipfs/external-importer.d.ts +0 -57
  26. package/dist/daemon-server/core/services/ipfs/external-importer.js +0 -359
  27. package/dist/daemon-server/core/services/ipfs/npm-service.d.ts +0 -12
  28. package/dist/daemon-server/core/services/ipfs/npm-service.js +0 -55
  29. package/dist/daemon-server/core/services/ipfs/providers.d.ts +0 -5
  30. package/dist/daemon-server/core/services/ipfs/providers.js +0 -21
  31. package/dist/daemon-server/core/services/ipfs/request-cache.d.ts +0 -7
  32. package/dist/daemon-server/core/services/ipfs/request-cache.js +0 -31
  33. package/dist/daemon-server/core/services/ipfs/request.d.ts +0 -6
  34. package/dist/daemon-server/core/services/ipfs/request.js +0 -60
  35. package/dist/daemon-server/core/services/list.service.d.ts +0 -10
  36. package/dist/daemon-server/core/services/list.service.js +0 -55
  37. package/dist/daemon-server/core/services/plugin-loader.service.d.ts +0 -29
  38. package/dist/daemon-server/core/services/plugin-loader.service.js +0 -118
  39. package/dist/daemon-server/core/services/plugin-watcher.service.d.ts +0 -9
  40. package/dist/daemon-server/core/services/plugin-watcher.service.js +0 -92
  41. package/dist/daemon-server/core/templates/gapi-cli-config.template.d.ts +0 -1
  42. package/dist/daemon-server/core/templates/gapi-cli-config.template.js +0 -9
  43. package/dist/daemon-server/server.controller.d.ts +0 -16
  44. package/dist/daemon-server/server.controller.js +0 -85
  45. package/dist/daemon-server/server.module.d.ts +0 -2
  46. package/dist/daemon-server/server.module.js +0 -21
  47. package/dist/daemon-server/types/link-list.type.d.ts +0 -4
  48. package/dist/daemon-server/types/link-list.type.js +0 -22
  49. package/dist/daemon-server/types/server-metadata.type.d.ts +0 -5
  50. package/dist/daemon-server/types/server-metadata.type.js +0 -20
  51. package/dist/tasks/bootstrap.d.ts +0 -7
  52. package/dist/tasks/bootstrap.js +0 -64
  53. package/dist/tasks/daemon.d.ts +0 -45
  54. package/dist/tasks/daemon.js +0 -340
@@ -1,16 +0,0 @@
1
- import { FileService } from '../../../core/services/file';
2
- import { ILinkListType } from '../../api-introspection';
3
- import { ChildService } from './child.service';
4
- import { ListService } from './list.service';
5
- export declare class DaemonService {
6
- private listService;
7
- private childService;
8
- private fileService;
9
- constructor(listService: ListService, childService: ChildService, fileService: FileService);
10
- notifyDaemon(payload: ILinkListType): import("rxjs").Observable<ILinkListType>;
11
- private trigger;
12
- private saveMainNode;
13
- private writeGapiCliConfig;
14
- private findByRepoPath;
15
- private findLinkedRepos;
16
- }
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
- return new (P || (P = Promise))(function (resolve, reject) {
14
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
- step((generator = generator.apply(thisArg, _arguments || [])).next());
18
- });
19
- };
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.DaemonService = void 0;
22
- /* eslint-disable @typescript-eslint/no-explicit-any */
23
- const core_1 = require("@rxdi/core");
24
- const fs_1 = require("fs");
25
- const rxjs_1 = require("rxjs");
26
- const operators_1 = require("rxjs/operators");
27
- const util_1 = require("util");
28
- const file_1 = require("../../../core/services/file");
29
- const daemon_config_1 = require("../../daemon.config");
30
- const gapi_cli_config_template_1 = require("../templates/gapi-cli-config.template");
31
- const child_service_1 = require("./child.service");
32
- const list_service_1 = require("./list.service");
33
- let DaemonService = class DaemonService {
34
- constructor(listService, childService, fileService) {
35
- this.listService = listService;
36
- this.childService = childService;
37
- this.fileService = fileService;
38
- }
39
- notifyDaemon(payload) {
40
- return this.findByRepoPath(payload).pipe(operators_1.switchMap(([mainNode]) => this.saveMainNode(Object.assign(mainNode ? mainNode : {}, {
41
- serverMetadata: payload.serverMetadata,
42
- }))), operators_1.switchMap((mainNode) => this.findLinkedRepos(mainNode)), operators_1.switchMap((otherRepos) => rxjs_1.combineLatest([
43
- this.trigger(payload),
44
- ...otherRepos.map((r) => this.trigger(Object.assign(r, { serverMetadata: payload.serverMetadata }))),
45
- ])), operators_1.map(() => payload));
46
- }
47
- trigger(payload) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- if (!(yield util_1.promisify(fs_1.exists)(payload.repoPath))) {
50
- yield this.fileService.mkdirp(payload.repoPath).toPromise();
51
- }
52
- const gapiLocalConfig = `${payload.repoPath}/gapi-cli.conf.yml`;
53
- if (!(yield util_1.promisify(fs_1.exists)(gapiLocalConfig))) {
54
- yield this.writeGapiCliConfig(gapiLocalConfig, payload);
55
- }
56
- const args = [
57
- 'schema',
58
- 'introspect',
59
- '--collect-documents',
60
- '--collect-types',
61
- '--with-compressed',
62
- ];
63
- yield this.childService.spawn('gapi', args, payload.repoPath);
64
- return payload;
65
- });
66
- }
67
- saveMainNode(payload) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- let processList = [];
70
- const encoding = 'utf8';
71
- try {
72
- processList = JSON.parse(yield util_1.promisify(fs_1.readFile)(daemon_config_1.GAPI_DAEMON_PROCESS_LIST_FOLDER, { encoding }));
73
- }
74
- catch (e) { }
75
- yield util_1.promisify(fs_1.writeFile)(daemon_config_1.GAPI_DAEMON_PROCESS_LIST_FOLDER, JSON.stringify(processList
76
- .filter((p) => p.repoPath !== payload.repoPath)
77
- .concat(payload)), { encoding });
78
- return payload;
79
- });
80
- }
81
- writeGapiCliConfig(gapiLocalConfig, payload) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- let port = 9000;
84
- if (payload.serverMetadata.port) {
85
- port = payload.serverMetadata.port;
86
- }
87
- return yield util_1.promisify(fs_1.writeFile)(gapiLocalConfig, gapi_cli_config_template_1.GAPI_CLI_CONFIG_TEMPLATE(port));
88
- });
89
- }
90
- findByRepoPath(payload) {
91
- return rxjs_1.from(this.listService.readList()).pipe(operators_1.switchMap((list) => list.length
92
- ? this.listService.findByRepoPath(payload.repoPath)
93
- : rxjs_1.of([])));
94
- }
95
- findLinkedRepos(repo) {
96
- return repo && repo.linkName
97
- ? this.listService.findByLinkName(repo.linkName).exclude(repo.repoPath)
98
- : rxjs_1.of([]);
99
- }
100
- };
101
- DaemonService = __decorate([
102
- core_1.Service(),
103
- __metadata("design:paramtypes", [list_service_1.ListService,
104
- child_service_1.ChildService,
105
- file_1.FileService])
106
- ], DaemonService);
107
- exports.DaemonService = DaemonService;
@@ -1,57 +0,0 @@
1
- import { BehaviorSubject, Observable } from 'rxjs';
2
- import { ExternalImporterConfig, ExternalImporterIpfsConfig, ExternalModuleConfiguration } from './external-importer-config';
3
- import { IPFS_PROVIDERS } from './providers';
4
- export interface PackagesConfig {
5
- dependencies: string[];
6
- provider: string;
7
- }
8
- export declare class ExternalImporter {
9
- defaultJsonFolder: string;
10
- defaultTypescriptConfigJsonFolder: string;
11
- private requestService;
12
- private fileService;
13
- private npmService;
14
- providers: BehaviorSubject<{
15
- name: IPFS_PROVIDERS;
16
- link: string;
17
- }[]>;
18
- defaultProvider: string;
19
- defaultNamespaceFolder: string;
20
- defaultOutputFolder: string;
21
- setDefaultProvider(provider: IPFS_PROVIDERS): void;
22
- getProvider(name: IPFS_PROVIDERS): string;
23
- setProviders(...args: {
24
- name: IPFS_PROVIDERS;
25
- link: string;
26
- }[]): void;
27
- importExternalModule(module: string): Observable<unknown>;
28
- validateConfig(config: ExternalImporterConfig): void;
29
- isWeb(): boolean;
30
- loadTypescriptConfigJson(): {
31
- compilerOptions?: {
32
- typeRoots?: string[];
33
- };
34
- };
35
- addNamespaceToTypeRoots(namespace: string): Observable<boolean>;
36
- writeTypescriptConfigFile(file: any): void;
37
- loadPackageJson(): any;
38
- loadNpmPackageJson(): any;
39
- prepareDependencies(): {
40
- name: string;
41
- version: any;
42
- }[];
43
- isModulePresent(hash: any): number;
44
- filterUniquePackages(): number;
45
- defaultIpfsConfig(): {
46
- provider: string;
47
- dependencies: any[];
48
- }[];
49
- addPackageToJson(hash: string): void;
50
- downloadIpfsModules(modules: ExternalImporterIpfsConfig[]): Observable<[any]>;
51
- downloadIpfsModuleConfig(config: ExternalImporterIpfsConfig): Observable<ExternalModuleConfiguration>;
52
- private combineDependencies;
53
- private writeFakeIndexIfMultiModule;
54
- downloadIpfsModule(config: ExternalImporterIpfsConfig): any;
55
- downloadTypings(moduleLink: string, folder: string, fileName: string, config: ExternalImporterConfig): Observable<unknown>;
56
- importModule(config: ExternalImporterConfig, token: string, { folderOverride, waitUntil }?: any): Promise<any>;
57
- }
@@ -1,359 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ExternalImporter = void 0;
13
- /* eslint-disable @typescript-eslint/no-explicit-any */
14
- const rxjs_1 = require("rxjs");
15
- const operators_1 = require("rxjs/operators");
16
- const file_1 = require("../../../../core/services/file");
17
- const providers_1 = require("./providers");
18
- const SystemJS = require("systemjs");
19
- const core_1 = require("@rxdi/core");
20
- const npm_service_1 = require("./npm-service");
21
- const request_1 = require("./request");
22
- let ExternalImporter = class ExternalImporter {
23
- constructor() {
24
- this.defaultJsonFolder = `${process.cwd()}/package.json`;
25
- this.defaultTypescriptConfigJsonFolder = `${process.cwd()}/tsconfig.json`;
26
- this.providers = new rxjs_1.BehaviorSubject(providers_1.IPFS_PROVIDERS);
27
- this.defaultProvider = this.getProvider('main-ipfs-node');
28
- this.defaultNamespaceFolder = '@types';
29
- this.defaultOutputFolder = 'node_modules';
30
- }
31
- setDefaultProvider(provider) {
32
- this.defaultProvider = this.getProvider(provider);
33
- }
34
- getProvider(name) {
35
- return this.providers.getValue().filter((p) => p.name === name)[0].link;
36
- }
37
- setProviders(...args) {
38
- this.providers.next([...this.providers.getValue(), ...args]);
39
- }
40
- importExternalModule(module) {
41
- return rxjs_1.from(SystemJS.import(module));
42
- }
43
- validateConfig(config) {
44
- if (!config) {
45
- throw new Error('Bootstrap: missing config');
46
- }
47
- }
48
- isWeb() {
49
- let value = false;
50
- try {
51
- if (window) {
52
- value = true;
53
- }
54
- }
55
- catch (e) { }
56
- return value;
57
- }
58
- loadTypescriptConfigJson() {
59
- let tsConfig = {};
60
- try {
61
- tsConfig = this.fileService.readFile(this.defaultTypescriptConfigJsonFolder);
62
- }
63
- catch (e) {
64
- console.error(`
65
- Error in loading tsconfig.json in ${this.defaultTypescriptConfigJsonFolder}
66
- Error: ${e}
67
- Fallback to creating tsconfig.json
68
- `);
69
- }
70
- tsConfig.compilerOptions = tsConfig.compilerOptions || {};
71
- tsConfig.compilerOptions.typeRoots =
72
- tsConfig.compilerOptions.typeRoots || [];
73
- return tsConfig;
74
- }
75
- addNamespaceToTypeRoots(namespace) {
76
- const defaultNamespace = `./${this.defaultOutputFolder}/@types/${namespace}`;
77
- const tsConfig = this.loadTypescriptConfigJson();
78
- const foundNamespace = tsConfig.compilerOptions.typeRoots.filter((t) => t === defaultNamespace).length;
79
- if (!foundNamespace) {
80
- tsConfig.compilerOptions.typeRoots.push(defaultNamespace);
81
- this.writeTypescriptConfigFile(tsConfig);
82
- }
83
- return rxjs_1.of(true);
84
- }
85
- writeTypescriptConfigFile(file) {
86
- this.fileService.writeFileSync(process.cwd() + '/tsconfig.json', file);
87
- }
88
- loadPackageJson() {
89
- let packageJson;
90
- try {
91
- packageJson = this.fileService.readFile(this.defaultJsonFolder);
92
- }
93
- catch (e) {
94
- packageJson = {};
95
- }
96
- return packageJson;
97
- }
98
- loadNpmPackageJson() {
99
- let packageJson;
100
- try {
101
- packageJson = this.fileService.readFile(`${process.cwd()}/package.json`);
102
- }
103
- catch (e) {
104
- packageJson = {};
105
- }
106
- return packageJson;
107
- }
108
- prepareDependencies() {
109
- const file = this.loadNpmPackageJson();
110
- if (file.dependencies) {
111
- return Object.keys(file.dependencies).map((name) => ({
112
- name,
113
- version: file.dependencies[name],
114
- }));
115
- }
116
- return [];
117
- }
118
- isModulePresent(hash) {
119
- const file = this.loadPackageJson();
120
- let ipfsConfig = file.ipfs;
121
- const found = [];
122
- if (!ipfsConfig) {
123
- ipfsConfig = this.defaultIpfsConfig();
124
- }
125
- ipfsConfig.forEach((c) => {
126
- const present = c.dependencies.filter((dep) => dep === hash);
127
- if (present.length) {
128
- found.push(present[0]);
129
- }
130
- });
131
- return found.length;
132
- }
133
- filterUniquePackages() {
134
- const file = this.loadPackageJson();
135
- let ipfsConfig = file.ipfs;
136
- let dups = [];
137
- if (!ipfsConfig) {
138
- ipfsConfig = this.defaultIpfsConfig();
139
- }
140
- ipfsConfig.forEach((c) => {
141
- const uniq = c.dependencies
142
- .map((name) => {
143
- return { count: 1, name: name };
144
- })
145
- .reduce((a, b) => {
146
- a[b.name] = (a[b.name] || 0) + b.count;
147
- return a;
148
- }, {});
149
- const duplicates = Object.keys(uniq).filter((a) => uniq[a] > 1);
150
- dups = [...dups, ...duplicates];
151
- });
152
- if (dups.length) {
153
- throw new Error(`There are packages which are with the same hash ${JSON.stringify(dups)}`);
154
- }
155
- return dups.length;
156
- }
157
- defaultIpfsConfig() {
158
- return [{ provider: this.defaultProvider, dependencies: [] }];
159
- }
160
- addPackageToJson(hash) {
161
- const file = this.loadPackageJson();
162
- let ipfsConfig = file.ipfs;
163
- if (!ipfsConfig) {
164
- ipfsConfig = this.defaultIpfsConfig();
165
- }
166
- const packages = this.prepareDependencies();
167
- if (packages.length) {
168
- file.packages = packages;
169
- }
170
- if (this.isModulePresent(hash)) {
171
- console.log(`Package with hash: ${hash} present and will not be downloaded!`);
172
- }
173
- else {
174
- ipfsConfig[0].dependencies.push(hash);
175
- file.ipfs = ipfsConfig;
176
- }
177
- this.fileService.writeFileSync(this.defaultJsonFolder, file);
178
- }
179
- downloadIpfsModules(modules) {
180
- const latest = modules.map((m) => this.downloadIpfsModule(m));
181
- return rxjs_1.combineLatest(latest.length ? latest : rxjs_1.of());
182
- }
183
- downloadIpfsModuleConfig(config) {
184
- return this.requestService.get(config.provider + config.hash).pipe(operators_1.map((r) => {
185
- if (!r) {
186
- throw new Error('Recieved undefined from provided address' +
187
- config.provider +
188
- config.hash);
189
- }
190
- let res = r;
191
- const metaString = '<!--meta-rxdi-ipfs-module-->';
192
- if (res.includes(metaString)) {
193
- try {
194
- res = res.split(metaString)[1];
195
- }
196
- catch (e) { }
197
- }
198
- return res;
199
- }), operators_1.map((r) => {
200
- let res = r;
201
- try {
202
- res = JSON.parse(r);
203
- }
204
- catch (e) { }
205
- return res;
206
- }));
207
- }
208
- combineDependencies(dependencies, config) {
209
- return rxjs_1.combineLatest([
210
- ...(dependencies.length
211
- ? dependencies.map((h) => this.downloadIpfsModule({ provider: config.provider, hash: h }))
212
- : [rxjs_1.of('')]),
213
- ]);
214
- }
215
- writeFakeIndexIfMultiModule(folder, nameSpaceFakeIndex) {
216
- if (nameSpaceFakeIndex.length === 2) {
217
- return this.fileService.writeFileAsyncP(`${folder}${this.defaultNamespaceFolder}/${nameSpaceFakeIndex[0]}`, 'index.d.ts', '');
218
- }
219
- else {
220
- return rxjs_1.of(true);
221
- }
222
- }
223
- downloadIpfsModule(config) {
224
- if (!config.provider) {
225
- throw new Error(`Missing configuration inside ${config.hash}`);
226
- }
227
- if (!config.hash) {
228
- throw new Error(`Missing configuration inside ${config.provider}`);
229
- }
230
- let folder;
231
- let moduleLink;
232
- const configLink = config.provider + config.hash;
233
- let moduleTypings;
234
- let moduleName;
235
- let nameSpaceFakeIndex;
236
- let originalModuleConfig;
237
- let isNamespace;
238
- let isRegular;
239
- return this.downloadIpfsModuleConfig(config).pipe(operators_1.tap((res) => {
240
- if (!res['module']) {
241
- console.log('Todo: create logic to load module which is not from rxdi infrastructure for now can be used useDynamic which will do the same job!');
242
- }
243
- }), operators_1.filter((res) => !!res.module), operators_1.map((externalModule) => {
244
- moduleName = externalModule.name;
245
- nameSpaceFakeIndex = moduleName.split('/');
246
- folder = `${process.cwd()}/${this.defaultOutputFolder}/`;
247
- moduleLink = `${config.provider}${externalModule.module}`;
248
- moduleTypings = `${config.provider}${externalModule.typings}`;
249
- externalModule.dependencies = externalModule.dependencies || [];
250
- externalModule.packages = externalModule.packages || [];
251
- originalModuleConfig = externalModule;
252
- this.npmService.setPackages(externalModule.packages);
253
- isNamespace = moduleName.split('/').length === 2;
254
- isRegular = isNamespace ? moduleName : moduleName.split('/')[0];
255
- console.log(`Package config for module ${moduleName} downloaded! ${JSON.stringify(externalModule)}`);
256
- return externalModule;
257
- }), operators_1.switchMap((externalModule) => this.combineDependencies(externalModule.dependencies, config)), operators_1.switchMap(() => {
258
- console.log(`--------------------${moduleName}--------------------`);
259
- console.log(`\nDownloading... ${configLink} `);
260
- console.log(`Config: ${JSON.stringify(originalModuleConfig, null, 2)} \n`);
261
- return this.requestService.get(moduleLink);
262
- }), operators_1.switchMap((file) => this.fileService.writeFile(folder + moduleName, 'index.js', moduleName, file)), operators_1.switchMap(() => this.requestService.get(moduleTypings)), operators_1.switchMap((file) => this.fileService.writeFile(folder + `${this.defaultNamespaceFolder}/${isRegular}`, 'index.d.ts', moduleName, file)), operators_1.tap(() => {
263
- if (process.env.WRITE_FAKE_INDEX) {
264
- this.writeFakeIndexIfMultiModule(folder, nameSpaceFakeIndex);
265
- }
266
- }), operators_1.switchMap(() => this.addNamespaceToTypeRoots(moduleName.split('/')[0])), operators_1.map(() => ({
267
- provider: config.provider,
268
- hash: config.hash,
269
- version: originalModuleConfig.version,
270
- name: originalModuleConfig.name,
271
- dependencies: originalModuleConfig.dependencies,
272
- packages: originalModuleConfig.packages,
273
- })), operators_1.tap(() => {
274
- if (originalModuleConfig.packages.length) {
275
- this.npmService.installPackages();
276
- }
277
- }));
278
- }
279
- downloadTypings(moduleLink, folder, fileName, config) {
280
- if (!moduleLink) {
281
- return rxjs_1.of(true);
282
- }
283
- return this.requestService.get(moduleLink).pipe(operators_1.take(1), operators_1.map((res) => {
284
- console.log(`Done!`);
285
- return res;
286
- }), operators_1.switchMap((res) => this.fileService.writeFile(folder, fileName, config.typingsFileName, res)));
287
- }
288
- importModule(config, token, { folderOverride, waitUntil } = {}) {
289
- const timer$ = rxjs_1.timer(waitUntil || 20 * 1000);
290
- this.validateConfig(config);
291
- if (this.isWeb()) {
292
- SystemJS.config(Object.assign({
293
- map: {
294
- [token]: config.link,
295
- },
296
- }, config.SystemJsConfig));
297
- return SystemJS.import(config.link);
298
- }
299
- return new rxjs_1.Observable((observer) => {
300
- const moduleName = config.fileName;
301
- const moduleNamespace = config.namespace;
302
- const moduleLink = config.link;
303
- const moduleExtension = config.extension;
304
- const moduleSystemJsConfig = config.SystemJsConfig || {};
305
- const modulesFolder = config.outputFolder || `/${this.defaultOutputFolder}/`;
306
- const fileFullPath = `${folderOverride || process.cwd()}${modulesFolder}/${moduleNamespace}/${moduleName}.${moduleExtension}`;
307
- const folder = `${folderOverride || process.cwd()}${modulesFolder}${moduleNamespace}`;
308
- const fileName = `${moduleName}.${moduleExtension}`;
309
- Object.assign(moduleSystemJsConfig, {
310
- paths: Object.assign({ [moduleName]: fileFullPath }, moduleSystemJsConfig.paths),
311
- });
312
- SystemJS.config(moduleSystemJsConfig);
313
- if (this.fileService.isPresent(fileFullPath)) {
314
- console.log(`Bootstrap -> @Service('${moduleName}'): present inside .${modulesFolder}${moduleNamespace}/${moduleName}.${moduleExtension} folder and loaded from there`);
315
- this.importExternalModule(moduleName)
316
- .pipe(operators_1.take(1))
317
- .subscribe((m) => {
318
- observer.next(m);
319
- observer.complete();
320
- }, (err) => {
321
- observer.error(err);
322
- observer.complete();
323
- });
324
- }
325
- else {
326
- console.log(`Bootstrap -> @Service('${moduleName}'): will be downloaded inside .${modulesFolder}${moduleNamespace}/${moduleName}.${moduleExtension} folder and loaded from there`);
327
- console.log(`Bootstrap -> @Service('${moduleName}'): ${moduleLink} downloading...`);
328
- this.requestService
329
- .get(moduleLink)
330
- .pipe(operators_1.take(1), operators_1.tap(() => console.log(`Done!`)), operators_1.switchMap((res) => this.fileService.writeFile(folder, fileName, config.fileName, res)), operators_1.switchMap(() => this.downloadTypings(config.typings, folder, fileName, config)), operators_1.switchMap(() => this.importExternalModule(moduleName)))
331
- .subscribe((m) => {
332
- observer.next(m);
333
- observer.complete();
334
- }, (err) => {
335
- observer.error(err);
336
- observer.complete();
337
- });
338
- }
339
- })
340
- .pipe(operators_1.takeUntil(timer$))
341
- .toPromise();
342
- }
343
- };
344
- __decorate([
345
- core_1.Injector(request_1.RequestService),
346
- __metadata("design:type", request_1.RequestService)
347
- ], ExternalImporter.prototype, "requestService", void 0);
348
- __decorate([
349
- core_1.Injector(file_1.FileService),
350
- __metadata("design:type", file_1.FileService)
351
- ], ExternalImporter.prototype, "fileService", void 0);
352
- __decorate([
353
- core_1.Injector(npm_service_1.NpmService),
354
- __metadata("design:type", npm_service_1.NpmService)
355
- ], ExternalImporter.prototype, "npmService", void 0);
356
- ExternalImporter = __decorate([
357
- core_1.Service()
358
- ], ExternalImporter);
359
- exports.ExternalImporter = ExternalImporter;
@@ -1,12 +0,0 @@
1
- /// <reference types="node" />
2
- import { BehaviorSubject } from 'rxjs';
3
- import childProcess = require('child_process');
4
- import { NpmPackageConfig } from './external-importer-config';
5
- export declare class NpmService {
6
- packagesToDownload: BehaviorSubject<NpmPackageConfig[]>;
7
- packages: string[];
8
- child: childProcess.ChildProcess;
9
- setPackages(packages: NpmPackageConfig[]): void;
10
- preparePackages(): void;
11
- installPackages(): Promise<unknown>;
12
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.NpmService = void 0;
10
- const rxjs_1 = require("rxjs");
11
- const childProcess = require("child_process");
12
- const core_1 = require("@rxdi/core");
13
- let NpmService = class NpmService {
14
- constructor() {
15
- this.packagesToDownload = new rxjs_1.BehaviorSubject([]);
16
- this.packages = [];
17
- }
18
- setPackages(packages) {
19
- this.packagesToDownload.next([
20
- ...this.packagesToDownload.getValue(),
21
- ...packages,
22
- ]);
23
- }
24
- preparePackages() {
25
- const arr = this.packagesToDownload.getValue() || [];
26
- this.packages = [...new Set(arr.map((p) => `${p.name}@${p.version}`))];
27
- }
28
- installPackages() {
29
- return new Promise(() => {
30
- this.preparePackages();
31
- if (this.child) {
32
- this.child.stdout.removeAllListeners('data');
33
- this.child.stderr.removeAllListeners('data');
34
- this.child.removeAllListeners('exit');
35
- this.child.kill();
36
- }
37
- console.log(`Installing npm packages on child process! ${this.packages.toString()}`);
38
- this.child = childProcess.spawn('npm', ['i', ...this.packages]);
39
- this.child.stdout.on('data', (data) => process.stdout.write(data));
40
- this.child.stderr.on('data', (data) => {
41
- process.stdout.write(data);
42
- // reject(data)
43
- });
44
- this.child.on('exit', (code) => {
45
- console.log(`Child process exited with code ${code}`);
46
- console.log(`Installing npm packages DONE! ${this.packages.toString()}`);
47
- this.child = null;
48
- });
49
- });
50
- }
51
- };
52
- NpmService = __decorate([
53
- core_1.Service()
54
- ], NpmService);
55
- exports.NpmService = NpmService;
@@ -1,5 +0,0 @@
1
- export declare const IPFS_PROVIDERS: {
2
- name: IPFS_PROVIDERS;
3
- link: string;
4
- }[];
5
- export declare type IPFS_PROVIDERS = 'cloudflare' | 'main-ipfs-node' | 'local' | 'infura';
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPFS_PROVIDERS = void 0;
4
- exports.IPFS_PROVIDERS = [
5
- {
6
- name: 'cloudflare',
7
- link: 'https://cloudflare-ipfs.com/ipfs/',
8
- },
9
- {
10
- name: 'main-ipfs-node',
11
- link: 'https://ipfs.io/ipfs/',
12
- },
13
- {
14
- name: 'infura',
15
- link: 'https://ipfs.infura.io/ipfs/',
16
- },
17
- {
18
- name: 'local',
19
- link: 'http://127.0.0.1:8080/ipfs/',
20
- },
21
- ];
@@ -1,7 +0,0 @@
1
- import { CacheLayer, CacheLayerItem, CacheService } from '@rxdi/core';
2
- export declare class RequestCacheService extends CacheService {
3
- cacheLayer: CacheLayer<CacheLayerItem<any>>;
4
- constructor();
5
- put(key: any, data: any): CacheLayerItem<any>;
6
- get(key: any): CacheLayerItem<any>;
7
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RequestCacheService = void 0;
13
- /* eslint-disable @typescript-eslint/no-explicit-any */
14
- const core_1 = require("@rxdi/core");
15
- let RequestCacheService = class RequestCacheService extends core_1.CacheService {
16
- constructor() {
17
- super(core_1.Container.get(core_1.BootstrapLogger));
18
- this.cacheLayer = this.createLayer({ name: 'request-cache-layer' });
19
- }
20
- put(key, data) {
21
- return this.cacheLayer.putItem({ key, data });
22
- }
23
- get(key) {
24
- return this.cacheLayer.getItem(key);
25
- }
26
- };
27
- RequestCacheService = __decorate([
28
- core_1.Service(),
29
- __metadata("design:paramtypes", [])
30
- ], RequestCacheService);
31
- exports.RequestCacheService = RequestCacheService;