piral-cli 1.8.0-beta.7544 → 1.8.0-beta.7655

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 (248) hide show
  1. package/lib/api.js +10 -11
  2. package/lib/api.js.map +1 -1
  3. package/lib/apps/add-piral-instance-pilet.d.ts +8 -0
  4. package/lib/apps/add-piral-instance-pilet.js +8 -4
  5. package/lib/apps/add-piral-instance-pilet.js.map +1 -1
  6. package/lib/apps/build-pilet.js +2 -2
  7. package/lib/apps/build-pilet.js.map +1 -1
  8. package/lib/apps/build-piral.js +2 -2
  9. package/lib/apps/build-piral.js.map +1 -1
  10. package/lib/apps/debug-pilet.js +2 -2
  11. package/lib/apps/debug-pilet.js.map +1 -1
  12. package/lib/apps/debug-piral.js +2 -2
  13. package/lib/apps/debug-piral.js.map +1 -1
  14. package/lib/apps/declaration-pilet.js +2 -2
  15. package/lib/apps/declaration-pilet.js.map +1 -1
  16. package/lib/apps/declaration-piral.js +2 -2
  17. package/lib/apps/declaration-piral.js.map +1 -1
  18. package/lib/apps/new-pilet.d.ts +8 -0
  19. package/lib/apps/new-pilet.js +8 -4
  20. package/lib/apps/new-pilet.js.map +1 -1
  21. package/lib/apps/new-piral.js +2 -2
  22. package/lib/apps/new-piral.js.map +1 -1
  23. package/lib/apps/pack-pilet.js +2 -2
  24. package/lib/apps/pack-pilet.js.map +1 -1
  25. package/lib/apps/publish-pilet.d.ts +4 -0
  26. package/lib/apps/publish-pilet.js +11 -9
  27. package/lib/apps/publish-pilet.js.map +1 -1
  28. package/lib/apps/publish-piral.d.ts +4 -0
  29. package/lib/apps/publish-piral.js +8 -6
  30. package/lib/apps/publish-piral.js.map +1 -1
  31. package/lib/apps/remove-piral-instance-pilet.js +2 -2
  32. package/lib/apps/remove-piral-instance-pilet.js.map +1 -1
  33. package/lib/apps/run-emulator-piral.d.ts +8 -0
  34. package/lib/apps/run-emulator-piral.js +9 -7
  35. package/lib/apps/run-emulator-piral.js.map +1 -1
  36. package/lib/apps/upgrade-pilet.d.ts +8 -0
  37. package/lib/apps/upgrade-pilet.js +9 -5
  38. package/lib/apps/upgrade-pilet.js.map +1 -1
  39. package/lib/apps/upgrade-piral.js +2 -2
  40. package/lib/apps/upgrade-piral.js.map +1 -1
  41. package/lib/apps/validate-pilet.js +2 -2
  42. package/lib/apps/validate-pilet.js.map +1 -1
  43. package/lib/apps/validate-piral.js +2 -2
  44. package/lib/apps/validate-piral.js.map +1 -1
  45. package/lib/build/bundler-calls.js +2 -3
  46. package/lib/build/bundler-calls.js.map +1 -1
  47. package/lib/build/run-build-pilet.js.map +1 -1
  48. package/lib/build/run-build-piral.js.map +1 -1
  49. package/lib/build/run-debug-mono-piral.js.map +1 -1
  50. package/lib/build/run-debug-pilet.js.map +1 -1
  51. package/lib/build/run-debug-piral.js.map +1 -1
  52. package/lib/bundler.js +23 -14
  53. package/lib/bundler.js.map +1 -1
  54. package/lib/cli.js +1 -2
  55. package/lib/cli.js.map +1 -1
  56. package/lib/commands.js +57 -7
  57. package/lib/commands.js.map +1 -1
  58. package/lib/common/MemoryStream.d.ts +0 -1
  59. package/lib/common/archive.d.ts +0 -1
  60. package/lib/common/archive.js +4 -5
  61. package/lib/common/archive.js.map +1 -1
  62. package/lib/common/browser.js +2 -3
  63. package/lib/common/browser.js.map +1 -1
  64. package/lib/common/compatibility.js +2 -3
  65. package/lib/common/compatibility.js.map +1 -1
  66. package/lib/common/config.d.ts +4 -0
  67. package/lib/common/config.js +3 -2
  68. package/lib/common/config.js.map +1 -1
  69. package/lib/common/constants.d.ts +1 -1
  70. package/lib/common/constants.js +1 -0
  71. package/lib/common/constants.js.map +1 -1
  72. package/lib/common/declaration.js +2 -3
  73. package/lib/common/declaration.js.map +1 -1
  74. package/lib/common/emulator.js +6 -7
  75. package/lib/common/emulator.js.map +1 -1
  76. package/lib/common/envs.js +1 -2
  77. package/lib/common/envs.js.map +1 -1
  78. package/lib/common/hash.d.ts +0 -1
  79. package/lib/common/hash.js +3 -4
  80. package/lib/common/hash.js.map +1 -1
  81. package/lib/common/http.d.ts +9 -5
  82. package/lib/common/http.js +31 -16
  83. package/lib/common/http.js.map +1 -1
  84. package/lib/common/importmap.js +1 -2
  85. package/lib/common/importmap.js.map +1 -1
  86. package/lib/common/info.js +2 -2
  87. package/lib/common/info.js.map +1 -1
  88. package/lib/common/injectors.js +2 -3
  89. package/lib/common/injectors.js.map +1 -1
  90. package/lib/common/inspect.d.ts +0 -1
  91. package/lib/common/inspect.js +4 -5
  92. package/lib/common/inspect.js.map +1 -1
  93. package/lib/common/interactive.d.ts +0 -1
  94. package/lib/common/interactive.js +3 -4
  95. package/lib/common/interactive.js.map +1 -1
  96. package/lib/common/io.d.ts +0 -1
  97. package/lib/common/io.js +29 -30
  98. package/lib/common/io.js.map +1 -1
  99. package/lib/common/language.js +5 -6
  100. package/lib/common/language.js.map +1 -1
  101. package/lib/common/log.js +30 -21
  102. package/lib/common/log.js.map +1 -1
  103. package/lib/common/merge.js +1 -2
  104. package/lib/common/merge.js.map +1 -1
  105. package/lib/common/npm.d.ts +6 -6
  106. package/lib/common/npm.js +95 -67
  107. package/lib/common/npm.js.map +1 -1
  108. package/lib/common/pack.js +1 -2
  109. package/lib/common/pack.js.map +1 -1
  110. package/lib/common/package.d.ts +5 -4
  111. package/lib/common/package.js +32 -33
  112. package/lib/common/package.js.map +1 -1
  113. package/lib/common/parallel.js +1 -2
  114. package/lib/common/parallel.js.map +1 -1
  115. package/lib/common/patcher.js +1 -2
  116. package/lib/common/patcher.js.map +1 -1
  117. package/lib/common/patches.js +2 -3
  118. package/lib/common/patches.js.map +1 -1
  119. package/lib/common/pilet.js +1 -2
  120. package/lib/common/pilet.js.map +1 -1
  121. package/lib/common/piral.js +2 -3
  122. package/lib/common/piral.js.map +1 -1
  123. package/lib/common/platform.js +1 -2
  124. package/lib/common/platform.js.map +1 -1
  125. package/lib/common/port.js +2 -3
  126. package/lib/common/port.js.map +1 -1
  127. package/lib/common/release.d.ts +2 -2
  128. package/lib/common/release.js +4 -5
  129. package/lib/common/release.js.map +1 -1
  130. package/lib/common/rules.js +2 -3
  131. package/lib/common/rules.js.map +1 -1
  132. package/lib/common/scaffold.js +4 -5
  133. package/lib/common/scaffold.js.map +1 -1
  134. package/lib/common/scripts.d.ts +0 -1
  135. package/lib/common/scripts.js +2 -3
  136. package/lib/common/scripts.js.map +1 -1
  137. package/lib/common/shell.d.ts +3 -2
  138. package/lib/common/shell.js +3 -4
  139. package/lib/common/shell.js.map +1 -1
  140. package/lib/common/spec.js +1 -2
  141. package/lib/common/spec.js.map +1 -1
  142. package/lib/common/template.js +1 -2
  143. package/lib/common/template.js.map +1 -1
  144. package/lib/common/url.js +1 -2
  145. package/lib/common/url.js.map +1 -1
  146. package/lib/common/utils.js +2 -3
  147. package/lib/common/utils.js.map +1 -1
  148. package/lib/common/validate.js +1 -2
  149. package/lib/common/validate.js.map +1 -1
  150. package/lib/common/version.js +2 -3
  151. package/lib/common/version.js.map +1 -1
  152. package/lib/common/watcher.js +1 -2
  153. package/lib/common/watcher.js.map +1 -1
  154. package/lib/common/website.d.ts +3 -2
  155. package/lib/common/website.js +9 -14
  156. package/lib/common/website.js.map +1 -1
  157. package/lib/external/index.js +6012 -4278
  158. package/lib/helpers.js +3 -3
  159. package/lib/helpers.js.map +1 -1
  160. package/lib/inject.js +18 -9
  161. package/lib/inject.js.map +1 -1
  162. package/lib/injectors/pilet-injector.d.ts +0 -3
  163. package/lib/injectors/pilet-injector.js.map +1 -1
  164. package/lib/injectors/piral-injector.d.ts +0 -2
  165. package/lib/injectors/piral-injector.js.map +1 -1
  166. package/lib/messages.js +93 -95
  167. package/lib/messages.js.map +1 -1
  168. package/lib/npm-clients/bun.js +7 -8
  169. package/lib/npm-clients/bun.js.map +1 -1
  170. package/lib/npm-clients/index.d.ts +9 -5
  171. package/lib/npm-clients/index.js +35 -13
  172. package/lib/npm-clients/index.js.map +1 -1
  173. package/lib/npm-clients/lerna.js +7 -8
  174. package/lib/npm-clients/lerna.js.map +1 -1
  175. package/lib/npm-clients/npm.js +13 -14
  176. package/lib/npm-clients/npm.js.map +1 -1
  177. package/lib/npm-clients/pnp.js +7 -8
  178. package/lib/npm-clients/pnp.js.map +1 -1
  179. package/lib/npm-clients/pnpm.js +7 -8
  180. package/lib/npm-clients/pnpm.js.map +1 -1
  181. package/lib/npm-clients/rush.js +7 -8
  182. package/lib/npm-clients/rush.js.map +1 -1
  183. package/lib/npm-clients/yarn.js +7 -8
  184. package/lib/npm-clients/yarn.js.map +1 -1
  185. package/lib/platforms/node.js +1 -2
  186. package/lib/platforms/node.js.map +1 -1
  187. package/lib/platforms/web.js +1 -2
  188. package/lib/platforms/web.js.map +1 -1
  189. package/lib/plugin.js +1 -2
  190. package/lib/plugin.js.map +1 -1
  191. package/lib/questionnaire.js +2 -3
  192. package/lib/questionnaire.js.map +1 -1
  193. package/lib/resolvers.js.map +1 -1
  194. package/lib/rules/index.js +4 -5
  195. package/lib/rules/index.js.map +1 -1
  196. package/lib/rules/pilet-has-externals-as-peers.js +1 -1
  197. package/lib/rules/pilet-has-externals-as-peers.js.map +1 -1
  198. package/lib/rules/pilet-has-no-self-reference.js +1 -1
  199. package/lib/rules/pilet-has-no-self-reference.js.map +1 -1
  200. package/lib/rules/pilet-has-no-third-party-dependency.js +1 -1
  201. package/lib/rules/pilet-has-no-third-party-dependency.js.map +1 -1
  202. package/lib/rules/pilet-has-non-conflicting-css.js +1 -1
  203. package/lib/rules/pilet-has-non-conflicting-css.js.map +1 -1
  204. package/lib/rules/pilet-stays-small.js +1 -1
  205. package/lib/rules/pilet-stays-small.js.map +1 -1
  206. package/lib/rules/pilet-uses-latest-piral.js +1 -1
  207. package/lib/rules/pilet-uses-latest-piral.js.map +1 -1
  208. package/lib/rules/piral-depends-on-piral.js +1 -1
  209. package/lib/rules/piral-depends-on-piral.js.map +1 -1
  210. package/lib/rules/piral-entry-ends-with-html.js +1 -1
  211. package/lib/rules/piral-entry-ends-with-html.js.map +1 -1
  212. package/lib/rules/piral-has-valid-devDependencies.js +1 -1
  213. package/lib/rules/piral-has-valid-devDependencies.js.map +1 -1
  214. package/lib/rules/piral-has-valid-externals.js +1 -1
  215. package/lib/rules/piral-has-valid-externals.js.map +1 -1
  216. package/lib/rules/piral-has-valid-files.js +1 -1
  217. package/lib/rules/piral-has-valid-files.js.map +1 -1
  218. package/lib/rules/piral-has-valid-scripts.js +1 -1
  219. package/lib/rules/piral-has-valid-scripts.js.map +1 -1
  220. package/lib/runner.js.map +1 -1
  221. package/lib/select.js +1 -2
  222. package/lib/select.js.map +1 -1
  223. package/lib/start.js +1 -2
  224. package/lib/start.js.map +1 -1
  225. package/lib/types/internal.d.ts +18 -2
  226. package/lib/types/public.d.ts +3 -1
  227. package/package.json +6 -6
  228. package/src/apps/add-piral-instance-pilet.ts +20 -1
  229. package/src/apps/new-pilet.ts +19 -1
  230. package/src/apps/publish-pilet.ts +17 -7
  231. package/src/apps/publish-piral.ts +13 -4
  232. package/src/apps/run-emulator-piral.ts +22 -6
  233. package/src/apps/upgrade-pilet.ts +21 -2
  234. package/src/commands.ts +41 -1
  235. package/src/common/config.ts +5 -0
  236. package/src/common/constants.ts +1 -0
  237. package/src/common/emulator.ts +4 -4
  238. package/src/common/http.test.ts +5 -4
  239. package/src/common/http.ts +26 -7
  240. package/src/common/npm.test.ts +16 -16
  241. package/src/common/npm.ts +84 -50
  242. package/src/common/package.ts +10 -11
  243. package/src/common/release.ts +3 -2
  244. package/src/common/shell.ts +6 -4
  245. package/src/common/website.ts +8 -11
  246. package/src/npm-clients/index.ts +21 -6
  247. package/src/types/internal.ts +25 -1
  248. package/src/types/public.ts +5 -1
@@ -1,10 +1,11 @@
1
+ import { Agent } from 'https';
1
2
  import { progress } from './log';
2
3
  import { packageJson, piletJson } from './constants';
3
4
  import { readJson, updateExistingJson, writeJson } from './io';
4
5
  import { scaffoldFromEmulatorWebsite } from './website';
5
6
  import { combinePackageRef, getPackageName, getPackageVersion } from './npm';
6
7
  import { dissectPackageName, installNpmPackage, isLinkedPackage } from './npm';
7
- import { NpmClientType, PackageType, PiralInstanceDetails } from '../types';
8
+ import { NpmClient, PackageType, PiralInstanceDetails } from '../types';
8
9
 
9
10
  async function updatePiletJson(target: string, appName: string, appDetails: PiralInstanceDetails) {
10
11
  const oldContent = await readJson(target, piletJson);
@@ -29,7 +30,7 @@ async function setupPiralInstance(
29
30
  hadVersion: boolean,
30
31
  rootDir: string,
31
32
  sourceVersion: string,
32
- npmClient: NpmClientType,
33
+ npmClient: NpmClient,
33
34
  ) {
34
35
  if (!isLinkedPackage(sourceName, type, hadVersion, rootDir)) {
35
36
  const packageRef = combinePackageRef(sourceName, sourceVersion, type);
@@ -54,13 +55,14 @@ export async function installPiralInstance(
54
55
  usedSource: string,
55
56
  baseDir: string,
56
57
  rootDir: string,
57
- npmClient: NpmClientType,
58
+ npmClient: NpmClient,
59
+ agent: Agent,
58
60
  selected?: boolean,
59
61
  ): Promise<string> {
60
62
  const [sourceName, sourceVersion, hadVersion, type] = await dissectPackageName(baseDir, usedSource);
61
63
 
62
64
  if (type === 'remote') {
63
- const emulator = await scaffoldFromEmulatorWebsite(rootDir, sourceName);
65
+ const emulator = await scaffoldFromEmulatorWebsite(rootDir, sourceName, agent);
64
66
  const packageName = emulator.name;
65
67
  await updatePiletJson(rootDir, packageName, {
66
68
  selected,
@@ -1,7 +1,7 @@
1
1
  import { Agent } from 'https';
2
2
  import { posix, relative, resolve } from 'path';
3
3
  import { createPiralStubIndexIfNotExists } from './template';
4
- import { getAuthorizationHeaders, getAxiosOptions, getCertificate, handleAxiosError } from './http';
4
+ import { getAuthorizationHeaders, getAxiosOptions, handleAxiosError } from './http';
5
5
  import { packageJson } from './constants';
6
6
  import { updateConfig } from './config';
7
7
  import { ForceOverwrite } from './enums';
@@ -11,7 +11,7 @@ import { progress, log } from './log';
11
11
  import { axios, isInteractive } from '../external';
12
12
  import { EmulatorWebsiteManifestFiles, EmulatorWebsiteManifest } from '../types';
13
13
 
14
- async function requestManifest(url: string, interactive: boolean, httpsAgent?: Agent) {
14
+ async function requestManifest(url: string, httpsAgent: Agent, interactive: boolean) {
15
15
  const opts = getAxiosOptions(url);
16
16
 
17
17
  try {
@@ -26,7 +26,7 @@ async function requestManifest(url: string, interactive: boolean, httpsAgent?: A
26
26
  value: headers.authorization,
27
27
  },
28
28
  });
29
- return await requestManifest(url, false, httpsAgent);
29
+ return await requestManifest(url, httpsAgent, false);
30
30
  });
31
31
  }
32
32
  }
@@ -92,6 +92,7 @@ async function createEmulatorFiles(
92
92
  peerDependencies: {},
93
93
  optionalDependencies: emulatorJson.dependencies.optional,
94
94
  devDependencies: emulatorJson.dependencies.included,
95
+ sharedDependencies: [Object.keys(emulatorJson.importmap.imports)],
95
96
  },
96
97
  true,
97
98
  );
@@ -105,13 +106,11 @@ async function createEmulatorFiles(
105
106
  await downloadEmulatorFiles(manifestUrl, targetDir, appDir, emulatorJson.files, httpsAgent);
106
107
  }
107
108
 
108
- export async function updateFromEmulatorWebsite(targetDir: string, manifestUrl: string, interactive: boolean) {
109
+ export async function updateFromEmulatorWebsite(targetDir: string, manifestUrl: string, httpsAgent: Agent, interactive: boolean) {
109
110
  progress(`Updating emulator from %s ...`, manifestUrl);
110
- const ca = await getCertificate();
111
- const httpsAgent = ca ? new Agent({ ca }) : undefined;
112
111
 
113
112
  try {
114
- const response = await requestManifest(manifestUrl, interactive, httpsAgent);
113
+ const response = await requestManifest(manifestUrl, httpsAgent, interactive);
115
114
  const nextEmulator: EmulatorWebsiteManifest = response.data;
116
115
  const currentEmulator = await readJson(targetDir, packageJson);
117
116
 
@@ -130,12 +129,10 @@ export async function updateFromEmulatorWebsite(targetDir: string, manifestUrl:
130
129
  }
131
130
  }
132
131
 
133
- export async function scaffoldFromEmulatorWebsite(rootDir: string, manifestUrl: string) {
132
+ export async function scaffoldFromEmulatorWebsite(rootDir: string, manifestUrl: string, httpsAgent: Agent) {
134
133
  progress(`Downloading emulator from %s ...`, manifestUrl);
135
- const ca = await getCertificate();
136
- const httpsAgent = ca ? new Agent({ ca }) : undefined;
137
134
  const interactive = isInteractive();
138
- const response = await requestManifest(manifestUrl, interactive, httpsAgent);
135
+ const response = await requestManifest(manifestUrl, httpsAgent, interactive);
139
136
  const emulatorJson: EmulatorWebsiteManifest = response.data;
140
137
  const targetDir = resolve(rootDir, 'node_modules', emulatorJson.name);
141
138
  const appDir = resolve(targetDir, 'app');
@@ -1,5 +1,6 @@
1
1
  import { dirname, resolve } from 'path';
2
2
  import { findFile } from '../common/io';
3
+ import type { NpmClientType, NpmDirectClientType, NpmWapperClientType } from '../types';
3
4
 
4
5
  import * as lerna from './lerna';
5
6
  import * as npm from './npm';
@@ -19,20 +20,26 @@ export const clients = {
19
20
  bun,
20
21
  };
21
22
 
22
- type ClientName = keyof typeof clients;
23
+ const directClients: Array<NpmDirectClientType> = ['npm', 'pnp', 'yarn', 'pnpm', 'bun'];
24
+ const wrapperClients: Array<NpmWapperClientType> = ['lerna', 'rush'];
23
25
 
24
- const directClients = ['npm', 'pnp', 'yarn', 'pnpm', 'bun'];
26
+ export function isWrapperClient(client: NpmClientType): client is NpmWapperClientType {
27
+ return wrapperClients.includes(client as any);
28
+ }
25
29
 
26
- export function isWrapperClient(client: ClientName) {
27
- return !directClients.includes(client);
30
+ export function isDirectClient(client: NpmClientType): client is NpmDirectClientType {
31
+ return directClients.includes(client as any);
28
32
  }
29
33
 
30
- export async function detectClients(root: string) {
34
+ async function detectClients<T extends NpmClientType>(
35
+ root: string,
36
+ clientNames: Array<T>,
37
+ ): Promise<Array<{ client: T; result: boolean }>> {
31
38
  const packageJson = await findFile(resolve(root, '..'), 'package.json');
32
39
  const stopDir = packageJson ? dirname(packageJson) : undefined;
33
40
 
34
41
  return await Promise.all(
35
- Object.keys(clients).map(async (client: ClientName) => {
42
+ clientNames.map(async (client) => {
36
43
  const result = await clients[client].detectClient(root, stopDir);
37
44
  return {
38
45
  client,
@@ -41,3 +48,11 @@ export async function detectClients(root: string) {
41
48
  }),
42
49
  );
43
50
  }
51
+
52
+ export function detectDirectClients(root: string) {
53
+ return detectClients<NpmDirectClientType>(root, directClients);
54
+ }
55
+
56
+ export function detectWrapperClients(root: string) {
57
+ return detectClients<NpmWapperClientType>(root, wrapperClients);
58
+ }
@@ -1,5 +1,11 @@
1
1
  import type { LogLevels } from './common';
2
- import type { ImportmapVersions, PiletSchemaVersion } from './public';
2
+ import type {
3
+ ImportmapVersions,
4
+ NpmClientType,
5
+ NpmDirectClientType,
6
+ NpmWapperClientType,
7
+ PiletSchemaVersion,
8
+ } from './public';
3
9
 
4
10
  export interface PiralInstanceDetails {
5
11
  selected?: boolean;
@@ -34,3 +40,21 @@ export interface FileInfo {
34
40
  * 2. The (short) error message
35
41
  */
36
42
  export type QuickMessage = [LogLevels, string, string];
43
+
44
+ /**
45
+ * Result of identifying an npm client in a project.
46
+ */
47
+ export interface NpmClient {
48
+ /**
49
+ * The proposed client - can be anything.
50
+ */
51
+ proposed?: NpmClientType;
52
+ /**
53
+ * The direct npm client.
54
+ */
55
+ direct: NpmDirectClientType;
56
+ /**
57
+ * The wrapper npm client, if any.
58
+ */
59
+ wrapper?: NpmWapperClientType;
60
+ }
@@ -261,7 +261,11 @@ export type PiletBuildType = 'default' | 'standalone' | 'manifest';
261
261
 
262
262
  export type PackageType = 'registry' | 'file' | 'git' | 'remote';
263
263
 
264
- export type NpmClientType = 'npm' | 'yarn' | 'pnp' | 'pnpm' | 'lerna' | 'rush' | 'bun';
264
+ export type NpmDirectClientType = 'npm' | 'yarn' | 'pnp' | 'pnpm' | 'bun';
265
+
266
+ export type NpmWapperClientType = 'lerna' | 'rush';
267
+
268
+ export type NpmClientType = NpmDirectClientType | NpmWapperClientType;
265
269
 
266
270
  export type Framework = 'piral' | 'piral-core' | 'piral-base';
267
271