@ryanatkn/gro 0.124.0 → 0.125.1

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 (47) hide show
  1. package/README.md +1 -1
  2. package/dist/args.js +2 -2
  3. package/dist/changeset.task.d.ts +3 -2
  4. package/dist/changeset.task.js +13 -18
  5. package/dist/changeset_helpers.d.ts +8 -0
  6. package/dist/changeset_helpers.js +7 -0
  7. package/dist/check.task.js +1 -1
  8. package/dist/cli.d.ts +26 -5
  9. package/dist/cli.js +49 -13
  10. package/dist/config.d.ts +29 -5
  11. package/dist/config.js +31 -20
  12. package/dist/deploy.task.js +7 -10
  13. package/dist/docs/config.md +15 -5
  14. package/dist/esbuild_helpers.js +1 -1
  15. package/dist/format_directory.d.ts +2 -1
  16. package/dist/format_directory.js +7 -7
  17. package/dist/gen.js +1 -1
  18. package/dist/gen.task.js +1 -1
  19. package/dist/github.d.ts +2 -2
  20. package/dist/gro_plugin_sveltekit_app.d.ts +5 -1
  21. package/dist/gro_plugin_sveltekit_app.js +13 -12
  22. package/dist/gro_plugin_sveltekit_library.d.ts +7 -1
  23. package/dist/gro_plugin_sveltekit_library.js +7 -7
  24. package/dist/index.d.ts +1 -1
  25. package/dist/invoke_task.js +1 -1
  26. package/dist/lint.task.d.ts +3 -0
  27. package/dist/lint.task.js +9 -6
  28. package/dist/package.d.ts +94 -84
  29. package/dist/package.js +117 -92
  30. package/dist/package_json.d.ts +71 -68
  31. package/dist/package_json.js +52 -25
  32. package/dist/path.d.ts +3 -0
  33. package/dist/paths.js +1 -1
  34. package/dist/publish.task.d.ts +3 -0
  35. package/dist/publish.task.js +10 -7
  36. package/dist/run.task.js +1 -1
  37. package/dist/run_gen.js +1 -1
  38. package/dist/run_task.js +1 -1
  39. package/dist/search_fs.d.ts +2 -2
  40. package/dist/sveltekit_helpers.d.ts +5 -2
  41. package/dist/sveltekit_helpers.js +13 -10
  42. package/dist/task.js +1 -1
  43. package/dist/task_logging.js +1 -1
  44. package/dist/test.task.js +2 -3
  45. package/dist/typecheck.task.d.ts +10 -1
  46. package/dist/typecheck.task.js +27 -17
  47. package/package.json +175 -172
@@ -1,26 +1,28 @@
1
- import { spawn_process } from '@ryanatkn/belt/process.js';
2
1
  import { cp, mkdir, rm, writeFile } from 'node:fs/promises';
3
2
  import { dirname, join } from 'node:path';
4
3
  import { existsSync } from 'node:fs';
5
- import { print_command_args, serialize_args, to_forwarded_args } from './args.js';
4
+ import { serialize_args, to_forwarded_args } from './args.js';
6
5
  import { serialize_package_json, load_package_json } from './package_json.js';
7
6
  import { Task_Error } from './task.js';
8
- import { spawn_cli } from './cli.js';
7
+ import { find_cli, spawn_cli, spawn_cli_process } from './cli.js';
9
8
  import { serialize_src_json, create_src_json } from './src_json.js';
10
9
  import { DEFAULT_EXPORTS_EXCLUDER } from './config.js';
11
10
  import { sveltekit_config_global } from './sveltekit_config_global.js';
12
11
  import { SOURCE_DIRNAME } from './path_constants.js';
13
- export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_known_package_json, well_known_src_json, well_known_src_files, } = {}) => {
14
- let sveltekit_process = null;
12
+ import { VITE_CLI } from './sveltekit_helpers.js';
13
+ export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_known_package_json, well_known_src_json, well_known_src_files, vite_cli = VITE_CLI, } = {}) => {
14
+ let sveltekit_process = undefined;
15
15
  return {
16
16
  name: 'gro_plugin_sveltekit_app',
17
17
  setup: async ({ dev, watch, log }) => {
18
+ const found_vite_cli = await find_cli(vite_cli);
19
+ if (!found_vite_cli)
20
+ throw new Error(`Failed to find Vite CLI \`${vite_cli}\`, do you need to run \`npm i\`?`);
18
21
  if (dev) {
19
22
  // `vite dev` in development mode
20
23
  if (watch) {
21
- const serialized_args = ['vite', 'dev', ...serialize_args(to_forwarded_args('vite'))];
22
- log.info(print_command_args(serialized_args));
23
- sveltekit_process = spawn_process('npx', serialized_args);
24
+ const serialized_args = ['dev', ...serialize_args(to_forwarded_args(vite_cli))];
25
+ sveltekit_process = await spawn_cli_process(found_vite_cli, serialized_args, log);
24
26
  }
25
27
  else {
26
28
  log.debug(`the SvelteKit app plugin is loaded but will not output anything` +
@@ -81,11 +83,10 @@ export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_kn
81
83
  ].filter(Boolean);
82
84
  const cleanup = () => Promise.all(cleanups.map((c) => c()));
83
85
  try {
84
- const serialized_args = ['build', ...serialize_args(to_forwarded_args('vite'))];
85
- log.info(print_command_args(['vite'].concat(serialized_args)));
86
- const spawned = await spawn_cli('vite', serialized_args); // TODO call with the gro helper instead of npx?
86
+ const serialized_args = ['build', ...serialize_args(to_forwarded_args(vite_cli))];
87
+ const spawned = await spawn_cli(found_vite_cli, serialized_args, log);
87
88
  if (!spawned?.ok) {
88
- throw new Task_Error('vite build failed with exit code ' + spawned?.code);
89
+ throw new Task_Error(`${vite_cli} build failed with exit code ${spawned?.code}`);
89
90
  }
90
91
  }
91
92
  catch (err) {
@@ -1,2 +1,8 @@
1
1
  import type { Plugin, Plugin_Context } from './plugin.js';
2
- export declare const gro_plugin_sveltekit_library: () => Plugin<Plugin_Context>;
2
+ export interface Options {
3
+ /**
4
+ * The SvelteKit packaging CLI to use. Defaults to `svelte-package`.
5
+ */
6
+ svelte_package_cli?: string;
7
+ }
8
+ export declare const gro_plugin_sveltekit_library: ({ svelte_package_cli, }?: Options) => Plugin<Plugin_Context>;
@@ -1,10 +1,10 @@
1
1
  import { print_spawn_result, spawn } from '@ryanatkn/belt/process.js';
2
2
  import { Task_Error } from './task.js';
3
3
  import { load_package_json } from './package_json.js';
4
- import { print_command_args, serialize_args, to_forwarded_args } from './args.js';
4
+ import { serialize_args, to_forwarded_args } from './args.js';
5
5
  import { find_cli, spawn_cli } from './cli.js';
6
6
  import { SVELTE_PACKAGE_CLI, has_sveltekit_library } from './sveltekit_helpers.js';
7
- export const gro_plugin_sveltekit_library = () => {
7
+ export const gro_plugin_sveltekit_library = ({ svelte_package_cli = SVELTE_PACKAGE_CLI, } = {}) => {
8
8
  return {
9
9
  name: 'gro_plugin_sveltekit_library',
10
10
  setup: async ({ log }) => {
@@ -12,12 +12,12 @@ export const gro_plugin_sveltekit_library = () => {
12
12
  if (!has_sveltekit_library_result.ok) {
13
13
  throw new Task_Error('Failed to find SvelteKit library: ' + has_sveltekit_library_result.message);
14
14
  }
15
- if ((await find_cli(SVELTE_PACKAGE_CLI)) !== 'local') {
16
- throw new Task_Error(`Failed to find ${SVELTE_PACKAGE_CLI}, run \`npm i\``);
15
+ const found_svelte_package_cli = await find_cli(svelte_package_cli);
16
+ if (found_svelte_package_cli?.kind !== 'local') {
17
+ throw new Task_Error(`Failed to find SvelteKit packaging CLI \`${svelte_package_cli}\`, do you need to run \`npm i\`?`);
17
18
  }
18
- const serialized_args = serialize_args(to_forwarded_args(SVELTE_PACKAGE_CLI));
19
- log.info(print_command_args(serialized_args));
20
- await spawn_cli(SVELTE_PACKAGE_CLI, serialized_args);
19
+ const serialized_args = serialize_args(to_forwarded_args(svelte_package_cli));
20
+ await spawn_cli(found_svelte_package_cli, serialized_args, log);
21
21
  },
22
22
  adapt: async ({ log, timings }) => {
23
23
  const package_json = await load_package_json();
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { Gro_Config, Create_Gro_Config } from './config.js';
1
+ export type { Gro_Config, Create_Gro_Config, Raw_Gro_Config } from './config.js';
2
2
  export { type Plugin, replace_plugin } from './plugin.js';
3
3
  export type { Gen, Gen_Context } from './gen.js';
4
4
  export { type Task, type Task_Context, Task_Error } from './task.js';
@@ -1,4 +1,4 @@
1
- import { cyan, red, gray } from 'kleur/colors';
1
+ import { cyan, red, gray } from '@ryanatkn/belt/styletext.js';
2
2
  import { System_Logger, print_log_label } from '@ryanatkn/belt/log.js';
3
3
  import { create_stopwatch, Timings } from '@ryanatkn/belt/timings.js';
4
4
  import { print_ms, print_timings } from '@ryanatkn/belt/print.js';
@@ -2,10 +2,13 @@ import { z } from 'zod';
2
2
  import { type Task } from './task.js';
3
3
  export declare const Args: z.ZodObject<{
4
4
  _: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
5
+ eslint_cli: z.ZodDefault<z.ZodString>;
5
6
  }, "strict", z.ZodTypeAny, {
6
7
  _: string[];
8
+ eslint_cli: string;
7
9
  }, {
8
10
  _?: string[] | undefined;
11
+ eslint_cli?: string | undefined;
9
12
  }>;
10
13
  export type Args = z.infer<typeof Args>;
11
14
  export declare const task: Task<Args>;
package/dist/lint.task.js CHANGED
@@ -1,27 +1,30 @@
1
1
  import { print_spawn_result } from '@ryanatkn/belt/process.js';
2
2
  import { z } from 'zod';
3
3
  import { Task_Error } from './task.js';
4
- import { print_command_args, serialize_args, to_forwarded_args } from './args.js';
4
+ import { serialize_args, to_forwarded_args } from './args.js';
5
5
  import { SOURCE_DIRNAME } from './path_constants.js';
6
6
  import { find_cli, spawn_cli } from './cli.js';
7
+ const ESLINT_CLI = 'eslint';
7
8
  export const Args = z
8
9
  .object({
9
10
  _: z.array(z.string(), { description: 'paths to serve' }).default([SOURCE_DIRNAME]),
11
+ eslint_cli: z.string({ description: 'the ESLint CLI to use' }).default(ESLINT_CLI),
10
12
  })
11
13
  .strict();
12
14
  export const task = {
13
15
  summary: 'run eslint',
14
16
  Args,
15
17
  run: async ({ log, args }) => {
16
- if (!(await find_cli('eslint'))) {
18
+ const { _, eslint_cli } = args;
19
+ const found_eslint_cli = await find_cli(eslint_cli);
20
+ if (!found_eslint_cli) {
21
+ // TODO maybe make this an option?
17
22
  log.info('ESLint is not installed; skipping linting');
18
23
  return;
19
24
  }
20
- const { _ } = args;
21
- const forwarded_args = { _, 'max-warnings': 0, ...to_forwarded_args('eslint') };
25
+ const forwarded_args = { _, 'max-warnings': 0, ...to_forwarded_args(eslint_cli) };
22
26
  const serialized_args = serialize_args(forwarded_args);
23
- log.info(print_command_args(['eslint'].concat(serialized_args)));
24
- const eslintResult = await spawn_cli('eslint', serialized_args);
27
+ const eslintResult = await spawn_cli(found_eslint_cli, serialized_args, log);
25
28
  if (!eslintResult?.ok) {
26
29
  throw new Task_Error(`ESLint found some problems. ${print_spawn_result(eslintResult)}`);
27
30
  }
package/dist/package.d.ts CHANGED
@@ -3,7 +3,7 @@ export declare const package_json: {
3
3
  version: string;
4
4
  description: string;
5
5
  motto: string;
6
- icon: string;
6
+ glyph: string;
7
7
  public: true;
8
8
  bin: {
9
9
  gro: string;
@@ -37,7 +37,6 @@ export declare const package_json: {
37
37
  chokidar: string;
38
38
  dotenv: string;
39
39
  'es-module-lexer': string;
40
- kleur: string;
41
40
  mri: string;
42
41
  prettier: string;
43
42
  'prettier-plugin-svelte': string;
@@ -93,337 +92,341 @@ export declare const package_json: {
93
92
  };
94
93
  exports: {
95
94
  '.': {
96
- default: string;
97
95
  types: string;
96
+ default: string;
98
97
  };
99
98
  './package.json': string;
100
99
  './args.js': {
101
- default: string;
102
100
  types: string;
101
+ default: string;
103
102
  };
104
103
  './build.task.js': {
105
- default: string;
106
104
  types: string;
105
+ default: string;
107
106
  };
108
107
  './changelog.js': {
108
+ types: string;
109
109
  default: string;
110
+ };
111
+ './changeset_helpers.js': {
110
112
  types: string;
113
+ default: string;
111
114
  };
112
115
  './changeset.task.js': {
113
- default: string;
114
116
  types: string;
117
+ default: string;
115
118
  };
116
119
  './check.task.js': {
117
- default: string;
118
120
  types: string;
121
+ default: string;
119
122
  };
120
123
  './clean_fs.js': {
121
- default: string;
122
124
  types: string;
125
+ default: string;
123
126
  };
124
127
  './clean.task.js': {
125
- default: string;
126
128
  types: string;
129
+ default: string;
127
130
  };
128
131
  './cli.js': {
129
- default: string;
130
132
  types: string;
133
+ default: string;
131
134
  };
132
135
  './commit.task.js': {
133
- default: string;
134
136
  types: string;
137
+ default: string;
135
138
  };
136
139
  './config.js': {
137
- default: string;
138
140
  types: string;
141
+ default: string;
139
142
  };
140
143
  './deploy.task.js': {
141
- default: string;
142
144
  types: string;
145
+ default: string;
143
146
  };
144
147
  './dev.task.js': {
145
- default: string;
146
148
  types: string;
149
+ default: string;
147
150
  };
148
151
  './env.js': {
149
- default: string;
150
152
  types: string;
153
+ default: string;
151
154
  };
152
155
  './esbuild_helpers.js': {
153
- default: string;
154
156
  types: string;
157
+ default: string;
155
158
  };
156
159
  './esbuild_plugin_external_worker.js': {
157
- default: string;
158
160
  types: string;
161
+ default: string;
159
162
  };
160
163
  './esbuild_plugin_svelte.js': {
161
- default: string;
162
164
  types: string;
165
+ default: string;
163
166
  };
164
167
  './esbuild_plugin_sveltekit_local_imports.js': {
165
- default: string;
166
168
  types: string;
169
+ default: string;
167
170
  };
168
171
  './esbuild_plugin_sveltekit_shim_alias.js': {
169
- default: string;
170
172
  types: string;
173
+ default: string;
171
174
  };
172
175
  './esbuild_plugin_sveltekit_shim_app.js': {
173
- default: string;
174
176
  types: string;
177
+ default: string;
175
178
  };
176
179
  './esbuild_plugin_sveltekit_shim_env.js': {
177
- default: string;
178
180
  types: string;
181
+ default: string;
179
182
  };
180
183
  './format_directory.js': {
181
- default: string;
182
184
  types: string;
185
+ default: string;
183
186
  };
184
187
  './format_file.js': {
185
- default: string;
186
188
  types: string;
189
+ default: string;
187
190
  };
188
191
  './format.task.js': {
189
- default: string;
190
192
  types: string;
193
+ default: string;
191
194
  };
192
195
  './fs.js': {
193
- default: string;
194
196
  types: string;
197
+ default: string;
195
198
  };
196
199
  './gen.task.js': {
197
- default: string;
198
200
  types: string;
201
+ default: string;
199
202
  };
200
203
  './gen.js': {
201
- default: string;
202
204
  types: string;
205
+ default: string;
203
206
  };
204
207
  './git.js': {
205
- default: string;
206
208
  types: string;
209
+ default: string;
207
210
  };
208
211
  './github.js': {
209
- default: string;
210
212
  types: string;
213
+ default: string;
211
214
  };
212
215
  './gro_helpers.js': {
213
- default: string;
214
216
  types: string;
217
+ default: string;
215
218
  };
216
219
  './gro_plugin_gen.js': {
217
- default: string;
218
220
  types: string;
221
+ default: string;
219
222
  };
220
223
  './gro_plugin_server.js': {
221
- default: string;
222
224
  types: string;
225
+ default: string;
223
226
  };
224
227
  './gro_plugin_sveltekit_app.js': {
225
- default: string;
226
228
  types: string;
229
+ default: string;
227
230
  };
228
231
  './gro_plugin_sveltekit_library.js': {
229
- default: string;
230
232
  types: string;
233
+ default: string;
231
234
  };
232
235
  './gro.config.default.js': {
233
- default: string;
234
236
  types: string;
237
+ default: string;
235
238
  };
236
239
  './gro.js': {
237
- default: string;
238
240
  types: string;
241
+ default: string;
239
242
  };
240
243
  './hash.js': {
241
- default: string;
242
244
  types: string;
245
+ default: string;
243
246
  };
244
247
  './input_path.js': {
245
- default: string;
246
248
  types: string;
249
+ default: string;
247
250
  };
248
251
  './invoke_task.js': {
249
- default: string;
250
252
  types: string;
253
+ default: string;
251
254
  };
252
255
  './invoke.js': {
253
- default: string;
254
256
  types: string;
257
+ default: string;
255
258
  };
256
259
  './lint.task.js': {
257
- default: string;
258
260
  types: string;
261
+ default: string;
259
262
  };
260
263
  './loader.js': {
261
- default: string;
262
264
  types: string;
265
+ default: string;
263
266
  };
264
267
  './module.js': {
265
- default: string;
266
268
  types: string;
269
+ default: string;
267
270
  };
268
271
  './modules.js': {
269
- default: string;
270
272
  types: string;
273
+ default: string;
271
274
  };
272
275
  './package_json.js': {
273
- default: string;
274
276
  types: string;
277
+ default: string;
275
278
  };
276
279
  './package_meta.js': {
277
- default: string;
278
280
  types: string;
281
+ default: string;
279
282
  };
280
283
  './package.gen.js': {
281
- default: string;
282
284
  types: string;
285
+ default: string;
283
286
  };
284
287
  './package.js': {
285
- default: string;
286
288
  types: string;
289
+ default: string;
287
290
  };
288
291
  './path_constants.js': {
289
- default: string;
290
292
  types: string;
293
+ default: string;
291
294
  };
292
295
  './path.js': {
293
- default: string;
294
296
  types: string;
297
+ default: string;
295
298
  };
296
299
  './paths.js': {
297
- default: string;
298
300
  types: string;
301
+ default: string;
299
302
  };
300
303
  './plugin.js': {
301
- default: string;
302
304
  types: string;
305
+ default: string;
303
306
  };
304
307
  './publish.task.js': {
305
- default: string;
306
308
  types: string;
309
+ default: string;
307
310
  };
308
311
  './register.js': {
309
- default: string;
310
312
  types: string;
313
+ default: string;
311
314
  };
312
315
  './reinstall.task.js': {
313
- default: string;
314
316
  types: string;
317
+ default: string;
315
318
  };
316
319
  './release.task.js': {
317
- default: string;
318
320
  types: string;
321
+ default: string;
319
322
  };
320
323
  './resolve_node_specifier.js': {
321
- default: string;
322
324
  types: string;
325
+ default: string;
323
326
  };
324
327
  './resolve_specifier.js': {
325
- default: string;
326
328
  types: string;
329
+ default: string;
327
330
  };
328
331
  './resolve.task.js': {
329
- default: string;
330
332
  types: string;
333
+ default: string;
331
334
  };
332
335
  './run_gen.js': {
333
- default: string;
334
336
  types: string;
337
+ default: string;
335
338
  };
336
339
  './run_task.js': {
337
- default: string;
338
340
  types: string;
341
+ default: string;
339
342
  };
340
343
  './run.task.js': {
341
- default: string;
342
344
  types: string;
345
+ default: string;
343
346
  };
344
347
  './search_fs.js': {
345
- default: string;
346
348
  types: string;
349
+ default: string;
347
350
  };
348
351
  './src_json.js': {
349
- default: string;
350
352
  types: string;
353
+ default: string;
351
354
  };
352
355
  './svelte_helpers.js': {
353
- default: string;
354
356
  types: string;
357
+ default: string;
355
358
  };
356
359
  './sveltekit_config_global.js': {
357
- default: string;
358
360
  types: string;
361
+ default: string;
359
362
  };
360
363
  './sveltekit_config.js': {
361
- default: string;
362
364
  types: string;
365
+ default: string;
363
366
  };
364
367
  './sveltekit_helpers.js': {
365
- default: string;
366
368
  types: string;
369
+ default: string;
367
370
  };
368
371
  './sveltekit_shim_app_environment.js': {
369
- default: string;
370
372
  types: string;
373
+ default: string;
371
374
  };
372
375
  './sveltekit_shim_app_forms.js': {
373
- default: string;
374
376
  types: string;
377
+ default: string;
375
378
  };
376
379
  './sveltekit_shim_app_navigation.js': {
377
- default: string;
378
380
  types: string;
381
+ default: string;
379
382
  };
380
383
  './sveltekit_shim_app_paths.js': {
381
- default: string;
382
384
  types: string;
385
+ default: string;
383
386
  };
384
387
  './sveltekit_shim_app_stores.js': {
385
- default: string;
386
388
  types: string;
389
+ default: string;
387
390
  };
388
391
  './sveltekit_shim_app.js': {
389
- default: string;
390
392
  types: string;
393
+ default: string;
391
394
  };
392
395
  './sveltekit_shim_env.js': {
393
- default: string;
394
396
  types: string;
397
+ default: string;
395
398
  };
396
399
  './sync.task.js': {
397
- default: string;
398
400
  types: string;
401
+ default: string;
399
402
  };
400
403
  './task_logging.js': {
401
- default: string;
402
404
  types: string;
405
+ default: string;
403
406
  };
404
407
  './task.js': {
405
- default: string;
406
408
  types: string;
409
+ default: string;
407
410
  };
408
411
  './test.task.js': {
409
- default: string;
410
412
  types: string;
413
+ default: string;
411
414
  };
412
415
  './throttle.js': {
413
- default: string;
414
416
  types: string;
417
+ default: string;
415
418
  };
416
419
  './typecheck.task.js': {
417
- default: string;
418
420
  types: string;
421
+ default: string;
419
422
  };
420
423
  './upgrade.task.js': {
421
- default: string;
422
424
  types: string;
425
+ default: string;
423
426
  };
424
427
  './watch_dir.js': {
425
- default: string;
426
428
  types: string;
429
+ default: string;
427
430
  };
428
431
  };
429
432
  };
@@ -463,6 +466,13 @@ export declare const src_json: {
463
466
  kind: string;
464
467
  }[];
465
468
  };
469
+ './changeset_helpers.js': {
470
+ path: string;
471
+ declarations: {
472
+ name: string;
473
+ kind: string;
474
+ }[];
475
+ };
466
476
  './changeset.task.js': {
467
477
  path: string;
468
478
  declarations: {