piral-cli 0.13.8 → 0.14.0-beta.3156

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 (202) hide show
  1. package/README.md +5 -2
  2. package/lib/api.js +23 -23
  3. package/lib/api.js.map +1 -1
  4. package/lib/apps/build-pilet.js +18 -16
  5. package/lib/apps/build-pilet.js.map +1 -1
  6. package/lib/apps/build-piral.js +35 -34
  7. package/lib/apps/build-piral.js.map +1 -1
  8. package/lib/apps/debug-pilet.js +28 -27
  9. package/lib/apps/debug-pilet.js.map +1 -1
  10. package/lib/apps/debug-piral.js +15 -14
  11. package/lib/apps/debug-piral.js.map +1 -1
  12. package/lib/apps/declaration-piral.js +5 -3
  13. package/lib/apps/declaration-piral.js.map +1 -1
  14. package/lib/apps/new-pilet.js +43 -39
  15. package/lib/apps/new-pilet.js.map +1 -1
  16. package/lib/apps/new-piral.js +21 -20
  17. package/lib/apps/new-piral.js.map +1 -1
  18. package/lib/apps/pack-pilet.js +6 -4
  19. package/lib/apps/pack-pilet.js.map +1 -1
  20. package/lib/apps/publish-pilet.js +48 -47
  21. package/lib/apps/publish-pilet.js.map +1 -1
  22. package/lib/apps/publish-piral.js +23 -22
  23. package/lib/apps/publish-piral.js.map +1 -1
  24. package/lib/apps/upgrade-pilet.js +34 -33
  25. package/lib/apps/upgrade-pilet.js.map +1 -1
  26. package/lib/apps/upgrade-piral.js +20 -19
  27. package/lib/apps/upgrade-piral.js.map +1 -1
  28. package/lib/apps/validate-pilet.js +13 -11
  29. package/lib/apps/validate-pilet.js.map +1 -1
  30. package/lib/apps/validate-piral.js +12 -10
  31. package/lib/apps/validate-piral.js.map +1 -1
  32. package/lib/build/bundler-calls.d.ts +3 -0
  33. package/lib/build/bundler-calls.js +107 -0
  34. package/lib/build/bundler-calls.js.map +1 -0
  35. package/lib/build/run-build-pilet.d.ts +1 -0
  36. package/lib/build/run-build-pilet.js +65 -0
  37. package/lib/build/run-build-pilet.js.map +1 -0
  38. package/lib/build/run-build-piral.d.ts +1 -0
  39. package/lib/build/run-build-piral.js +66 -0
  40. package/lib/build/run-build-piral.js.map +1 -0
  41. package/lib/build/run-debug-mono-piral.d.ts +1 -0
  42. package/lib/build/run-debug-mono-piral.js +71 -0
  43. package/lib/build/run-debug-mono-piral.js.map +1 -0
  44. package/lib/build/run-debug-pilet.d.ts +1 -0
  45. package/lib/build/run-debug-pilet.js +90 -0
  46. package/lib/build/run-debug-pilet.js.map +1 -0
  47. package/lib/build/run-debug-piral.d.ts +1 -0
  48. package/lib/build/run-debug-piral.js +86 -0
  49. package/lib/build/run-debug-piral.js.map +1 -0
  50. package/lib/bundler.js +62 -25
  51. package/lib/bundler.js.map +1 -1
  52. package/lib/cli.js +2 -2
  53. package/lib/cli.js.map +1 -1
  54. package/lib/commands.js +12 -12
  55. package/lib/commands.js.map +1 -1
  56. package/lib/common/archive.js +8 -8
  57. package/lib/common/archive.js.map +1 -1
  58. package/lib/common/browser.js +2 -2
  59. package/lib/common/browser.js.map +1 -1
  60. package/lib/common/clients/lerna.js +4 -4
  61. package/lib/common/clients/lerna.js.map +1 -1
  62. package/lib/common/clients/npm.js +12 -12
  63. package/lib/common/clients/npm.js.map +1 -1
  64. package/lib/common/clients/pnpm.js +5 -5
  65. package/lib/common/clients/pnpm.js.map +1 -1
  66. package/lib/common/clients/yarn.js +5 -5
  67. package/lib/common/clients/yarn.js.map +1 -1
  68. package/lib/common/compatibility.js +9 -9
  69. package/lib/common/compatibility.js.map +1 -1
  70. package/lib/common/config.d.ts +5 -1
  71. package/lib/common/config.js +2 -1
  72. package/lib/common/config.js.map +1 -1
  73. package/lib/common/constants.d.ts +1 -1
  74. package/lib/common/constants.js +2 -2
  75. package/lib/common/constants.js.map +1 -1
  76. package/lib/common/declaration.js +19 -19
  77. package/lib/common/declaration.js.map +1 -1
  78. package/lib/common/emulator.js +24 -23
  79. package/lib/common/emulator.js.map +1 -1
  80. package/lib/common/envs.js +3 -3
  81. package/lib/common/envs.js.map +1 -1
  82. package/lib/common/hash.d.ts +1 -0
  83. package/lib/common/hash.js +8 -3
  84. package/lib/common/hash.js.map +1 -1
  85. package/lib/common/http.d.ts +1 -0
  86. package/lib/common/http.js +28 -14
  87. package/lib/common/http.js.map +1 -1
  88. package/lib/common/injectors.js +4 -4
  89. package/lib/common/injectors.js.map +1 -1
  90. package/lib/common/inspect.js +4 -4
  91. package/lib/common/inspect.js.map +1 -1
  92. package/lib/common/io.js +77 -73
  93. package/lib/common/io.js.map +1 -1
  94. package/lib/common/language.js +2 -2
  95. package/lib/common/language.js.map +1 -1
  96. package/lib/common/log.js +8 -8
  97. package/lib/common/log.js.map +1 -1
  98. package/lib/common/npm.d.ts +3 -1
  99. package/lib/common/npm.js +68 -48
  100. package/lib/common/npm.js.map +1 -1
  101. package/lib/common/pack.js +18 -18
  102. package/lib/common/pack.js.map +1 -1
  103. package/lib/common/package.d.ts +4 -2
  104. package/lib/common/package.js +182 -81
  105. package/lib/common/package.js.map +1 -1
  106. package/lib/common/patcher.js +20 -20
  107. package/lib/common/patcher.js.map +1 -1
  108. package/lib/common/port.js +3 -3
  109. package/lib/common/port.js.map +1 -1
  110. package/lib/common/rules.js +4 -4
  111. package/lib/common/rules.js.map +1 -1
  112. package/lib/common/scaffold.js +15 -15
  113. package/lib/common/scaffold.js.map +1 -1
  114. package/lib/common/scripts.js +5 -5
  115. package/lib/common/scripts.js.map +1 -1
  116. package/lib/common/template.js +4 -4
  117. package/lib/common/template.js.map +1 -1
  118. package/lib/external/index.js +1369 -611
  119. package/lib/helpers.js +2 -2
  120. package/lib/helpers.js.map +1 -1
  121. package/lib/inject.js +2 -2
  122. package/lib/inject.js.map +1 -1
  123. package/lib/injectors/pilet.d.ts +1 -10
  124. package/lib/injectors/pilet.js +74 -27
  125. package/lib/injectors/pilet.js.map +1 -1
  126. package/lib/injectors/piral.d.ts +4 -2
  127. package/lib/injectors/piral.js +20 -5
  128. package/lib/injectors/piral.js.map +1 -1
  129. package/lib/messages.d.ts +11 -3
  130. package/lib/messages.js +11 -3
  131. package/lib/messages.js.map +1 -1
  132. package/lib/pb-cli.js +1 -1
  133. package/lib/pb-cli.js.map +1 -1
  134. package/lib/pilet-cli.js +1 -1
  135. package/lib/pilet-cli.js.map +1 -1
  136. package/lib/piral-cli.js +1 -1
  137. package/lib/piral-cli.js.map +1 -1
  138. package/lib/plugin.js +10 -10
  139. package/lib/plugin.js.map +1 -1
  140. package/lib/release.js +3 -3
  141. package/lib/release.js.map +1 -1
  142. package/lib/resolvers.js +13 -13
  143. package/lib/resolvers.js.map +1 -1
  144. package/lib/rules/index.js +7 -7
  145. package/lib/rules/index.js.map +1 -1
  146. package/lib/rules/pilet-has-externals-as-peers.js +3 -3
  147. package/lib/rules/pilet-has-externals-as-peers.js.map +1 -1
  148. package/lib/rules/pilet-has-no-self-reference.js +1 -1
  149. package/lib/rules/pilet-has-no-self-reference.js.map +1 -1
  150. package/lib/rules/pilet-stays-small.js +3 -3
  151. package/lib/rules/pilet-stays-small.js.map +1 -1
  152. package/lib/rules/pilet-uses-latest-piral.js +1 -1
  153. package/lib/rules/pilet-uses-latest-piral.js.map +1 -1
  154. package/lib/rules/piral-entry-ends-with-html.js +1 -1
  155. package/lib/rules/piral-entry-ends-with-html.js.map +1 -1
  156. package/lib/rules/piral-has-valid-files.js +5 -5
  157. package/lib/rules/piral-has-valid-files.js.map +1 -1
  158. package/lib/runner.js +1 -1
  159. package/lib/runner.js.map +1 -1
  160. package/lib/select.js +6 -6
  161. package/lib/select.js.map +1 -1
  162. package/lib/types/common.d.ts +8 -0
  163. package/lib/types/public.d.ts +66 -12
  164. package/package.json +3 -3
  165. package/src/apps/build-pilet.ts +7 -4
  166. package/src/apps/build-piral.ts +6 -5
  167. package/src/apps/debug-pilet.ts +3 -2
  168. package/src/apps/debug-piral.ts +2 -1
  169. package/src/apps/declaration-piral.ts +3 -1
  170. package/src/apps/new-pilet.ts +7 -3
  171. package/src/apps/new-piral.ts +2 -1
  172. package/src/apps/pack-pilet.ts +3 -1
  173. package/src/apps/publish-pilet.ts +6 -5
  174. package/src/apps/publish-piral.ts +3 -2
  175. package/src/apps/upgrade-pilet.ts +5 -4
  176. package/src/apps/upgrade-piral.ts +2 -1
  177. package/src/apps/validate-pilet.ts +5 -2
  178. package/src/apps/validate-piral.ts +3 -1
  179. package/src/build/bundler-calls.ts +121 -0
  180. package/src/build/run-build-pilet.ts +89 -0
  181. package/src/build/run-build-piral.ts +88 -0
  182. package/src/build/run-debug-mono-piral.ts +87 -0
  183. package/src/build/run-debug-pilet.ts +114 -0
  184. package/src/build/run-debug-piral.ts +106 -0
  185. package/src/bundler.test.ts +83 -68
  186. package/src/bundler.ts +52 -12
  187. package/src/common/config.ts +6 -1
  188. package/src/common/constants.ts +1 -1
  189. package/src/common/emulator.ts +1 -0
  190. package/src/common/hash.ts +5 -0
  191. package/src/common/http.ts +18 -4
  192. package/src/common/io.ts +4 -0
  193. package/src/common/npm.test.ts +14 -14
  194. package/src/common/npm.ts +21 -2
  195. package/src/common/package.ts +120 -9
  196. package/src/helpers.ts +2 -2
  197. package/src/injectors/pilet.ts +82 -22
  198. package/src/injectors/piral.test.ts +6 -5
  199. package/src/injectors/piral.ts +21 -2
  200. package/src/messages.ts +23 -15
  201. package/src/types/common.ts +9 -0
  202. package/src/types/public.ts +71 -20
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-cli",
3
- "version": "0.13.8",
3
+ "version": "0.14.0-beta.3156",
4
4
  "description": "The standard CLI for creating and building a Piral instance or a Pilet.",
5
5
  "keywords": [
6
6
  "portal",
@@ -70,12 +70,12 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "chalk": "^2.4.2",
73
- "dets": "^0.10.1",
73
+ "dets": "^0.10.2",
74
74
  "ejs": "^2.6.2",
75
75
  "kras": "^0.12.2",
76
76
  "rimraf": "^3.0.0",
77
77
  "typescript": "^4.0.2",
78
78
  "yargs": "^15.4.1"
79
79
  },
80
- "gitHead": "26a9a75314886ad9d81ff9d17b5d05296af3d04f"
80
+ "gitHead": "e368a181defdfca4722d7bd478a9dcd47d90a51b"
81
81
  }
@@ -12,6 +12,7 @@ import {
12
12
  ForceOverwrite,
13
13
  matchAnyPilet,
14
14
  fail,
15
+ config,
15
16
  } from '../common';
16
17
 
17
18
  export interface BuildPiletOptions {
@@ -93,7 +94,7 @@ export const buildPiletDefaults: BuildPiletOptions = {
93
94
  sourceMaps: true,
94
95
  contentHash: true,
95
96
  optimizeModules: false,
96
- schemaVersion: 'v1',
97
+ schemaVersion: config.schemaVersion,
97
98
  declaration: true,
98
99
  };
99
100
 
@@ -113,9 +114,10 @@ export async function buildPilet(baseDir = process.cwd(), options: BuildPiletOpt
113
114
  bundlerName,
114
115
  app,
115
116
  } = options;
117
+ const fullBase = resolve(process.cwd(), baseDir);
116
118
  setLogLevel(logLevel);
117
119
  progress('Reading configuration ...');
118
- const allEntries = await matchAnyPilet(baseDir, [entry]);
120
+ const allEntries = await matchAnyPilet(fullBase, [entry]);
119
121
 
120
122
  if (allEntries.length === 0) {
121
123
  fail('entryFileMissing_0077');
@@ -123,12 +125,12 @@ export async function buildPilet(baseDir = process.cwd(), options: BuildPiletOpt
123
125
 
124
126
  const entryModule = allEntries.shift();
125
127
  const targetDir = dirname(entryModule);
126
- const { peerDependencies, peerModules, root, appPackage, piletPackage, ignored } = await retrievePiletData(
128
+ const { peerDependencies, peerModules, root, appPackage, piletPackage, ignored, importmap } = await retrievePiletData(
127
129
  targetDir,
128
130
  app,
129
131
  );
130
132
  const externals = [...Object.keys(peerDependencies), ...peerModules];
131
- const outDir = dirname(resolve(baseDir, target));
133
+ const outDir = dirname(resolve(fullBase, target));
132
134
 
133
135
  if (fresh) {
134
136
  progress('Removing output directory ...');
@@ -147,6 +149,7 @@ export async function buildPilet(baseDir = process.cwd(), options: BuildPiletOpt
147
149
  minify,
148
150
  externals,
149
151
  targetDir,
152
+ importmap,
150
153
  outFile: basename(target),
151
154
  outDir,
152
155
  entryModule: `./${relative(root, entryModule)}`,
@@ -151,12 +151,13 @@ export async function buildPiral(baseDir = process.cwd(), options: BuildPiralOpt
151
151
  _ = {},
152
152
  bundlerName,
153
153
  } = options;
154
+ const fullBase = resolve(process.cwd(), baseDir);
155
+ const useSubdir = type === 'all' || subdir;
154
156
  setLogLevel(logLevel);
155
157
  progress('Reading configuration ...');
156
- const useSubdir = type === 'all' || subdir;
157
- const entryFiles = await retrievePiralRoot(baseDir, entry);
158
+ const entryFiles = await retrievePiralRoot(fullBase, entry);
158
159
  const { name, root, ignored, externals, scripts } = await retrievePiletsInfo(entryFiles);
159
- const dest = getDestination(entryFiles, resolve(baseDir, target));
160
+ const dest = getDestination(entryFiles, resolve(fullBase, target));
160
161
 
161
162
  await checkCliCompatibility(root);
162
163
 
@@ -202,9 +203,9 @@ export async function buildPiral(baseDir = process.cwd(), options: BuildPiralOpt
202
203
 
203
204
  if (type !== emulatorSourcesName) {
204
205
  await packageEmulator(rootDir);
205
- logDone(`Emulator sources available in "${rootDir}".`);
206
- } else {
207
206
  logDone(`Emulator package available in "${rootDir}".`);
207
+ } else {
208
+ logDone(`Emulator sources available in "${rootDir}".`);
208
209
  }
209
210
 
210
211
  logReset();
@@ -82,7 +82,7 @@ export const debugPiletDefaults: DebugPiletOptions = {
82
82
  port: 1234,
83
83
  hmr: true,
84
84
  optimizeModules: false,
85
- schemaVersion: 'v1',
85
+ schemaVersion: config.schemaVersion,
86
86
  };
87
87
 
88
88
  const injectorName = resolve(__dirname, '../injectors/pilet.js');
@@ -168,7 +168,7 @@ export async function debugPilet(baseDir = process.cwd(), options: DebugPiletOpt
168
168
  const pilets = await Promise.all(
169
169
  allEntries.map(async (entryModule) => {
170
170
  const targetDir = dirname(entryModule);
171
- const { peerDependencies, peerModules, root, appPackage, appFile, ignored, emulator } = await retrievePiletData(
171
+ const { peerDependencies, peerModules, root, appPackage, appFile, ignored, emulator, importmap } = await retrievePiletData(
172
172
  targetDir,
173
173
  app,
174
174
  );
@@ -192,6 +192,7 @@ export async function debugPilet(baseDir = process.cwd(), options: DebugPiletOpt
192
192
  hmr,
193
193
  externals,
194
194
  targetDir,
195
+ importmap,
195
196
  entryModule: `./${relative(root, entryModule)}`,
196
197
  logLevel,
197
198
  version: schemaVersion,
@@ -86,9 +86,10 @@ export async function debugPiral(baseDir = process.cwd(), options: DebugPiralOpt
86
86
  _ = {},
87
87
  bundlerName,
88
88
  } = options;
89
+ const fullBase = resolve(process.cwd(), baseDir);
89
90
  setLogLevel(logLevel);
90
91
  progress('Reading configuration ...');
91
- const entryFiles = await retrievePiralRoot(baseDir, entry);
92
+ const entryFiles = await retrievePiralRoot(fullBase, entry);
92
93
  const { externals, name, root, ignored } = await retrievePiletsInfo(entryFiles);
93
94
  const krasConfig = readKrasConfig({ port }, krasrc);
94
95
 
@@ -1,3 +1,4 @@
1
+ import { resolve } from 'path';
1
2
  import { setLogLevel, logDone, createPiralDeclaration, ForceOverwrite } from '../common';
2
3
  import { LogLevels } from '../types';
3
4
 
@@ -37,7 +38,8 @@ export async function declarationPiral(baseDir = process.cwd(), options: Declara
37
38
  forceOverwrite = declarationPiralDefaults.forceOverwrite,
38
39
  logLevel = declarationPiralDefaults.logLevel,
39
40
  } = options;
41
+ const fullBase = resolve(process.cwd(), baseDir);
40
42
  setLogLevel(logLevel);
41
- await createPiralDeclaration(baseDir, entry, target, forceOverwrite, logLevel);
43
+ await createPiralDeclaration(fullBase, entry, target, forceOverwrite, logLevel);
42
44
  logDone(`Declaration created successfully in "${target}"!`);
43
45
  }
@@ -120,10 +120,11 @@ export async function newPilet(baseDir = process.cwd(), options: NewPiletOptions
120
120
  bundlerName = newPiletDefaults.bundlerName,
121
121
  variables = newPiletDefaults.variables,
122
122
  } = options;
123
+ const fullBase = resolve(process.cwd(), baseDir);
124
+ const root = resolve(fullBase, target);
123
125
  setLogLevel(logLevel);
124
126
  progress('Preparing source and target ...');
125
- const root = resolve(baseDir, target);
126
- const [sourceName, sourceVersion, hadVersion, type] = await dissectPackageName(baseDir, source);
127
+ const [sourceName, sourceVersion, hadVersion, type] = await dissectPackageName(fullBase, source);
127
128
  const success = await createDirectory(root);
128
129
 
129
130
  if (success) {
@@ -204,7 +205,10 @@ always-auth=true`,
204
205
  await copyScaffoldingFiles(packageRoot, root, files, piralInfo);
205
206
  }
206
207
 
207
- await patchPiletPackage(root, packageName, packageVersion, piralInfo, { language, bundler: bundlerName });
208
+ await patchPiletPackage(root, packageName, packageVersion, piralInfo, isEmulator, {
209
+ language,
210
+ bundler: bundlerName,
211
+ });
208
212
 
209
213
  if (install) {
210
214
  progress(`Installing dependencies ...`);
@@ -118,9 +118,10 @@ export async function newPiral(baseDir = process.cwd(), options: NewPiralOptions
118
118
  bundlerName = newPiralDefaults.bundlerName,
119
119
  variables = newPiralDefaults.variables,
120
120
  } = options;
121
+ const fullBase = resolve(process.cwd(), baseDir);
122
+ const root = resolve(fullBase, target);
121
123
  setLogLevel(logLevel);
122
124
  progress('Preparing source and target ...');
123
- const root = resolve(baseDir, target);
124
125
  const success = await createDirectory(root);
125
126
 
126
127
  if (success) {
@@ -1,3 +1,4 @@
1
+ import { resolve } from 'path';
1
2
  import { createPiletPackage, logDone, setLogLevel, progress } from '../common';
2
3
  import { LogLevels } from '../types';
3
4
 
@@ -30,8 +31,9 @@ export async function packPilet(baseDir = process.cwd(), options: PackPiletOptio
30
31
  target = packPiletDefaults.target,
31
32
  logLevel = packPiletDefaults.logLevel,
32
33
  } = options;
34
+ const fullBase = resolve(process.cwd(), baseDir);
33
35
  setLogLevel(logLevel);
34
36
  progress('Reading configuration ...');
35
- await createPiletPackage(baseDir, source, target);
37
+ await createPiletPackage(fullBase, source, target);
36
38
  logDone(`Pilet packed successfully!`);
37
39
  }
@@ -1,4 +1,4 @@
1
- import { relative, join, dirname, basename } from 'path';
1
+ import { relative, join, dirname, basename, resolve } from 'path';
2
2
  import { buildPilet } from './build-pilet';
3
3
  import { LogLevels, PiletSchemaVersion, PiletPublishSource } from '../types';
4
4
  import {
@@ -76,7 +76,7 @@ export const publishPiletDefaults: PublishPiletOptions = {
76
76
  fresh: false,
77
77
  cert: undefined,
78
78
  logLevel: LogLevels.info,
79
- schemaVersion: 'v1',
79
+ schemaVersion: config.schemaVersion,
80
80
  from: 'local',
81
81
  fields: {},
82
82
  };
@@ -134,6 +134,7 @@ export async function publishPilet(baseDir = process.cwd(), options: PublishPile
134
134
  cert = config.cert ?? publishPiletDefaults.cert,
135
135
  fields = publishPiletDefaults.fields,
136
136
  } = options;
137
+ const fullBase = resolve(process.cwd(), baseDir);
137
138
  setLogLevel(logLevel);
138
139
  progress('Reading configuration ...');
139
140
 
@@ -152,7 +153,7 @@ export async function publishPilet(baseDir = process.cwd(), options: PublishPile
152
153
  }
153
154
 
154
155
  log('generalDebug_0003', 'Getting the tgz files ...');
155
- const files = await getFiles(baseDir, source, from, fresh, schemaVersion, ca);
156
+ const files = await getFiles(fullBase, source, from, fresh, schemaVersion, ca);
156
157
  const successfulUploads: Array<string> = [];
157
158
  log('generalDebug_0003', 'Received available tgz files.');
158
159
 
@@ -164,8 +165,8 @@ export async function publishPilet(baseDir = process.cwd(), options: PublishPile
164
165
 
165
166
  for (const file of files) {
166
167
  log('generalDebug_0003', 'Reading the file for upload ...');
167
- const fileName = relative(baseDir, file);
168
- const content = await readBinary(baseDir, fileName);
168
+ const fileName = relative(fullBase, file);
169
+ const content = await readBinary(fullBase, fileName);
169
170
 
170
171
  if (content) {
171
172
  progress(`Publishing "%s" ...`, file, url);
@@ -87,6 +87,7 @@ export async function publishPiral(baseDir = process.cwd(), options: PublishPira
87
87
  fields = publishPiralDefaults.fields,
88
88
  provider = publishPiralDefaults.provider,
89
89
  } = options;
90
+ const fullBase = resolve(process.cwd(), baseDir);
90
91
  setLogLevel(logLevel);
91
92
 
92
93
  if (type === 'emulator-sources') {
@@ -97,14 +98,14 @@ export async function publishPiral(baseDir = process.cwd(), options: PublishPira
97
98
 
98
99
  if (type !== 'release') {
99
100
  progress('Publishing emulator package ...');
100
- await publishEmulator(baseDir, source, fields);
101
+ await publishEmulator(fullBase, source, fields);
101
102
  logDone(`Successfully published emulator.`);
102
103
  logReset();
103
104
  }
104
105
 
105
106
  if (type !== 'emulator') {
106
107
  progress('Publishing release files ...');
107
- await publishRelease(baseDir, source, provider, fields);
108
+ await publishRelease(fullBase, source, provider, fields);
108
109
  logDone(`Successfully published release.`);
109
110
  logReset();
110
111
  }
@@ -82,8 +82,9 @@ export async function upgradePilet(baseDir = process.cwd(), options: UpgradePile
82
82
  logLevel = upgradePiletDefaults.logLevel,
83
83
  install = upgradePiletDefaults.install,
84
84
  } = options;
85
+ const fullBase = resolve(process.cwd(), baseDir);
86
+ const root = resolve(fullBase, target);
85
87
  setLogLevel(logLevel);
86
- const root = resolve(baseDir, target);
87
88
  const valid = await checkExistingDirectory(root);
88
89
 
89
90
  if (!valid) {
@@ -107,9 +108,9 @@ export async function upgradePilet(baseDir = process.cwd(), options: UpgradePile
107
108
  fail('invalidPiralReference_0043');
108
109
  }
109
110
 
110
- const monorepoRef = await isMonorepoPackageRef(sourceName, baseDir);
111
+ const monorepoRef = await isMonorepoPackageRef(sourceName, fullBase);
111
112
  const [packageRef, packageVersion] = await getCurrentPackageDetails(
112
- baseDir,
113
+ fullBase,
113
114
  sourceName,
114
115
  currentVersion,
115
116
  version,
@@ -148,7 +149,7 @@ export async function upgradePilet(baseDir = process.cwd(), options: UpgradePile
148
149
  await copyScaffoldingFiles(packageRoot, root, notOnceFiles, piralInfo);
149
150
  }
150
151
 
151
- await patchPiletPackage(root, sourceName, packageVersion, piralInfo);
152
+ await patchPiletPackage(root, sourceName, packageVersion, piralInfo, isEmulator);
152
153
 
153
154
  if (install) {
154
155
  progress(`Updating dependencies ...`);
@@ -81,8 +81,9 @@ export async function upgradePiral(baseDir = process.cwd(), options: UpgradePira
81
81
  logLevel = upgradePiralDefaults.logLevel,
82
82
  install = upgradePiralDefaults.install,
83
83
  } = options;
84
+ const fullBase = resolve(process.cwd(), baseDir);
85
+ const root = resolve(fullBase, target);
84
86
  setLogLevel(logLevel);
85
- const root = resolve(baseDir, target);
86
87
  const valid = await checkExistingDirectory(root);
87
88
  const exists = await checkExists(join(root, 'package.json'));
88
89
 
@@ -1,4 +1,4 @@
1
- import { join, dirname } from 'path';
1
+ import { join, dirname, resolve } from 'path';
2
2
  import { ruleSummary, runRules, retrievePiletData, getPiletsInfo, setLogLevel, progress, log } from '../common';
3
3
  import { getPiletRules } from '../rules';
4
4
  import { PiletRuleContext, LogLevels } from '../types';
@@ -32,11 +32,12 @@ export async function validatePilet(baseDir = process.cwd(), options: ValidatPil
32
32
  logLevel = validatePiletDefaults.logLevel,
33
33
  app = validatePiletDefaults.app,
34
34
  } = options;
35
+ const fullBase = resolve(process.cwd(), baseDir);
35
36
  setLogLevel(logLevel);
36
37
  progress('Reading configuration ...');
37
38
 
38
39
  const rules = await getPiletRules();
39
- const entryFile = join(baseDir, entry);
40
+ const entryFile = join(fullBase, entry);
40
41
  const target = dirname(entryFile);
41
42
  const {
42
43
  dependencies,
@@ -44,6 +45,7 @@ export async function validatePilet(baseDir = process.cwd(), options: ValidatPil
44
45
  devDependencies,
45
46
  peerModules,
46
47
  root,
48
+ importmap,
47
49
  ignored: _0,
48
50
  emulator: _1,
49
51
  ...data
@@ -63,6 +65,7 @@ export async function validatePilet(baseDir = process.cwd(), options: ValidatPil
63
65
  dependencies,
64
66
  devDependencies,
65
67
  peerDependencies,
68
+ importmap,
66
69
  peerModules,
67
70
  root,
68
71
  data,
@@ -1,3 +1,4 @@
1
+ import { resolve } from 'path';
1
2
  import { retrievePiralRoot, retrievePiletsInfo, ruleSummary, runRules, config } from '../common';
2
3
  import { setLogLevel, progress, log, checkCliCompatibility } from '../common';
3
4
  import { getPiralRules } from '../rules';
@@ -22,11 +23,12 @@ export const validatePiralDefaults: ValidatPiralOptions = {
22
23
 
23
24
  export async function validatePiral(baseDir = process.cwd(), options: ValidatPiralOptions = {}) {
24
25
  const { entry = validatePiralDefaults.entry, logLevel = validatePiralDefaults.logLevel } = options;
26
+ const fullBase = resolve(process.cwd(), baseDir);
25
27
  setLogLevel(logLevel);
26
28
  progress('Reading configuration ...');
27
29
 
28
30
  const rules = await getPiralRules();
29
- const entryFiles = await retrievePiralRoot(baseDir, entry);
31
+ const entryFiles = await retrievePiralRoot(fullBase, entry);
30
32
  const { root, dependencies, ignored: _, ...info } = await retrievePiletsInfo(entryFiles);
31
33
  const errors: Array<string> = [];
32
34
  const warnings: Array<string> = [];
@@ -0,0 +1,121 @@
1
+ import { resolve } from 'path';
2
+ import { fork, ChildProcess } from 'child_process';
3
+ import { Bundler, BundleDetails, BaseBundleParameters } from '../types';
4
+
5
+ function getPath(name: string) {
6
+ return resolve(__dirname, '..', '..', 'lib', 'build', `run-${name}.js`);
7
+ }
8
+
9
+ type BundleListener = (args: any) => void;
10
+
11
+ function createBundler(cwd: string, ps: ChildProcess, args: any) {
12
+ let promise = Promise.resolve();
13
+ const listeners: Array<BundleListener> = [];
14
+ const bundle: BundleDetails = {
15
+ dir: cwd,
16
+ hash: '',
17
+ name: '',
18
+ };
19
+ const setPending = () => {
20
+ promise = new Promise((done) => {
21
+ const f = () => {
22
+ done();
23
+ bundler.off(f);
24
+ };
25
+ bundler.on(f);
26
+ });
27
+ };
28
+ const bundler = {
29
+ bundle,
30
+ start() {
31
+ ps.send({
32
+ type: 'bundle',
33
+ ...args,
34
+ });
35
+ },
36
+ on(cb: BundleListener) {
37
+ listeners.push(cb);
38
+ },
39
+ off(cb: BundleListener) {
40
+ listeners.splice(listeners.indexOf(cb), 1);
41
+ },
42
+ emit(args: any) {
43
+ [...listeners].forEach((cb) => cb(args));
44
+ },
45
+ ready() {
46
+ return promise;
47
+ },
48
+ setPending,
49
+ };
50
+ setPending();
51
+ return bundler;
52
+ }
53
+
54
+ export function callDynamic<T extends BaseBundleParameters>(name: string, path: string, args: T) {
55
+ const cwd = args.root;
56
+ return new Promise<Bundler>((resolve, reject) => {
57
+ const ps = fork(getPath(name), [], { cwd });
58
+ const bundler = createBundler(cwd, ps, args);
59
+ const setup = {
60
+ type: 'init',
61
+ path,
62
+ };
63
+ const start = () => {
64
+ ps.send({
65
+ type: 'start',
66
+ ...args,
67
+ });
68
+ };
69
+
70
+ ps.on('message', (msg: any) => {
71
+ switch (msg.type) {
72
+ case 'pending':
73
+ bundler.setPending();
74
+ break;
75
+ case 'update':
76
+ bundler.bundle.hash = msg.outHash;
77
+ bundler.bundle.name = msg.outName;
78
+ bundler.emit(msg.args);
79
+ break;
80
+ case 'done':
81
+ bundler.bundle.dir = msg.outDir;
82
+ return resolve(bundler);
83
+ case 'fail':
84
+ return reject(msg.error);
85
+ }
86
+ });
87
+
88
+ ps.send(setup, start);
89
+ });
90
+ }
91
+
92
+ export function callStatic<T extends BaseBundleParameters>(name: string, path: string, args: T) {
93
+ const cwd = args.root;
94
+ return new Promise<Bundler>((resolve, reject) => {
95
+ const ps = fork(getPath(name), [], { cwd });
96
+ const bundler = createBundler(cwd, ps, args);
97
+ const setup = {
98
+ type: 'init',
99
+ path,
100
+ };
101
+ const start = () => {
102
+ ps.send({
103
+ type: 'start',
104
+ ...args,
105
+ });
106
+ };
107
+
108
+ ps.on('message', (msg: any) => {
109
+ switch (msg.type) {
110
+ case 'done':
111
+ bundler.bundle.dir = msg.outDir;
112
+ bundler.bundle.name = msg.outFile;
113
+ return resolve(bundler);
114
+ case 'fail':
115
+ return reject(msg.error);
116
+ }
117
+ });
118
+
119
+ ps.send(setup, start);
120
+ });
121
+ }
@@ -0,0 +1,89 @@
1
+ import type { PiletSchemaVersion, LogLevels, SharedDependency, PiletBuildHandler } from '../types';
2
+ import { setStandardEnvs } from '../common';
3
+
4
+ let handler: PiletBuildHandler;
5
+
6
+ function run(
7
+ root: string,
8
+ piral: string,
9
+ sourceMaps: boolean,
10
+ contentHash: boolean,
11
+ minify: boolean,
12
+ externals: Array<string>,
13
+ importmap: Array<SharedDependency>,
14
+ targetDir: string,
15
+ outDir: string,
16
+ outFile: string,
17
+ entryModule: string,
18
+ version: PiletSchemaVersion,
19
+ logLevel: LogLevels,
20
+ args: any,
21
+ ) {
22
+ setStandardEnvs({
23
+ production: true,
24
+ piral,
25
+ root,
26
+ });
27
+
28
+ return handler.create({
29
+ root,
30
+ piral,
31
+ entryModule,
32
+ targetDir,
33
+ outDir,
34
+ outFile,
35
+ externals,
36
+ importmap,
37
+ version,
38
+ develop: false,
39
+ sourceMaps,
40
+ contentHash,
41
+ minify,
42
+ logLevel,
43
+ watch: false,
44
+ args,
45
+ });
46
+ }
47
+
48
+ process.on('message', async (msg) => {
49
+ try {
50
+ switch (msg.type) {
51
+ case 'init':
52
+ handler = require(msg.path);
53
+ break;
54
+ case 'start':
55
+ const bundler = await run(
56
+ process.cwd(),
57
+ msg.piral,
58
+ msg.sourceMaps,
59
+ msg.contentHash,
60
+ msg.minify,
61
+ msg.externals,
62
+ msg.importmap,
63
+ msg.targetDir,
64
+ msg.outDir,
65
+ msg.outFile,
66
+ msg.entryModule,
67
+ msg.version,
68
+ msg.logLevel,
69
+ msg,
70
+ );
71
+ const result = await bundler.bundle();
72
+
73
+ if (result) {
74
+ process.send({
75
+ type: 'done',
76
+ outDir: result.outDir,
77
+ outFile: result.outFile,
78
+ });
79
+ }
80
+
81
+ break;
82
+ }
83
+ } catch (error) {
84
+ process.send({
85
+ type: 'fail',
86
+ error: error?.message,
87
+ });
88
+ }
89
+ });
@@ -0,0 +1,88 @@
1
+ import type { PiralBuildHandler, LogLevels } from '../types';
2
+ import { setStandardEnvs } from '../common';
3
+
4
+ let handler: PiralBuildHandler;
5
+
6
+ function run(
7
+ root: string,
8
+ piral: string,
9
+ emulator: boolean,
10
+ sourceMaps: boolean,
11
+ contentHash: boolean,
12
+ minify: boolean,
13
+ externals: Array<string>,
14
+ publicUrl: string,
15
+ outFile: string,
16
+ outDir: string,
17
+ entryFiles: string,
18
+ logLevel: LogLevels,
19
+ args: any,
20
+ ) {
21
+ setStandardEnvs({
22
+ production: !emulator,
23
+ root,
24
+ debugPiral: emulator,
25
+ debugPilet: emulator,
26
+ piral,
27
+ dependencies: externals,
28
+ });
29
+
30
+ return handler.create({
31
+ root,
32
+ entryFiles,
33
+ outFile,
34
+ outDir,
35
+ externals,
36
+ emulator,
37
+ sourceMaps,
38
+ contentHash,
39
+ minify,
40
+ publicUrl,
41
+ hmr: false,
42
+ logLevel,
43
+ watch: false,
44
+ args,
45
+ });
46
+ }
47
+
48
+ process.on('message', async (msg) => {
49
+ try {
50
+ switch (msg.type) {
51
+ case 'init':
52
+ handler = require(msg.path);
53
+ break;
54
+ case 'start':
55
+ const bundler = await run(
56
+ process.cwd(),
57
+ msg.piral,
58
+ msg.emulator,
59
+ msg.sourceMaps,
60
+ msg.contentHash,
61
+ msg.minify,
62
+ msg.externals,
63
+ msg.publicUrl,
64
+ msg.outFile,
65
+ msg.outDir,
66
+ msg.entryFiles,
67
+ msg.logLevel,
68
+ msg,
69
+ );
70
+ const result = await bundler.bundle();
71
+
72
+ if (result) {
73
+ process.send({
74
+ type: 'done',
75
+ outDir: result.outDir,
76
+ outFile: result.outFile,
77
+ });
78
+ }
79
+
80
+ break;
81
+ }
82
+ } catch (error) {
83
+ process.send({
84
+ type: 'fail',
85
+ error: error?.message,
86
+ });
87
+ }
88
+ });