piral-cli 0.15.0-beta.4512 → 0.15.0-beta.4544

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.
@@ -6,7 +6,7 @@ import { Bundler } from '../types';
6
6
  interface Pilet {
7
7
  bundler: Bundler;
8
8
  root: string;
9
- meta: PiletMetadata;
9
+ getMeta(basePath: string): PiletMetadata;
10
10
  }
11
11
  export interface PiletInjectorConfig extends KrasInjectorConfig {
12
12
  pilets: Array<Pilet>;
@@ -23,21 +23,22 @@ interface PiletMetadata {
23
23
  }
24
24
  export default class PiletInjector implements KrasInjector {
25
25
  config: PiletInjectorConfig;
26
- private piletApi;
26
+ private serverConfig;
27
27
  private indexPath;
28
- constructor(options: PiletInjectorConfig, config: KrasConfiguration, core: EventEmitter);
28
+ constructor(config: PiletInjectorConfig, serverConfig: KrasConfiguration, core: EventEmitter);
29
29
  get active(): boolean;
30
30
  set active(value: boolean);
31
31
  get name(): string;
32
32
  getOptions(): {};
33
33
  setOptions(): void;
34
- getMeta(): Promise<string>;
34
+ getPiletApi(baseUrl: string): string;
35
+ getMeta(baseUrl: string): Promise<string>;
35
36
  loadRemoteFeed(feed?: string | Array<string>): Promise<Array<Array<PiletMetadata>>>;
36
37
  mergePilets(localPilets: Array<PiletMetadata>, remoteFeeds: Array<Array<PiletMetadata>>): PiletMetadata[];
37
38
  sendContent(content: Buffer | string, type: string, url: string): KrasResponse;
38
39
  sendFile(target: string, url: string): KrasResponse;
39
- sendResponse(path: string, url: string): Promise<KrasResult>;
40
- sendIndexFile(target: string, url: string): KrasResponse;
40
+ sendResponse(path: string, url: string, baseUrl: string): Promise<KrasResult>;
41
+ sendIndexFile(target: string, url: string, baseUrl: string): KrasResponse;
41
42
  handle(req: KrasRequest): KrasResponse;
42
43
  }
43
44
  export {};
@@ -16,8 +16,7 @@ const log_1 = require("../common/log");
16
16
  const spec_1 = require("../common/spec");
17
17
  const config_1 = require("../common/config");
18
18
  const external_1 = require("../external");
19
- const { host } = config_1.config;
20
- function fillPiletMeta(pilet, basePath, metaFile) {
19
+ function fillPiletMeta(pilet, metaFile, subPath) {
21
20
  const { root, bundler } = pilet;
22
21
  const metaPath = (0, path_1.join)(root, metaFile);
23
22
  const packagePath = (0, path_1.join)(root, 'package.json');
@@ -25,10 +24,11 @@ function fillPiletMeta(pilet, basePath, metaFile) {
25
24
  const metaOverride = (0, fs_1.existsSync)(metaPath) ? external_1.jju.parse((0, fs_1.readFileSync)(metaPath, 'utf8')) : undefined;
26
25
  const file = bundler.bundle.name.replace(/^[\/\\]/, '');
27
26
  const target = (0, path_1.join)(bundler.bundle.dir, file);
28
- const url = new url_1.URL(file, basePath);
29
- const meta = Object.assign(Object.assign(Object.assign({ custom: def.custom, config: def.piletConfig }, metaOverride), { name: def.name, version: def.version, link: `${url.href}?updated=${Date.now()}` }), (0, spec_1.getPiletSpecMeta)(target, basePath));
30
- pilet.meta = meta;
31
- return JSON.stringify(meta);
27
+ pilet.getMeta = (parentPath) => {
28
+ const basePath = `${parentPath}${subPath}`;
29
+ const url = new url_1.URL(file, basePath);
30
+ return Object.assign(Object.assign(Object.assign({ custom: def.custom, config: def.piletConfig }, metaOverride), { name: def.name, version: def.version, link: `${url.href}?updated=${Date.now()}` }), (0, spec_1.getPiletSpecMeta)(target, basePath));
31
+ };
32
32
  }
33
33
  function loadFeed(feed) {
34
34
  var _a;
@@ -51,29 +51,31 @@ function loadFeed(feed) {
51
51
  });
52
52
  }
53
53
  class PiletInjector {
54
- constructor(options, config, core) {
55
- this.config = options;
54
+ constructor(config, serverConfig, core) {
55
+ this.config = config;
56
+ this.serverConfig = serverConfig;
56
57
  if (this.config.active) {
57
- // either take a full URI or make it an absolute path relative to the current origin
58
- this.piletApi = /^https?:/.test(options.api)
59
- ? options.api
60
- : `${config.ssl ? 'https' : 'http'}://${host}:${config.port}${options.api}`;
61
- const { pilets, api, publicUrl } = options;
58
+ const { pilets, api, publicUrl } = config;
62
59
  this.indexPath = `${publicUrl}index.html`;
63
60
  const cbs = {};
64
61
  core.on('user-connected', (e) => {
65
62
  if (e.target === '*' && e.url === api.substring(1)) {
66
- cbs[e.id] = (msg) => e.ws.send(msg);
63
+ cbs[e.id] = {
64
+ baseUrl: e.req.headers.origin,
65
+ notify: (msg) => e.ws.send(msg),
66
+ };
67
67
  }
68
68
  });
69
69
  core.on('user-disconnected', (e) => {
70
70
  delete cbs[e.id];
71
71
  });
72
72
  pilets.forEach((p, i) => p.bundler.on(() => {
73
- const basePath = `${this.piletApi}/${i}/`;
74
- const meta = fillPiletMeta(p, basePath, options.meta);
73
+ fillPiletMeta(p, config.meta, `/${i}/`);
75
74
  for (const id of Object.keys(cbs)) {
76
- cbs[id](meta);
75
+ const { baseUrl, notify } = cbs[id];
76
+ const basePath = this.getPiletApi(baseUrl);
77
+ const meta = JSON.stringify(p.getMeta(basePath));
78
+ notify(meta);
77
79
  }
78
80
  }));
79
81
  }
@@ -91,10 +93,24 @@ class PiletInjector {
91
93
  return {};
92
94
  }
93
95
  setOptions() { }
94
- getMeta() {
96
+ getPiletApi(baseUrl) {
97
+ const { api } = this.config;
98
+ if (/^https?:/.test(api)) {
99
+ return api;
100
+ }
101
+ else if (baseUrl) {
102
+ return `${baseUrl}${api}`;
103
+ }
104
+ else {
105
+ const { ssl, port } = this.serverConfig;
106
+ const { host } = config_1.config;
107
+ return `${ssl ? 'https' : 'http'}://${host}:${port}${api}`;
108
+ }
109
+ }
110
+ getMeta(baseUrl) {
95
111
  return __awaiter(this, void 0, void 0, function* () {
96
112
  const { pilets, feed } = this.config;
97
- const localPilets = pilets.map((pilet) => pilet.meta).filter(Boolean);
113
+ const localPilets = pilets.map((pilet) => { var _a; return (_a = pilet.getMeta) === null || _a === void 0 ? void 0 : _a.call(pilet, baseUrl); }).filter(Boolean);
98
114
  const mergedPilets = this.mergePilets(localPilets, yield this.loadRemoteFeed(feed));
99
115
  return JSON.stringify(mergedPilets);
100
116
  });
@@ -136,7 +152,7 @@ class PiletInjector {
136
152
  const type = (_a = external_1.mime.getType(target)) !== null && _a !== void 0 ? _a : 'application/octet-stream';
137
153
  return this.sendContent(content, type, url);
138
154
  }
139
- sendResponse(path, url) {
155
+ sendResponse(path, url, baseUrl) {
140
156
  return __awaiter(this, void 0, void 0, function* () {
141
157
  const { pilets } = this.config;
142
158
  const [index, ...rest] = path.split('/');
@@ -144,7 +160,7 @@ class PiletInjector {
144
160
  const bundler = pilet === null || pilet === void 0 ? void 0 : pilet.bundler;
145
161
  if (!path) {
146
162
  yield (bundler === null || bundler === void 0 ? void 0 : bundler.ready());
147
- const content = yield this.getMeta();
163
+ const content = yield this.getMeta(baseUrl);
148
164
  return this.sendContent(content, 'application/json', url);
149
165
  }
150
166
  else {
@@ -157,10 +173,10 @@ class PiletInjector {
157
173
  }
158
174
  });
159
175
  }
160
- sendIndexFile(target, url) {
176
+ sendIndexFile(target, url, baseUrl) {
161
177
  const indexHtml = (0, fs_1.readFileSync)(target, 'utf8');
162
178
  // mechanism to inject server side debug piletApi config into piral emulator
163
- const windowInjectionScript = `window['dbg:pilet-api'] = '${this.piletApi}';`;
179
+ const windowInjectionScript = `window['dbg:pilet-api'] = '${this.getPiletApi(baseUrl)}';`;
164
180
  const findStr = `<script`;
165
181
  const replaceStr = `<script>/* Pilet Debugging Emulator Config Injection */${windowInjectionScript}</script><script`;
166
182
  const content = indexHtml.replace(`${findStr}`, `${replaceStr}`);
@@ -168,13 +184,14 @@ class PiletInjector {
168
184
  }
169
185
  handle(req) {
170
186
  const { app, api, publicUrl } = this.config;
187
+ const baseUrl = req.headers.host ? `${req.encrypted ? 'https' : 'http'}://${req.headers.host}` : undefined;
171
188
  if (!req.target) {
172
189
  if (req.url.startsWith(publicUrl)) {
173
190
  const path = req.url.substring(publicUrl.length).split('?')[0];
174
191
  const target = (0, path_1.join)(app, path);
175
192
  if ((0, fs_1.existsSync)(target) && (0, fs_1.statSync)(target).isFile()) {
176
193
  if (req.url === this.indexPath) {
177
- return this.sendIndexFile(target, req.url);
194
+ return this.sendIndexFile(target, req.url, baseUrl);
178
195
  }
179
196
  else {
180
197
  return this.sendFile(target, req.url);
@@ -188,7 +205,7 @@ class PiletInjector {
188
205
  }
189
206
  else if (req.target === api) {
190
207
  const path = req.url.substring(1).split('?')[0];
191
- return this.sendResponse(path, req.url);
208
+ return this.sendResponse(path, req.url, baseUrl);
192
209
  }
193
210
  }
194
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pilet-injector.js","sourceRoot":"","sources":["../../src/injectors/pilet-injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pilet-injector.js","sourceRoot":"","sources":["../../src/injectors/pilet-injector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-cli",
3
- "version": "0.15.0-beta.4512",
3
+ "version": "0.15.0-beta.4544",
4
4
  "description": "The standard CLI for creating and building a Piral instance or a Pilet.",
5
5
  "keywords": [
6
6
  "portal",
@@ -78,5 +78,5 @@
78
78
  "typescript": "^4.7.3",
79
79
  "yargs": "^15.4.1"
80
80
  },
81
- "gitHead": "8c26175fb38ac3323c30b154d7ff28c13c29cb39"
81
+ "gitHead": "d128ed2e80430bbedcc16644455dd47c958addfc"
82
82
  }
@@ -5,11 +5,9 @@ import PiletInjector from './pilet-injector';
5
5
  const optionsMock = {
6
6
  pilets: [],
7
7
  publicUrl: '/',
8
- meta: 'debug-meta.json',
9
8
  api: '',
10
9
  app: '',
11
10
  active: true,
12
- publicUrl: '/',
13
11
  meta: '',
14
12
  headers: {},
15
13
  };
@@ -35,7 +33,7 @@ describe('Piral-CLI piral injector', () => {
35
33
  injector.name;
36
34
  injector.getOptions();
37
35
  //injector.getMetaOf(0);
38
- injector.getMeta();
36
+ injector.getMeta('http://localhost:9000');
39
37
 
40
38
  // Assert
41
39
  expect(injector.active).toBeFalsy();
@@ -78,7 +76,7 @@ describe('Piral-CLI piral injector', () => {
78
76
  const injector = new PiletInjector(optionsMock, configMock, core);
79
77
 
80
78
  // Act
81
- const res = await injector.sendResponse('some/nice/invalid/path', 'localhost:1234');
79
+ const res = await injector.sendResponse('some/nice/invalid/path', 'localhost:1234', 'http://localhost:9000');
82
80
 
83
81
  // Assert
84
82
  expect(res).toBeUndefined();
@@ -88,8 +86,6 @@ describe('Piral-CLI piral injector', () => {
88
86
  // Arrange
89
87
  const optionsMock = {
90
88
  pilets: [],
91
- meta: 'debug-meta.json',
92
- publicUrl: '/',
93
89
  api: 'http://someFakeApi:1234',
94
90
  app: '',
95
91
  publicUrl: '/',
@@ -120,8 +116,6 @@ describe('Piral-CLI piral injector', () => {
120
116
  // Arrange
121
117
  const optionsMock = {
122
118
  pilets: [],
123
- meta: 'debug-meta.json',
124
- publicUrl: '/',
125
119
  api: 'http://someFakeApi:1234',
126
120
  app: '',
127
121
  publicUrl: '/',
@@ -5,16 +5,14 @@ import { readFileSync, existsSync, statSync } from 'fs';
5
5
  import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig, KrasConfiguration, KrasResult } from 'kras';
6
6
  import { log } from '../common/log';
7
7
  import { getPiletSpecMeta } from '../common/spec';
8
- import { config } from '../common/config';
8
+ import { config as commonConfig } from '../common/config';
9
9
  import { axios, mime, jju } from '../external';
10
10
  import { Bundler } from '../types';
11
11
 
12
- const { host } = config;
13
-
14
12
  interface Pilet {
15
13
  bundler: Bundler;
16
14
  root: string;
17
- meta: PiletMetadata;
15
+ getMeta(basePath: string): PiletMetadata;
18
16
  }
19
17
 
20
18
  export interface PiletInjectorConfig extends KrasInjectorConfig {
@@ -32,7 +30,7 @@ interface PiletMetadata {
32
30
  [key: string]: unknown;
33
31
  }
34
32
 
35
- function fillPiletMeta(pilet: Pilet, basePath: string, metaFile: string) {
33
+ function fillPiletMeta(pilet: Pilet, metaFile: string, subPath: string) {
36
34
  const { root, bundler } = pilet;
37
35
  const metaPath = join(root, metaFile);
38
36
  const packagePath = join(root, 'package.json');
@@ -40,19 +38,21 @@ function fillPiletMeta(pilet: Pilet, basePath: string, metaFile: string) {
40
38
  const metaOverride = existsSync(metaPath) ? jju.parse(readFileSync(metaPath, 'utf8')) : undefined;
41
39
  const file = bundler.bundle.name.replace(/^[\/\\]/, '');
42
40
  const target = join(bundler.bundle.dir, file);
43
- const url = new URL(file, basePath);
44
- const meta = {
45
- custom: def.custom,
46
- config: def.piletConfig,
47
- ...metaOverride,
48
- name: def.name,
49
- version: def.version,
50
- link: `${url.href}?updated=${Date.now()}`,
51
- ...getPiletSpecMeta(target, basePath),
52
- };
53
41
 
54
- pilet.meta = meta;
55
- return JSON.stringify(meta);
42
+ pilet.getMeta = (parentPath) => {
43
+ const basePath = `${parentPath}${subPath}`;
44
+ const url = new URL(file, basePath);
45
+
46
+ return {
47
+ custom: def.custom,
48
+ config: def.piletConfig,
49
+ ...metaOverride,
50
+ name: def.name,
51
+ version: def.version,
52
+ link: `${url.href}?updated=${Date.now()}`,
53
+ ...getPiletSpecMeta(target, basePath),
54
+ };
55
+ };
56
56
  }
57
57
 
58
58
  async function loadFeed(feed: string) {
@@ -75,25 +75,24 @@ async function loadFeed(feed: string) {
75
75
 
76
76
  export default class PiletInjector implements KrasInjector {
77
77
  public config: PiletInjectorConfig;
78
- private piletApi: string;
78
+ private serverConfig: KrasConfiguration;
79
79
  private indexPath: string;
80
80
 
81
- constructor(options: PiletInjectorConfig, config: KrasConfiguration, core: EventEmitter) {
82
- this.config = options;
81
+ constructor(config: PiletInjectorConfig, serverConfig: KrasConfiguration, core: EventEmitter) {
82
+ this.config = config;
83
+ this.serverConfig = serverConfig;
83
84
 
84
85
  if (this.config.active) {
85
- // either take a full URI or make it an absolute path relative to the current origin
86
- this.piletApi = /^https?:/.test(options.api)
87
- ? options.api
88
- : `${config.ssl ? 'https' : 'http'}://${host}:${config.port}${options.api}`;
89
-
90
- const { pilets, api, publicUrl } = options;
86
+ const { pilets, api, publicUrl } = config;
91
87
  this.indexPath = `${publicUrl}index.html`;
92
88
  const cbs = {};
93
89
 
94
90
  core.on('user-connected', (e) => {
95
91
  if (e.target === '*' && e.url === api.substring(1)) {
96
- cbs[e.id] = (msg: string) => e.ws.send(msg);
92
+ cbs[e.id] = {
93
+ baseUrl: e.req.headers.origin,
94
+ notify: (msg: string) => e.ws.send(msg),
95
+ };
97
96
  }
98
97
  });
99
98
 
@@ -103,11 +102,13 @@ export default class PiletInjector implements KrasInjector {
103
102
 
104
103
  pilets.forEach((p, i) =>
105
104
  p.bundler.on(() => {
106
- const basePath = `${this.piletApi}/${i}/`;
107
- const meta = fillPiletMeta(p, basePath, options.meta);
105
+ fillPiletMeta(p, config.meta, `/${i}/`);
108
106
 
109
107
  for (const id of Object.keys(cbs)) {
110
- cbs[id](meta);
108
+ const { baseUrl, notify } = cbs[id];
109
+ const basePath = this.getPiletApi(baseUrl);
110
+ const meta = JSON.stringify(p.getMeta(basePath));
111
+ notify(meta);
111
112
  }
112
113
  }),
113
114
  );
@@ -132,9 +133,23 @@ export default class PiletInjector implements KrasInjector {
132
133
 
133
134
  setOptions() {}
134
135
 
135
- async getMeta() {
136
+ getPiletApi(baseUrl: string) {
137
+ const { api } = this.config;
138
+
139
+ if (/^https?:/.test(api)) {
140
+ return api;
141
+ } else if (baseUrl) {
142
+ return `${baseUrl}${api}`;
143
+ } else {
144
+ const { ssl, port } = this.serverConfig;
145
+ const { host } = commonConfig;
146
+ return `${ssl ? 'https' : 'http'}://${host}:${port}${api}`;
147
+ }
148
+ }
149
+
150
+ async getMeta(baseUrl: string) {
136
151
  const { pilets, feed } = this.config;
137
- const localPilets = pilets.map((pilet) => pilet.meta).filter(Boolean);
152
+ const localPilets = pilets.map((pilet) => pilet.getMeta?.(baseUrl)).filter(Boolean);
138
153
  const mergedPilets = this.mergePilets(localPilets, await this.loadRemoteFeed(feed));
139
154
  return JSON.stringify(mergedPilets);
140
155
  }
@@ -187,7 +202,7 @@ export default class PiletInjector implements KrasInjector {
187
202
  return this.sendContent(content, type, url);
188
203
  }
189
204
 
190
- async sendResponse(path: string, url: string): Promise<KrasResult> {
205
+ async sendResponse(path: string, url: string, baseUrl: string): Promise<KrasResult> {
191
206
  const { pilets } = this.config;
192
207
  const [index, ...rest] = path.split('/');
193
208
  const pilet = pilets[+index];
@@ -195,7 +210,7 @@ export default class PiletInjector implements KrasInjector {
195
210
 
196
211
  if (!path) {
197
212
  await bundler?.ready();
198
- const content = await this.getMeta();
213
+ const content = await this.getMeta(baseUrl);
199
214
  return this.sendContent(content, 'application/json', url);
200
215
  } else {
201
216
  return bundler?.ready().then(() => {
@@ -208,11 +223,11 @@ export default class PiletInjector implements KrasInjector {
208
223
  }
209
224
  }
210
225
 
211
- sendIndexFile(target: string, url: string): KrasResponse {
226
+ sendIndexFile(target: string, url: string, baseUrl: string): KrasResponse {
212
227
  const indexHtml = readFileSync(target, 'utf8');
213
228
 
214
229
  // mechanism to inject server side debug piletApi config into piral emulator
215
- const windowInjectionScript = `window['dbg:pilet-api'] = '${this.piletApi}';`;
230
+ const windowInjectionScript = `window['dbg:pilet-api'] = '${this.getPiletApi(baseUrl)}';`;
216
231
  const findStr = `<script`;
217
232
  const replaceStr = `<script>/* Pilet Debugging Emulator Config Injection */${windowInjectionScript}</script><script`;
218
233
  const content = indexHtml.replace(`${findStr}`, `${replaceStr}`);
@@ -222,6 +237,7 @@ export default class PiletInjector implements KrasInjector {
222
237
 
223
238
  handle(req: KrasRequest): KrasResponse {
224
239
  const { app, api, publicUrl } = this.config;
240
+ const baseUrl = req.headers.host ? `${req.encrypted ? 'https' : 'http'}://${req.headers.host}` : undefined;
225
241
 
226
242
  if (!req.target) {
227
243
  if (req.url.startsWith(publicUrl)) {
@@ -230,7 +246,7 @@ export default class PiletInjector implements KrasInjector {
230
246
 
231
247
  if (existsSync(target) && statSync(target).isFile()) {
232
248
  if (req.url === this.indexPath) {
233
- return this.sendIndexFile(target, req.url);
249
+ return this.sendIndexFile(target, req.url, baseUrl);
234
250
  } else {
235
251
  return this.sendFile(target, req.url);
236
252
  }
@@ -245,7 +261,7 @@ export default class PiletInjector implements KrasInjector {
245
261
  return undefined;
246
262
  } else if (req.target === api) {
247
263
  const path = req.url.substring(1).split('?')[0];
248
- return this.sendResponse(path, req.url);
264
+ return this.sendResponse(path, req.url, baseUrl);
249
265
  }
250
266
  }
251
267
  }