@ms-cloudpack/cli 0.29.1 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commands/start/appServer/createRoutes.d.ts +2 -2
- package/lib/commands/start/appServer/createRoutes.js +2 -2
- package/lib/commands/start/appServer/createRoutes.js.map +1 -1
- package/lib/commands/start/appServer/startAppServer.js +7 -8
- package/lib/commands/start/appServer/startAppServer.js.map +1 -1
- package/lib/commands/start/start.js +13 -6
- package/lib/commands/start/start.js.map +1 -1
- package/lib/commands/start/startApiServer.d.ts +3 -2
- package/lib/commands/start/startApiServer.js +34 -8
- package/lib/commands/start/startApiServer.js.map +1 -1
- package/lib/commands/start/startBundleServer.d.ts +3 -2
- package/lib/commands/start/startBundleServer.js +4 -4
- package/lib/commands/start/startBundleServer.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +14 -4
- package/lib/index.js.map +1 -1
- package/lib/initTelemetry.d.ts +24 -0
- package/lib/initTelemetry.js +52 -0
- package/lib/initTelemetry.js.map +1 -0
- package/lib/performance/markers.d.ts +8 -0
- package/lib/performance/markers.js +11 -0
- package/lib/performance/markers.js.map +1 -0
- package/lib/performance/registerPerformanceObservers.d.ts +6 -0
- package/lib/performance/registerPerformanceObservers.js +23 -0
- package/lib/performance/registerPerformanceObservers.js.map +1 -0
- package/lib/reporter.d.ts +1 -1
- package/lib/reporter.js +4 -2
- package/lib/reporter.js.map +1 -1
- package/lib/types.d.ts +10 -0
- package/package.json +6 -5
|
@@ -4,9 +4,9 @@ import type { ApiServer, BundleServer, CloudpackConfig, Session } from '../../..
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates the routes for the express app, considering how the config is defined.
|
|
6
6
|
*/
|
|
7
|
-
export declare function createRoutes({ app,
|
|
7
|
+
export declare function createRoutes({ app, url, session, definition, bundleServer, apiServer, config, }: {
|
|
8
8
|
app: Express;
|
|
9
|
-
|
|
9
|
+
url: string;
|
|
10
10
|
session: Session;
|
|
11
11
|
definition: PackageJson;
|
|
12
12
|
bundleServer: BundleServer;
|
|
@@ -11,7 +11,7 @@ import { setHeaders } from './setHeaders.js';
|
|
|
11
11
|
/**
|
|
12
12
|
* Creates the routes for the express app, considering how the config is defined.
|
|
13
13
|
*/
|
|
14
|
-
export function createRoutes({ app,
|
|
14
|
+
export function createRoutes({ app, url, session, definition, bundleServer, apiServer, config, }) {
|
|
15
15
|
const routes = [...(config.devServer?.routes || [])];
|
|
16
16
|
const hasDefaultRoute = routes.some((route) => route.match === '*' || route.match === '/');
|
|
17
17
|
if (!hasDefaultRoute) {
|
|
@@ -48,7 +48,7 @@ export function createRoutes({ app, baseUrl, session, definition, bundleServer,
|
|
|
48
48
|
setHeaders({ res, session, apiServer });
|
|
49
49
|
const { html, statusCode } = await getHtmlResponse({
|
|
50
50
|
route,
|
|
51
|
-
baseUrl,
|
|
51
|
+
baseUrl: url,
|
|
52
52
|
importMap,
|
|
53
53
|
overlayScript,
|
|
54
54
|
entryScript,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRoutes.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/createRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,GAAG,EACH,
|
|
1
|
+
{"version":3,"file":"createRoutes.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/createRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createExpressApp
|
|
1
|
+
import { createExpressApp } from '@ms-cloudpack/create-express-app';
|
|
2
2
|
import { createRoutes } from './createRoutes.js';
|
|
3
3
|
import { exitIfPortUnavailable } from './exitIfPortUnavailable.js';
|
|
4
4
|
import { reporter } from '../../../reporter.js';
|
|
@@ -13,7 +13,6 @@ import { cyan } from '@ms-cloudpack/task-reporter';
|
|
|
13
13
|
*/
|
|
14
14
|
export async function startAppServer({ session, bundleServer, apiServer, definition, config = {}, }) {
|
|
15
15
|
const { devServer = {} } = config || {};
|
|
16
|
-
const { https = {} } = devServer;
|
|
17
16
|
// Read the port from the config file or default to array of ports.
|
|
18
17
|
const requireSpecifiedPort = devServer?.port !== undefined;
|
|
19
18
|
const ports = devServer?.port ?? [5000, 5001, 5002, 5003];
|
|
@@ -22,15 +21,15 @@ export async function startAppServer({ session, bundleServer, apiServer, definit
|
|
|
22
21
|
// const publicDir = path.resolve(devServer.publicPath ?? 'public');
|
|
23
22
|
const task = reporter.addTask('Starting app server');
|
|
24
23
|
try {
|
|
25
|
-
const { close,
|
|
24
|
+
const { close, port, url } = await createExpressApp({
|
|
26
25
|
portRange: ports,
|
|
27
26
|
requireSpecifiedPort,
|
|
28
27
|
hostname: devServer?.domain,
|
|
29
|
-
sslOptions:
|
|
28
|
+
sslOptions: config.devServer?.https,
|
|
30
29
|
// publicDir,
|
|
31
|
-
setupCallback: (app,
|
|
30
|
+
setupCallback: (app, url) => createRoutes({
|
|
32
31
|
app,
|
|
33
|
-
|
|
32
|
+
url,
|
|
34
33
|
session,
|
|
35
34
|
definition,
|
|
36
35
|
bundleServer,
|
|
@@ -38,11 +37,11 @@ export async function startAppServer({ session, bundleServer, apiServer, definit
|
|
|
38
37
|
config,
|
|
39
38
|
}),
|
|
40
39
|
});
|
|
41
|
-
task.complete({ message: `Available @ ${cyan(
|
|
40
|
+
task.complete({ message: `Available @ ${cyan(url)}`, forceShow: true });
|
|
42
41
|
return {
|
|
43
42
|
close,
|
|
44
43
|
port,
|
|
45
|
-
url
|
|
44
|
+
url,
|
|
46
45
|
};
|
|
47
46
|
}
|
|
48
47
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"startAppServer.js","sourceRoot":"","sources":["../../../../src/commands/start/appServer/startAppServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,MAAM,GAAG,EAAqB,GAO/B;IACC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,MAAM,IAAK,EAAsB,CAAC;IAE7D,mEAAmE;IACnE,MAAM,oBAAoB,GAAG,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,mEAAmE;IACnE,+EAA+E;IAC/E,oEAAoE;IAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAErD,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAClD,SAAS,EAAE,KAAK;YAChB,oBAAoB;YACpB,QAAQ,EAAE,SAAS,EAAE,MAAM;YAC3B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK;YACnC,cAAc;YACd,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC1B,YAAY,CAAC;gBACX,GAAG;gBACH,GAAG;gBACH,OAAO;gBACP,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,MAAM;aACP,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,OAAO;YACL,KAAK;YACL,IAAI;YACJ,GAAG;SACJ,CAAC;KACH;IAAC,OAAO,GAAY,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,CAAC;KACX;AACH,CAAC"}
|
|
@@ -9,6 +9,8 @@ import { startApiServer } from './startApiServer.js';
|
|
|
9
9
|
import { startBundleServer } from './startBundleServer.js';
|
|
10
10
|
import { reporter } from '../../reporter.js';
|
|
11
11
|
import { readConfig } from '../../common/config.js';
|
|
12
|
+
import { PerfMarkerCliEntry, PerfMeasurementOpenBrowser } from '../../performance/markers.js';
|
|
13
|
+
import { setSharedTelemetryAttribute, stopTelemetry } from '../../initTelemetry.js';
|
|
12
14
|
/**
|
|
13
15
|
* Defines the "start" verb entry point.
|
|
14
16
|
*/
|
|
@@ -16,10 +18,9 @@ export async function start(options) {
|
|
|
16
18
|
const appPath = process.cwd();
|
|
17
19
|
try {
|
|
18
20
|
// Parse config if it exists.
|
|
19
|
-
const
|
|
20
|
-
const devServer = cloudpackConfig?.devServer || {};
|
|
21
|
+
const config = await readConfig(appPath);
|
|
21
22
|
// Initialize package overrides.
|
|
22
|
-
PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(
|
|
23
|
+
PackageDefinitions.getInstance().registerTransform(createPackageOverrideTransform(config));
|
|
23
24
|
// Make sure the package has a valid definition.
|
|
24
25
|
const definition = await PackageDefinitions.getInstance().get(appPath);
|
|
25
26
|
if (!definition) {
|
|
@@ -30,20 +31,23 @@ export async function start(options) {
|
|
|
30
31
|
}
|
|
31
32
|
// Initialize session definition.
|
|
32
33
|
const session = await createSession({ appPath });
|
|
34
|
+
// Set shared telemetry attributes which will be sent with all telemetry events.
|
|
35
|
+
setSharedTelemetryAttribute('sessionId', session.id);
|
|
36
|
+
setSharedTelemetryAttribute('appName', definition.name);
|
|
33
37
|
if (options.logResolveMap) {
|
|
34
38
|
// Write the resolve map to disk.
|
|
35
39
|
await writeJson(path.join(appPath, 'resolve-map.json'), session.resolveMap);
|
|
36
40
|
}
|
|
37
41
|
// Start api server for tracking status and handling remote requests.
|
|
38
|
-
const apiServer = await startApiServer({ session });
|
|
42
|
+
const apiServer = await startApiServer({ session, config });
|
|
39
43
|
// Then start bundle and app servers for hosting the app.
|
|
40
|
-
const bundleServer = await startBundleServer({ session, apiServer });
|
|
44
|
+
const bundleServer = await startBundleServer({ session, apiServer, config });
|
|
41
45
|
const appServer = await startAppServer({
|
|
42
46
|
session,
|
|
43
47
|
definition,
|
|
44
48
|
bundleServer,
|
|
45
49
|
apiServer,
|
|
46
|
-
config
|
|
50
|
+
config,
|
|
47
51
|
});
|
|
48
52
|
const cleanup = async () => {
|
|
49
53
|
for (const [name, server] of [
|
|
@@ -61,6 +65,8 @@ export async function start(options) {
|
|
|
61
65
|
}
|
|
62
66
|
// Complete the reporting and list pending tasks as aborted.
|
|
63
67
|
reporter.complete();
|
|
68
|
+
// Flush and close telemetry.
|
|
69
|
+
await stopTelemetry();
|
|
64
70
|
};
|
|
65
71
|
// Setup cleanup and close things on completion.
|
|
66
72
|
let sigintCount = 0;
|
|
@@ -76,6 +82,7 @@ export async function start(options) {
|
|
|
76
82
|
});
|
|
77
83
|
// Open the browser.
|
|
78
84
|
const url = appServer.url;
|
|
85
|
+
performance.measure(PerfMeasurementOpenBrowser, PerfMarkerCliEntry);
|
|
79
86
|
openBrowser(url).catch((err) => {
|
|
80
87
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
81
88
|
console.warn('Error opening browser:', err?.stack || err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiServer, Session } from '../../types.js';
|
|
1
|
+
import type { ApiServer, CloudpackConfig, Session } from '../../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* The api server handles the data pub/sub (for things like reporting build status)
|
|
4
4
|
* and hosting the dashboard verb backend (for executing actions like loading vscode,
|
|
@@ -13,6 +13,7 @@ import type { ApiServer, Session } from '../../types.js';
|
|
|
13
13
|
* The app server will burn the api server url on the host html, so that client-side
|
|
14
14
|
* javascript can connect and subscribe to page changes.
|
|
15
15
|
*/
|
|
16
|
-
export declare function startApiServer({ session }: {
|
|
16
|
+
export declare function startApiServer({ session, config, }: {
|
|
17
17
|
session: Session;
|
|
18
|
+
config: CloudpackConfig;
|
|
18
19
|
}): Promise<ApiServer>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import getPort from 'get-port';
|
|
3
3
|
import path from 'path';
|
|
4
|
+
import http from 'http';
|
|
5
|
+
import https from 'https';
|
|
4
6
|
import WebSocket, { WebSocketServer } from 'ws';
|
|
5
7
|
import { createDataBus } from '@ms-cloudpack/data-bus';
|
|
6
8
|
import { execSync } from 'child_process';
|
|
@@ -15,6 +17,7 @@ import { configTemplate } from '../../common/configTemplate.js';
|
|
|
15
17
|
import { addOverride } from './addOverride.js';
|
|
16
18
|
import { validateOverride } from './validateOverride.js';
|
|
17
19
|
import { getConfigPath, readConfigSync, writeConfigSync } from '../../common/config.js';
|
|
20
|
+
import { parseHttpsConfig } from '@ms-cloudpack/create-express-app';
|
|
18
21
|
/**
|
|
19
22
|
* The api server handles the data pub/sub (for things like reporting build status)
|
|
20
23
|
* and hosting the dashboard verb backend (for executing actions like loading vscode,
|
|
@@ -29,7 +32,8 @@ import { getConfigPath, readConfigSync, writeConfigSync } from '../../common/con
|
|
|
29
32
|
* The app server will burn the api server url on the host html, so that client-side
|
|
30
33
|
* javascript can connect and subscribe to page changes.
|
|
31
34
|
*/
|
|
32
|
-
export async function startApiServer({ session }) {
|
|
35
|
+
export async function startApiServer({ session, config, }) {
|
|
36
|
+
const host = config?.devServer?.domain || 'localhost';
|
|
33
37
|
const port = await getPort({ port: [9890, 9891, 9892, 9893] });
|
|
34
38
|
const bus = createDataBus();
|
|
35
39
|
const sessionStats = {
|
|
@@ -113,13 +117,35 @@ export async function startApiServer({ session }) {
|
|
|
113
117
|
}, options);
|
|
114
118
|
};
|
|
115
119
|
const watcher = startWatcher(addTask);
|
|
120
|
+
// Create a node http(s) server.
|
|
121
|
+
let server;
|
|
122
|
+
const httpsConfig = config?.devServer?.https;
|
|
123
|
+
const protocol = httpsConfig ? 'wss' : 'ws';
|
|
124
|
+
if (httpsConfig) {
|
|
125
|
+
const { key, cert, passphrase } = parseHttpsConfig(httpsConfig);
|
|
126
|
+
if (!key || !cert) {
|
|
127
|
+
console.error('Invalid https config in cloudpack.config.js. Make sure key and cert are valid.');
|
|
128
|
+
throw new Error('Invalid https config.');
|
|
129
|
+
}
|
|
130
|
+
server = https
|
|
131
|
+
.createServer({
|
|
132
|
+
key,
|
|
133
|
+
cert,
|
|
134
|
+
passphrase,
|
|
135
|
+
}, () => {
|
|
136
|
+
/* no-op */
|
|
137
|
+
})
|
|
138
|
+
.listen(port, host);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
server = http.createServer().listen(port, host);
|
|
142
|
+
}
|
|
116
143
|
// Create a websocket server which listens for subscriptions and verb requests,
|
|
117
144
|
// and broadcasts the data to all connected clients.
|
|
118
|
-
const
|
|
145
|
+
const socketServer = new WebSocketServer({ server }, () => {
|
|
119
146
|
// console.log(`ApiServer: Started on port ${port}`);
|
|
120
147
|
}).on('connection', (socket) => {
|
|
121
148
|
const disposables = new Map();
|
|
122
|
-
// console.log('ApiServer: Client connected');
|
|
123
149
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
150
|
function sendMessage(message) {
|
|
125
151
|
socket.send(JSON.stringify(message, null, 2));
|
|
@@ -132,7 +158,6 @@ export async function startApiServer({ session }) {
|
|
|
132
158
|
.on('message', (rawData) => {
|
|
133
159
|
try {
|
|
134
160
|
const request = JSON.parse(rawData.toString());
|
|
135
|
-
// console.log(`ApiServer: Received message: ${JSON.stringify(request, null, 2)}`);
|
|
136
161
|
switch (request.type) {
|
|
137
162
|
case 'subscribe': {
|
|
138
163
|
const { path: subscriptionPath, id } = request.data;
|
|
@@ -245,7 +270,7 @@ export async function startApiServer({ session }) {
|
|
|
245
270
|
});
|
|
246
271
|
const notifyReload = () => {
|
|
247
272
|
session.sequence++;
|
|
248
|
-
|
|
273
|
+
socketServer.clients.forEach((socket) => {
|
|
249
274
|
if (socket.readyState === WebSocket.OPEN) {
|
|
250
275
|
socket.send(JSON.stringify({
|
|
251
276
|
type: 'reload',
|
|
@@ -255,15 +280,16 @@ export async function startApiServer({ session }) {
|
|
|
255
280
|
});
|
|
256
281
|
};
|
|
257
282
|
return {
|
|
258
|
-
url:
|
|
283
|
+
url: `${protocol}://${host}:${port}`,
|
|
259
284
|
port,
|
|
260
285
|
notifyReload,
|
|
261
286
|
addTask: (task, options) => {
|
|
262
287
|
return addTask(task, options);
|
|
263
288
|
},
|
|
264
289
|
close: () => new Promise((resolve, reject) => {
|
|
265
|
-
|
|
266
|
-
|
|
290
|
+
socketServer.clients.forEach((socket) => socket.terminate());
|
|
291
|
+
socketServer.close((err) => (err ? reject(err) : resolve()));
|
|
292
|
+
server.close();
|
|
267
293
|
}),
|
|
268
294
|
};
|
|
269
295
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"startApiServer.js","sourceRoot":"","sources":["../../../src/commands/start/startApiServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { ApiServer, BundleServer, Session } from '../../types.js';
|
|
1
|
+
import type { ApiServer, BundleServer, CloudpackConfig, Session } from '../../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* The bundle server handles package requests and returns bundled resources.
|
|
4
4
|
* Resources are bundled on demand and cached locally to avoid re-bundling
|
|
5
5
|
* on each request.
|
|
6
6
|
*/
|
|
7
|
-
export declare function startBundleServer({ session, apiServer, }: {
|
|
7
|
+
export declare function startBundleServer({ session, apiServer, config, }: {
|
|
8
8
|
session: Session;
|
|
9
9
|
apiServer: ApiServer;
|
|
10
|
+
config: CloudpackConfig;
|
|
10
11
|
}): Promise<BundleServer>;
|
|
@@ -11,9 +11,11 @@ import { isExternalPackage } from '@ms-cloudpack/package-utilities';
|
|
|
11
11
|
* Resources are bundled on demand and cached locally to avoid re-bundling
|
|
12
12
|
* on each request.
|
|
13
13
|
*/
|
|
14
|
-
export async function startBundleServer({ session, apiServer, }) {
|
|
15
|
-
const { port, close } = await createExpressApp({
|
|
14
|
+
export async function startBundleServer({ session, apiServer, config = {}, }) {
|
|
15
|
+
const { port, close, url } = await createExpressApp({
|
|
16
16
|
portRange: [5500, 5501, 5502, 5503],
|
|
17
|
+
hostname: config.devServer?.domain,
|
|
18
|
+
sslOptions: config.devServer?.https,
|
|
17
19
|
setupCallback: (app) => {
|
|
18
20
|
// Set up the express app routes.
|
|
19
21
|
app.get('*', (req, res) => {
|
|
@@ -24,8 +26,6 @@ export async function startBundleServer({ session, apiServer, }) {
|
|
|
24
26
|
});
|
|
25
27
|
},
|
|
26
28
|
});
|
|
27
|
-
const url = `http://localhost:${port}`;
|
|
28
|
-
console.debug(`started (${url})`);
|
|
29
29
|
return {
|
|
30
30
|
close,
|
|
31
31
|
port,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6C,MAAM,kCAAkC,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,SAAS,
|
|
1
|
+
{"version":3,"file":"startBundleServer.js","sourceRoot":"","sources":["../../../src/commands/start/startBundleServer.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* within the "./commands" folder.
|
|
4
4
|
*/
|
|
5
5
|
export declare function start(): Promise<void>;
|
|
6
|
-
export type { ApiServer, BundleRequest, BundleServer, BundleTaskOptions, CloudpackConfig, CreateHtmlFunction, CreateHtmlOptions, CreateHtmlResult, CreateHtmlScript, DevServer, PackageOverride, Route, Session, SessionStats, Task, TaskDescription, TaskEndDescription, TaskError, TaskOptions, TaskStartDescription, Watcher, } from './types.js';
|
|
6
|
+
export type { ApiServer, BundleRequest, BundleServer, BundleTaskOptions, CloudpackConfig, TelemetryConfig, CreateHtmlFunction, CreateHtmlOptions, CreateHtmlResult, CreateHtmlScript, DevServer, PackageOverride, Route, Session, SessionStats, Task, TaskDescription, TaskEndDescription, TaskError, TaskOptions, TaskStartDescription, Watcher, } from './types.js';
|
package/lib/index.js
CHANGED
|
@@ -4,31 +4,41 @@ import glob from 'glob';
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
6
6
|
import { getVersion } from './getVersion.js';
|
|
7
|
-
import {
|
|
7
|
+
import { PerfMarkerCliEntry } from './performance/markers.js';
|
|
8
|
+
import { initTelemetry } from './initTelemetry.js';
|
|
9
|
+
import { setReporterOptions } from './reporter.js';
|
|
8
10
|
const currentPath = path.dirname(fileURLToPath(import.meta.url));
|
|
9
11
|
/**
|
|
10
12
|
* Entry point for the cloudpack CLI. Resolves all commands defined
|
|
11
13
|
* within the "./commands" folder.
|
|
12
14
|
*/
|
|
13
15
|
export async function start() {
|
|
16
|
+
performance.mark(PerfMarkerCliEntry);
|
|
14
17
|
const program = new Command();
|
|
18
|
+
const plainTextMode = process.argv.includes('--no-color') || process.argv.includes('-n');
|
|
19
|
+
// Initialize the color setting as soon as possible.
|
|
20
|
+
setReporterOptions({
|
|
21
|
+
plainTextMode,
|
|
22
|
+
});
|
|
15
23
|
const version = getVersion();
|
|
16
24
|
// the name "Cloudpack" preceed by an emoji representing sun behind cloud
|
|
17
25
|
const productName = gradient(`Cloudpack`);
|
|
18
26
|
const useDebugLogging = process.argv.includes('--debug') || process.argv.includes('-d');
|
|
19
27
|
const verb = process.argv[2];
|
|
20
|
-
const plainTextMode = process.argv.includes('--no-color') || process.argv.includes('-n');
|
|
21
28
|
const useVerboseLogging = process.argv.includes('--verbose') || process.argv.includes('-v') || verb === 'bundle';
|
|
22
29
|
program.name(productName).version(version).usage('<command> [options]');
|
|
23
|
-
|
|
30
|
+
setReporterOptions({
|
|
24
31
|
productName,
|
|
25
32
|
version,
|
|
26
33
|
description: `Running "${bold(process.argv.slice(2).join(' '))}"`,
|
|
27
|
-
plainTextMode,
|
|
28
34
|
...defaultLoggingConfig,
|
|
29
35
|
...(useVerboseLogging && verboseLoggingConfig),
|
|
30
36
|
...(useDebugLogging && debugLoggingConfig),
|
|
31
37
|
});
|
|
38
|
+
await initTelemetry({
|
|
39
|
+
useDebugLogging,
|
|
40
|
+
useVerboseLogging,
|
|
41
|
+
});
|
|
32
42
|
const commands = glob.sync('commands/*/index.js', { cwd: currentPath });
|
|
33
43
|
for (const commandPath of commands) {
|
|
34
44
|
const command = (await import(pathToFileURL(path.resolve(currentPath, commandPath)).toString()));
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,kBAAkB,EAClB,oBAAoB,EACpB,QAAQ,EACR,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface TelemetryInitOptions {
|
|
2
|
+
useDebugLogging: boolean;
|
|
3
|
+
useVerboseLogging: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Initialize the telemetry client, create the root span, register performance observers.
|
|
7
|
+
* Telemetry will not be sent if no instrumentation key is found.
|
|
8
|
+
* @param options - options to initialize telemetry
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function initTelemetry(options: TelemetryInitOptions): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Adds a shared attribute to all spans.
|
|
14
|
+
* No-op if telemetry is not initialized.
|
|
15
|
+
* @param key - key of the attribute
|
|
16
|
+
* @param value - value of the attribute
|
|
17
|
+
*/
|
|
18
|
+
export declare function setSharedTelemetryAttribute(key: string, value: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Ends rootSpan and flushes all telemetry.
|
|
21
|
+
* No-op if telemetry is not initialized.
|
|
22
|
+
* @returns a promise that resolves when telemetry is flushed and shutdown.
|
|
23
|
+
*/
|
|
24
|
+
export declare function stopTelemetry(): Promise<void> | undefined;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { readConfig } from './common/config.js';
|
|
2
|
+
import { getVersion } from './getVersion.js';
|
|
3
|
+
import { TelemetryClient } from '@ms-cloudpack/telemetry';
|
|
4
|
+
import { registerPerformanceObservers } from './performance/registerPerformanceObservers.js';
|
|
5
|
+
let telemetryClient;
|
|
6
|
+
let rootSpan;
|
|
7
|
+
/**
|
|
8
|
+
* Initialize the telemetry client, create the root span, register performance observers.
|
|
9
|
+
* Telemetry will not be sent if no instrumentation key is found.
|
|
10
|
+
* @param options - options to initialize telemetry
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export async function initTelemetry(options) {
|
|
14
|
+
const instrumentationKey = (await readConfig()).telemetry?.instrumentationKey || process.env.CLOUDPACK_TELEMETRY_INSTRUMENTATION_KEY;
|
|
15
|
+
if (!instrumentationKey) {
|
|
16
|
+
console.warn('No connection string found. Telemetry will not be sent.');
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const logLevel = options.useVerboseLogging ? 'verbose' : options.useDebugLogging ? 'debug' : undefined;
|
|
20
|
+
telemetryClient = new TelemetryClient({
|
|
21
|
+
productVersion: getVersion(),
|
|
22
|
+
instrumentationKey,
|
|
23
|
+
logLevel,
|
|
24
|
+
serviceNamespace: 'cloudpack',
|
|
25
|
+
serviceName: 'cli',
|
|
26
|
+
});
|
|
27
|
+
// This is the root span for the CLI. It will be used to track the duration of the CLI execution.
|
|
28
|
+
rootSpan = telemetryClient.getTracer()?.startSpan('CLI');
|
|
29
|
+
if (rootSpan) {
|
|
30
|
+
// Register performance observers to track performance metrics as events of CLI span.
|
|
31
|
+
registerPerformanceObservers(rootSpan);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Adds a shared attribute to all spans.
|
|
36
|
+
* No-op if telemetry is not initialized.
|
|
37
|
+
* @param key - key of the attribute
|
|
38
|
+
* @param value - value of the attribute
|
|
39
|
+
*/
|
|
40
|
+
export function setSharedTelemetryAttribute(key, value) {
|
|
41
|
+
telemetryClient?.setSharedSpanAttribute(key, value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Ends rootSpan and flushes all telemetry.
|
|
45
|
+
* No-op if telemetry is not initialized.
|
|
46
|
+
* @returns a promise that resolves when telemetry is flushed and shutdown.
|
|
47
|
+
*/
|
|
48
|
+
export function stopTelemetry() {
|
|
49
|
+
rootSpan?.end();
|
|
50
|
+
return telemetryClient?.shutdown();
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=initTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initTelemetry.js","sourceRoot":"","sources":["../src/initTelemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAa,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAO7F,IAAI,eAA4C,CAAC;AACjD,IAAI,QAA0B,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,kBAAkB,GACtB,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAE5G,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvG,eAAe,GAAG,IAAI,eAAe,CAAC;QACpC,cAAc,EAAE,UAAU,EAAE;QAC5B,kBAAkB;QAClB,QAAQ;QACR,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,iGAAiG;IACjG,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,QAAQ,EAAE;QACZ,qFAAqF;QACrF,4BAA4B,CAAC,QAAQ,CAAC,CAAC;KACxC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE,KAAa;IACpE,eAAe,EAAE,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,eAAe,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Markers
|
|
2
|
+
/**
|
|
3
|
+
* Marks the start of the CLI entry point.
|
|
4
|
+
*/
|
|
5
|
+
export const PerfMarkerCliEntry = 'CLI_ENTRY';
|
|
6
|
+
// Measurements
|
|
7
|
+
/**
|
|
8
|
+
* Measures the time it takes to open the browser.
|
|
9
|
+
*/
|
|
10
|
+
export const PerfMeasurementOpenBrowser = 'OPEN_BROWSER';
|
|
11
|
+
//# sourceMappingURL=markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/performance/markers.ts"],"names":[],"mappings":"AAAA,UAAU;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,eAAe;AAEf;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Span } from '@ms-cloudpack/telemetry';
|
|
2
|
+
/**
|
|
3
|
+
* Registers a performance observer that will log all performance measurements and markers to Application Insights.
|
|
4
|
+
* @param span The span to add the events to.
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerPerformanceObservers(span: Span): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { blue } from '@ms-cloudpack/task-reporter';
|
|
2
|
+
import { PerformanceObserver } from 'perf_hooks';
|
|
3
|
+
/**
|
|
4
|
+
* Registers a performance observer that will log all performance measurements and markers to Application Insights.
|
|
5
|
+
* @param span The span to add the events to.
|
|
6
|
+
*/
|
|
7
|
+
export function registerPerformanceObservers(span) {
|
|
8
|
+
const perfMeasurementObserver = new PerformanceObserver((items) => {
|
|
9
|
+
for (const entry of items.getEntries()) {
|
|
10
|
+
span?.addEvent('performance-measurement', { name: entry.name, duration: entry.duration });
|
|
11
|
+
console.debug(`Performance-Measurement: ${blue(entry.name)} took ${entry.duration}ms`);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
perfMeasurementObserver.observe({ entryTypes: ['measure'] });
|
|
15
|
+
const perfMarkObserver = new PerformanceObserver((items) => {
|
|
16
|
+
for (const entry of items.getEntries()) {
|
|
17
|
+
span?.addEvent('performance-marker', { name: entry.name, duration: entry.startTime });
|
|
18
|
+
console.debug(`Performance-Marker: ${blue(entry.name)} at ${entry.startTime}ms`);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
perfMarkObserver.observe({ entryTypes: ['mark'] });
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=registerPerformanceObservers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerPerformanceObservers.js","sourceRoot":"","sources":["../../src/performance/registerPerformanceObservers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAU;IACrD,MAAM,uBAAuB,GAAG,IAAI,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;QAChE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,IAAI,EAAE,QAAQ,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;SACxF;IACH,CAAC,CAAC,CAAC;IACH,uBAAuB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;QACzD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;SAClF;IACH,CAAC,CAAC,CAAC;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
package/lib/reporter.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { TaskReporter, type TaskReporterOptions } from '@ms-cloudpack/task-reporter';
|
|
2
2
|
export declare const reporter: TaskReporter;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function setReporterOptions(options: TaskReporterOptions): void;
|
|
4
4
|
export { noLoggingConfig, defaultLoggingConfig, verboseLoggingConfig, debugLoggingConfig, } from '@ms-cloudpack/task-reporter';
|
package/lib/reporter.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
2
2
|
export const reporter = new TaskReporter();
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
let lastOptions = {};
|
|
4
|
+
export function setReporterOptions(options) {
|
|
5
|
+
lastOptions = { ...lastOptions, ...options };
|
|
6
|
+
reporter.setOptions(lastOptions);
|
|
5
7
|
}
|
|
6
8
|
export { noLoggingConfig, defaultLoggingConfig, verboseLoggingConfig, debugLoggingConfig, } from '@ms-cloudpack/task-reporter';
|
|
7
9
|
//# sourceMappingURL=reporter.js.map
|
package/lib/reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,6BAA6B,CAAC;AAErF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,6BAA6B,CAAC;AAErF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;IAE7C,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -205,6 +205,12 @@ export interface DevServer {
|
|
|
205
205
|
*/
|
|
206
206
|
routes?: Route[];
|
|
207
207
|
}
|
|
208
|
+
export interface TelemetryConfig {
|
|
209
|
+
/**
|
|
210
|
+
* Application Insights instrumentation key.
|
|
211
|
+
*/
|
|
212
|
+
instrumentationKey: string;
|
|
213
|
+
}
|
|
208
214
|
/**
|
|
209
215
|
* Per-application configuration for Cloudpack.
|
|
210
216
|
*/
|
|
@@ -218,6 +224,10 @@ export interface CloudpackConfig {
|
|
|
218
224
|
* A set of options for configuring how the dev server works.
|
|
219
225
|
*/
|
|
220
226
|
devServer?: DevServer;
|
|
227
|
+
/**
|
|
228
|
+
* A set of options for configuring telemetry
|
|
229
|
+
*/
|
|
230
|
+
telemetry?: TelemetryConfig;
|
|
221
231
|
}
|
|
222
232
|
/**
|
|
223
233
|
* The input options for a createHtml custom server render function.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "The Cloudpack command line interface - a tool for managing fast inner and outer looping in web apps.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,15 +16,16 @@
|
|
|
16
16
|
"cloudpack": "./bin/cloudpack.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@ms-cloudpack/bundler": "^0.11.
|
|
20
|
-
"@ms-cloudpack/create-express-app": "^1.
|
|
19
|
+
"@ms-cloudpack/bundler": "^0.11.8",
|
|
20
|
+
"@ms-cloudpack/create-express-app": "^1.3.0",
|
|
21
21
|
"@ms-cloudpack/data-bus": "^0.1.1",
|
|
22
22
|
"@ms-cloudpack/json-utilities": "^0.0.5",
|
|
23
23
|
"@ms-cloudpack/overlay": "^0.12.0",
|
|
24
|
-
"@ms-cloudpack/package-utilities": "^2.3.
|
|
24
|
+
"@ms-cloudpack/package-utilities": "^2.3.9",
|
|
25
25
|
"@ms-cloudpack/path-utilities": "^2.1.1",
|
|
26
26
|
"@ms-cloudpack/path-string-parsing": "^1.0.1",
|
|
27
|
-
"@ms-cloudpack/task-reporter": "^0.2.
|
|
27
|
+
"@ms-cloudpack/task-reporter": "^0.2.2",
|
|
28
|
+
"@ms-cloudpack/telemetry": "^0.1.0",
|
|
28
29
|
"chokidar": "^3.5.3",
|
|
29
30
|
"commander": "^10.0.0",
|
|
30
31
|
"es-module-lexer": "^1.0.3",
|