@ryanatkn/gro 0.156.0 → 0.157.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.
Files changed (46) hide show
  1. package/dist/constants.d.ts +6 -0
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +6 -0
  4. package/dist/esbuild_plugin_svelte.d.ts.map +1 -1
  5. package/dist/esbuild_plugin_svelte.js +1 -2
  6. package/dist/gro_plugin_sveltekit_app.js +1 -1
  7. package/dist/loader.d.ts.map +1 -1
  8. package/dist/loader.js +1 -2
  9. package/dist/package.d.ts +44 -13
  10. package/dist/package.d.ts.map +1 -1
  11. package/dist/package.gen.js +1 -1
  12. package/dist/package.js +43 -21
  13. package/dist/parse_exports.d.ts +20 -0
  14. package/dist/parse_exports.d.ts.map +1 -0
  15. package/dist/parse_exports.js +65 -0
  16. package/dist/parse_exports_context.d.ts +21 -0
  17. package/dist/parse_exports_context.d.ts.map +1 -0
  18. package/dist/parse_exports_context.js +332 -0
  19. package/dist/parse_imports.d.ts.map +1 -1
  20. package/dist/parse_imports.js +1 -2
  21. package/dist/paths.d.ts +8 -0
  22. package/dist/paths.d.ts.map +1 -1
  23. package/dist/paths.js +6 -3
  24. package/dist/src_json.d.ts +68 -66
  25. package/dist/src_json.d.ts.map +1 -1
  26. package/dist/src_json.js +58 -55
  27. package/dist/test_helpers.d.ts +21 -0
  28. package/dist/test_helpers.d.ts.map +1 -0
  29. package/dist/test_helpers.js +122 -0
  30. package/package.json +20 -12
  31. package/src/lib/constants.ts +6 -0
  32. package/src/lib/esbuild_plugin_svelte.ts +1 -2
  33. package/src/lib/gro_plugin_sveltekit_app.ts +1 -1
  34. package/src/lib/loader.ts +6 -2
  35. package/src/lib/package.gen.ts +1 -1
  36. package/src/lib/package.ts +43 -21
  37. package/src/lib/parse_exports.ts +108 -0
  38. package/src/lib/parse_exports_context.ts +394 -0
  39. package/src/lib/parse_imports.ts +1 -2
  40. package/src/lib/paths.ts +13 -3
  41. package/src/lib/src_json.ts +80 -68
  42. package/src/lib/test_helpers.ts +159 -0
  43. package/dist/svelte_helpers.d.ts +0 -3
  44. package/dist/svelte_helpers.d.ts.map +0 -1
  45. package/dist/svelte_helpers.js +0 -2
  46. package/src/lib/svelte_helpers.ts +0 -2
@@ -3,8 +3,11 @@ export declare const GRO_DIRNAME = ".gro";
3
3
  export declare const GRO_DIST_PREFIX = "dist_";
4
4
  export declare const SERVER_DIST_PATH = "dist_server";
5
5
  export declare const GRO_DEV_DIRNAME: string;
6
+ /** @trailing_slash */
6
7
  export declare const SOURCE_DIR: string;
8
+ /** @trailing_slash */
7
9
  export declare const GRO_DIR: string;
10
+ /** @trailing_slash */
8
11
  export declare const GRO_DEV_DIR: string;
9
12
  export declare const GRO_CONFIG_PATH = "gro.config.ts";
10
13
  export declare const README_FILENAME = "README.md";
@@ -21,6 +24,9 @@ export declare const GIT_DIRNAME = ".git";
21
24
  export declare const TSCONFIG_FILENAME = "tsconfig.json";
22
25
  export declare const TS_MATCHER: RegExp;
23
26
  export declare const JS_MATCHER: RegExp;
27
+ export declare const JSON_MATCHER: RegExp;
28
+ export declare const SVELTE_MATCHER: RegExp;
29
+ export declare const SVELTE_RUNES_MATCHER: RegExp;
24
30
  /** Extracts the script content from Svelte files. */
25
31
  export declare const SVELTE_SCRIPT_MATCHER: RegExp;
26
32
  export declare const EVERYTHING_MATCHER: RegExp;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,eAAe,QAAuB,CAAC;AACpD,eAAO,MAAM,UAAU,QAAuB,CAAC;AAC/C,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,eAAO,MAAM,WAAW,QAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAkC,CAAC;AACzE,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,eAAe,QAAuB,CAAC;AACpD,sBAAsB;AACtB,eAAO,MAAM,UAAU,QAAuB,CAAC;AAC/C,sBAAsB;AACtB,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,sBAAsB;AACtB,eAAO,MAAM,WAAW,QAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAC/C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AACnD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAkC,CAAC;AACzE,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,UAAU,QAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAuB,CAAC;AACzD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC"}
package/dist/constants.js CHANGED
@@ -10,8 +10,11 @@ export const GRO_DIRNAME = '.gro';
10
10
  export const GRO_DIST_PREFIX = 'dist_'; //
11
11
  export const SERVER_DIST_PATH = 'dist_server'; // TODO should all of these be `_PATH` or should this be `DIRNAME`? also, add `_PLUGIN` to this name?
12
12
  export const GRO_DEV_DIRNAME = GRO_DIRNAME + '/dev';
13
+ /** @trailing_slash */
13
14
  export const SOURCE_DIR = SOURCE_DIRNAME + '/';
15
+ /** @trailing_slash */
14
16
  export const GRO_DIR = GRO_DIRNAME + '/';
17
+ /** @trailing_slash */
15
18
  export const GRO_DEV_DIR = GRO_DEV_DIRNAME + '/';
16
19
  export const GRO_CONFIG_PATH = 'gro.config.ts';
17
20
  export const README_FILENAME = 'README.md';
@@ -28,6 +31,9 @@ export const GIT_DIRNAME = '.git';
28
31
  export const TSCONFIG_FILENAME = 'tsconfig.json';
29
32
  export const TS_MATCHER = /\.(ts|tsx|mts|cts)$/;
30
33
  export const JS_MATCHER = /\.(js|jsx|mjs|cjs)$/;
34
+ export const JSON_MATCHER = /\.json$/;
35
+ export const SVELTE_MATCHER = /\.svelte$/;
36
+ export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
31
37
  /** Extracts the script content from Svelte files. */
32
38
  export const SVELTE_SCRIPT_MATCHER = /<script(?:\s+[^>]*)?>([\s\S]*?)<\/script>/gim; // TODO maybe this shouldnt be global? or make a getter?
33
39
  export const EVERYTHING_MATCHER = /.*/;
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild_plugin_svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/esbuild_plugin_svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,6BAA6B,CAAC,EAAE,oBAAoB,CAAC;IACrD,oBAAoB,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,6BAA6B,KAAG,OAAO,CAAC,MAmEtF,CAAC"}
1
+ {"version":3,"file":"esbuild_plugin_svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/esbuild_plugin_svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAGN,KAAK,oBAAoB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,6BAA6B,CAAC,EAAE,oBAAoB,CAAC;IACrD,oBAAoB,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,6BAA6B,KAAG,OAAO,CAAC,MAmEtF,CAAC"}
@@ -2,10 +2,9 @@ import * as esbuild from 'esbuild';
2
2
  import { compile, compileModule, preprocess, } from 'svelte/compiler';
3
3
  import { readFile } from 'node:fs/promises';
4
4
  import { relative } from 'node:path';
5
- import { SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./svelte_helpers.js";
6
5
  import { to_define_import_meta_env, default_ts_transform_options } from "./esbuild_helpers.js";
7
6
  import { default_svelte_config, to_default_compile_module_options, } from "./svelte_config.js";
8
- import { TS_MATCHER } from "./constants.js";
7
+ import { TS_MATCHER, SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./constants.js";
9
8
  export const esbuild_plugin_svelte = (options) => {
10
9
  const { dev, base_url, dir = process.cwd(), svelte_compile_options = default_svelte_config.svelte_compile_options, svelte_compile_module_options = to_default_compile_module_options(svelte_compile_options), svelte_preprocessors, ts_transform_options = default_ts_transform_options, is_ts = (f) => TS_MATCHER.test(f), } = options;
11
10
  const final_ts_transform_options = {
@@ -43,7 +43,7 @@ export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_kn
43
43
  const serialized_package_json = mapped_package_json && serialize_package_json(mapped_package_json);
44
44
  // `.well-known/src.json` and `.well-known/src/`
45
45
  const final_package_json = mapped_package_json ?? package_json;
46
- const src_json = create_src_json(final_package_json);
46
+ const src_json = create_src_json(final_package_json, undefined);
47
47
  if (well_known_src_json === undefined) {
48
48
  well_known_src_json = final_package_json.public; // eslint-disable-line no-param-reassign
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AAuEvD,eAAO,MAAM,IAAI,EAAE,QA0GlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAqDrB,CAAC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AA2EvD,eAAO,MAAM,IAAI,EAAE,QA0GlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAqDrB,CAAC"}
package/dist/loader.js CHANGED
@@ -7,9 +7,8 @@ import ts_blank_space from 'ts-blank-space';
7
7
  import { render_env_shim_module } from "./sveltekit_shim_env.js";
8
8
  import { render_sveltekit_shim_app_environment, render_sveltekit_shim_app_paths, SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER, SVELTEKIT_SHIM_APP_PATHS_MATCHER, sveltekit_shim_app_specifiers, } from "./sveltekit_shim_app.js";
9
9
  import { default_svelte_config } from "./svelte_config.js";
10
- import { SVELTE_MATCHER, SVELTE_RUNES_MATCHER } from "./svelte_helpers.js";
11
10
  import { IS_THIS_GRO, paths } from "./paths.js";
12
- import { NODE_MODULES_DIRNAME, TS_MATCHER } from "./constants.js";
11
+ import { NODE_MODULES_DIRNAME, TS_MATCHER, SVELTE_MATCHER, SVELTE_RUNES_MATCHER, } from "./constants.js";
13
12
  import { resolve_specifier } from "./resolve_specifier.js";
14
13
  import { map_sveltekit_aliases } from "./sveltekit_helpers.js";
15
14
  // TODO get out of the loader business, starting with https://nodejs.org/api/typescript.html#type-stripping
package/dist/package.d.ts CHANGED
@@ -48,13 +48,13 @@ export declare const package_json: {
48
48
  prettier: string;
49
49
  'prettier-plugin-svelte': string;
50
50
  'ts-blank-space': string;
51
- 'ts-morph': string;
52
51
  tslib: string;
53
52
  zod: string;
54
53
  };
55
54
  peerDependencies: {
56
55
  esbuild: string;
57
56
  svelte: string;
57
+ typescript: string;
58
58
  };
59
59
  devDependencies: {
60
60
  '@changesets/changelog-git': string;
@@ -304,6 +304,14 @@ export declare const package_json: {
304
304
  types: string;
305
305
  default: string;
306
306
  };
307
+ './parse_exports_context.js': {
308
+ types: string;
309
+ default: string;
310
+ };
311
+ './parse_exports.js': {
312
+ types: string;
313
+ default: string;
314
+ };
307
315
  './parse_imports.js': {
308
316
  types: string;
309
317
  default: string;
@@ -368,10 +376,6 @@ export declare const package_json: {
368
376
  types: string;
369
377
  default: string;
370
378
  };
371
- './svelte_helpers.js': {
372
- types: string;
373
- default: string;
374
- };
375
379
  './sveltekit_helpers.js': {
376
380
  types: string;
377
381
  default: string;
@@ -416,6 +420,10 @@ export declare const package_json: {
416
420
  types: string;
417
421
  default: string;
418
422
  };
423
+ './test_helpers.js': {
424
+ types: string;
425
+ default: string;
426
+ };
419
427
  './test.task.js': {
420
428
  types: string;
421
429
  default: string;
@@ -453,7 +461,10 @@ export declare const src_json: {
453
461
  };
454
462
  './package.json': {
455
463
  path: string;
456
- declarations: never[];
464
+ declarations: {
465
+ name: string;
466
+ kind: "json";
467
+ }[];
457
468
  };
458
469
  './args.js': {
459
470
  path: string;
@@ -893,6 +904,23 @@ export declare const src_json: {
893
904
  kind: "variable";
894
905
  }[];
895
906
  };
907
+ './parse_exports_context.js': {
908
+ path: string;
909
+ declarations: {
910
+ name: string;
911
+ kind: "class";
912
+ }[];
913
+ };
914
+ './parse_exports.js': {
915
+ path: string;
916
+ declarations: ({
917
+ name: string;
918
+ kind: "type";
919
+ } | {
920
+ name: string;
921
+ kind: "function";
922
+ })[];
923
+ };
896
924
  './parse_imports.js': {
897
925
  path: string;
898
926
  declarations: ({
@@ -1044,13 +1072,6 @@ export declare const src_json: {
1044
1072
  kind: "variable";
1045
1073
  })[];
1046
1074
  };
1047
- './svelte_helpers.js': {
1048
- path: string;
1049
- declarations: {
1050
- name: string;
1051
- kind: "variable";
1052
- }[];
1053
- };
1054
1075
  './sveltekit_helpers.js': {
1055
1076
  path: string;
1056
1077
  declarations: ({
@@ -1149,6 +1170,16 @@ export declare const src_json: {
1149
1170
  kind: "class";
1150
1171
  })[];
1151
1172
  };
1173
+ './test_helpers.js': {
1174
+ path: string;
1175
+ declarations: ({
1176
+ name: string;
1177
+ kind: "variable";
1178
+ } | {
1179
+ name: string;
1180
+ kind: "function";
1181
+ })[];
1182
+ };
1152
1183
  './test.task.js': {
1153
1184
  path: string;
1154
1185
  declarations: {
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiQD,CAAC;AAEzB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAswBD,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkQD,CAAC;AAEzB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2xBD,CAAC"}
@@ -10,7 +10,7 @@ import { create_src_json } from "./src_json.js";
10
10
  */
11
11
  export const gen = ({ origin_path }) => {
12
12
  const package_json = load_package_json();
13
- const src_json = create_src_json(package_json);
13
+ const src_json = create_src_json(package_json, undefined);
14
14
  return `
15
15
  // generated by ${origin_path}
16
16
 
package/dist/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // generated by src/lib/package.gen.ts
2
2
  export const package_json = {
3
3
  name: '@ryanatkn/gro',
4
- version: '0.156.0',
4
+ version: '0.157.0',
5
5
  description: 'task runner and toolkit extending SvelteKit',
6
6
  motto: 'generate, run, optimize',
7
7
  glyph: '🌰',
@@ -44,15 +44,14 @@ export const package_json = {
44
44
  dotenv: '^16.5.0',
45
45
  'esm-env': '^1.2.2',
46
46
  mri: '^1.2.0',
47
- 'oxc-parser': '^0.67.0',
47
+ 'oxc-parser': '^0.68.1',
48
48
  prettier: '^3.5.3',
49
49
  'prettier-plugin-svelte': '^3.3.3',
50
50
  'ts-blank-space': '^0.6.1',
51
- 'ts-morph': '^25.0.1',
52
51
  tslib: '^2.8.1',
53
- zod: '^3.24.3',
52
+ zod: '^3.24.4',
54
53
  },
55
- peerDependencies: { esbuild: '^0.25', svelte: '^5' },
54
+ peerDependencies: { esbuild: '^0.25', svelte: '^5', typescript: '^5' },
56
55
  devDependencies: {
57
56
  '@changesets/changelog-git': '^0.2.1',
58
57
  '@changesets/types': '^6.1.0',
@@ -65,12 +64,12 @@ export const package_json = {
65
64
  '@sveltejs/vite-plugin-svelte': '^5.0.3',
66
65
  '@types/node': '^22.15.3',
67
66
  esbuild: '^0.25.3',
68
- eslint: '^9.25.1',
67
+ eslint: '9.25.1',
69
68
  'eslint-plugin-svelte': '^3.5.1',
70
69
  svelte: '^5.28.2',
71
- 'svelte-check': '^4.1.6',
70
+ 'svelte-check': '^4.1.7',
72
71
  typescript: '^5.8.3',
73
- 'typescript-eslint': '^8.31.1',
72
+ 'typescript-eslint': '^8.32.0',
74
73
  uvu: '^0.5.6',
75
74
  },
76
75
  optionalDependencies: { '@ryanatkn/moss': '>=0.27.0 <0.29.0' },
@@ -186,6 +185,11 @@ export const package_json = {
186
185
  './package_meta.js': { types: './dist/package_meta.d.ts', default: './dist/package_meta.js' },
187
186
  './package.gen.js': { types: './dist/package.gen.d.ts', default: './dist/package.gen.js' },
188
187
  './package.js': { types: './dist/package.d.ts', default: './dist/package.js' },
188
+ './parse_exports_context.js': {
189
+ types: './dist/parse_exports_context.d.ts',
190
+ default: './dist/parse_exports_context.js',
191
+ },
192
+ './parse_exports.js': { types: './dist/parse_exports.d.ts', default: './dist/parse_exports.js' },
189
193
  './parse_imports.js': { types: './dist/parse_imports.d.ts', default: './dist/parse_imports.js' },
190
194
  './path.js': { types: './dist/path.d.ts', default: './dist/path.js' },
191
195
  './paths.js': { types: './dist/paths.d.ts', default: './dist/paths.js' },
@@ -208,10 +212,6 @@ export const package_json = {
208
212
  './search_fs.js': { types: './dist/search_fs.d.ts', default: './dist/search_fs.js' },
209
213
  './src_json.js': { types: './dist/src_json.d.ts', default: './dist/src_json.js' },
210
214
  './svelte_config.js': { types: './dist/svelte_config.d.ts', default: './dist/svelte_config.js' },
211
- './svelte_helpers.js': {
212
- types: './dist/svelte_helpers.d.ts',
213
- default: './dist/svelte_helpers.js',
214
- },
215
215
  './sveltekit_helpers.js': {
216
216
  types: './dist/sveltekit_helpers.d.ts',
217
217
  default: './dist/sveltekit_helpers.js',
@@ -247,6 +247,7 @@ export const package_json = {
247
247
  './sync.task.js': { types: './dist/sync.task.d.ts', default: './dist/sync.task.js' },
248
248
  './task_logging.js': { types: './dist/task_logging.d.ts', default: './dist/task_logging.js' },
249
249
  './task.js': { types: './dist/task.d.ts', default: './dist/task.js' },
250
+ './test_helpers.js': { types: './dist/test_helpers.d.ts', default: './dist/test_helpers.js' },
250
251
  './test.task.js': { types: './dist/test.task.d.ts', default: './dist/test.task.js' },
251
252
  './typecheck.task.js': {
252
253
  types: './dist/typecheck.task.d.ts',
@@ -258,7 +259,7 @@ export const package_json = {
258
259
  };
259
260
  export const src_json = {
260
261
  name: '@ryanatkn/gro',
261
- version: '0.156.0',
262
+ version: '0.157.0',
262
263
  modules: {
263
264
  '.': {
264
265
  path: 'index.ts',
@@ -275,7 +276,7 @@ export const src_json = {
275
276
  { name: 'Task_Error', kind: 'class' },
276
277
  ],
277
278
  },
278
- './package.json': { path: 'package.json', declarations: [] },
279
+ './package.json': { path: 'package.json', declarations: [{ name: 'default', kind: 'json' }] },
279
280
  './args.js': {
280
281
  path: 'args.ts',
281
282
  declarations: [
@@ -386,6 +387,9 @@ export const src_json = {
386
387
  { name: 'TSCONFIG_FILENAME', kind: 'variable' },
387
388
  { name: 'TS_MATCHER', kind: 'variable' },
388
389
  { name: 'JS_MATCHER', kind: 'variable' },
390
+ { name: 'JSON_MATCHER', kind: 'variable' },
391
+ { name: 'SVELTE_MATCHER', kind: 'variable' },
392
+ { name: 'SVELTE_RUNES_MATCHER', kind: 'variable' },
389
393
  { name: 'SVELTE_SCRIPT_MATCHER', kind: 'variable' },
390
394
  { name: 'EVERYTHING_MATCHER', kind: 'variable' },
391
395
  { name: 'JS_CLI_DEFAULT', kind: 'variable' },
@@ -730,6 +734,21 @@ export const src_json = {
730
734
  { name: 'src_json', kind: 'variable' },
731
735
  ],
732
736
  },
737
+ './parse_exports_context.js': {
738
+ path: 'parse_exports_context.ts',
739
+ declarations: [{ name: 'Parse_Exports_Context', kind: 'class' }],
740
+ },
741
+ './parse_exports.js': {
742
+ path: 'parse_exports.ts',
743
+ declarations: [
744
+ { name: 'Declaration_Kind', kind: 'type' },
745
+ { name: 'Declaration', kind: 'type' },
746
+ { name: 'Export_Declaration', kind: 'type' },
747
+ { name: 'parse_exports', kind: 'function' },
748
+ { name: 'infer_declarations_from_file_type', kind: 'function' },
749
+ { name: 'process_ts_exports', kind: 'function' },
750
+ ],
751
+ },
733
752
  './parse_imports.js': {
734
753
  path: 'parse_imports.ts',
735
754
  declarations: [
@@ -849,6 +868,7 @@ export const src_json = {
849
868
  './src_json.js': {
850
869
  path: 'src_json.ts',
851
870
  declarations: [
871
+ { name: 'Src_Module_Declaration_Kind', kind: 'variable' },
852
872
  { name: 'Src_Module_Declaration', kind: 'variable' },
853
873
  { name: 'Src_Module', kind: 'variable' },
854
874
  { name: 'Src_Modules', kind: 'variable' },
@@ -869,13 +889,6 @@ export const src_json = {
869
889
  { name: 'default_svelte_config', kind: 'variable' },
870
890
  ],
871
891
  },
872
- './svelte_helpers.js': {
873
- path: 'svelte_helpers.ts',
874
- declarations: [
875
- { name: 'SVELTE_MATCHER', kind: 'variable' },
876
- { name: 'SVELTE_RUNES_MATCHER', kind: 'variable' },
877
- ],
878
- },
879
892
  './sveltekit_helpers.js': {
880
893
  path: 'sveltekit_helpers.ts',
881
894
  declarations: [
@@ -997,6 +1010,15 @@ export const src_json = {
997
1010
  { name: 'validate_task_module', kind: 'function' },
998
1011
  ],
999
1012
  },
1013
+ './test_helpers.js': {
1014
+ path: 'test_helpers.ts',
1015
+ declarations: [
1016
+ { name: 'SOME_PUBLIC_ENV_VAR_NAME', kind: 'variable' },
1017
+ { name: 'SOME_PUBLIC_ENV_VAR_VALUE', kind: 'variable' },
1018
+ { name: 'init_test_env', kind: 'function' },
1019
+ { name: 'create_ts_test_env', kind: 'function' },
1020
+ ],
1021
+ },
1000
1022
  './test.task.js': {
1001
1023
  path: 'test.task.ts',
1002
1024
  declarations: [
@@ -0,0 +1,20 @@
1
+ import ts from 'typescript';
2
+ import type { Flavored } from '@ryanatkn/belt/types.js';
3
+ import type { Path_Id } from './path.ts';
4
+ import type { Logger } from '@ryanatkn/belt/log.js';
5
+ export type Declaration_Kind = 'type' | 'function' | 'variable' | 'class' | 'component' | 'json' | 'css';
6
+ export interface Declaration {
7
+ name: string;
8
+ kind: Declaration_Kind | null;
9
+ }
10
+ export type Export_Declaration = Flavored<Declaration, 'Export_Declaration'>;
11
+ /**
12
+ * Parse exports from a file based on its file type and content.
13
+ */
14
+ export declare const parse_exports: (id: Path_Id, program?: ts.Program, declarations?: Array<Export_Declaration>, log?: Logger) => Array<Export_Declaration>;
15
+ export declare const infer_declarations_from_file_type: (file_path: Path_Id, declarations?: Array<Export_Declaration>) => Array<Export_Declaration>;
16
+ /**
17
+ * Process TypeScript exports, identifying their kinds.
18
+ */
19
+ export declare const process_ts_exports: (source_file: ts.SourceFile, program: ts.Program, exports: Array<ts.Symbol>, declarations?: Array<Export_Declaration>, log?: Logger) => Array<Export_Declaration>;
20
+ //# sourceMappingURL=parse_exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_exports.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/parse_exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGvC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,gBAAgB,GACzB,MAAM,GACN,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,CAAC;AAET,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,aAAa,GACzB,IAAI,OAAO,EACX,UAAU,EAAE,CAAC,OAAO,EACpB,eAAc,KAAK,CAAC,kBAAkB,CAAM,EAC5C,MAAM,MAAM,KACV,KAAK,CAAC,kBAAkB,CAyB1B,CAAC;AAGF,eAAO,MAAM,iCAAiC,GAC7C,WAAW,OAAO,EAClB,eAAc,KAAK,CAAC,kBAAkB,CAAM,KAC1C,KAAK,CAAC,kBAAkB,CA4B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,aAAa,EAAE,CAAC,UAAU,EAC1B,SAAS,EAAE,CAAC,OAAO,EACnB,SAAS,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EACzB,eAAc,KAAK,CAAC,kBAAkB,CAAM,EAC5C,MAAM,MAAM,KACV,KAAK,CAAC,kBAAkB,CAI1B,CAAC"}
@@ -0,0 +1,65 @@
1
+ import ts from 'typescript';
2
+ import { extname } from 'node:path';
3
+ import { TS_MATCHER } from "./constants.js";
4
+ import { Parse_Exports_Context } from "./parse_exports_context.js";
5
+ /**
6
+ * Parse exports from a file based on its file type and content.
7
+ */
8
+ export const parse_exports = (id, program, declarations = [], log) => {
9
+ // First, infer declarations based on file extension
10
+ infer_declarations_from_file_type(id, declarations);
11
+ // For TypeScript files with program, perform detailed export analysis
12
+ if (TS_MATCHER.test(id) && program) {
13
+ const source_file = program.getSourceFile(id);
14
+ if (!source_file)
15
+ return declarations;
16
+ const checker = program.getTypeChecker();
17
+ // Get the exports of the source file (module)
18
+ const symbol = checker.getSymbolAtLocation(source_file);
19
+ if (!symbol)
20
+ return declarations;
21
+ // Get the module exports
22
+ const exports = checker.getExportsOfModule(symbol);
23
+ // Process TypeScript declarations
24
+ const export_context = new Parse_Exports_Context(program, log);
25
+ export_context.analyze_source_file(source_file);
26
+ export_context.process_exports(source_file, exports, declarations);
27
+ }
28
+ return declarations;
29
+ };
30
+ // TODO temporary until proper type inference
31
+ export const infer_declarations_from_file_type = (file_path, declarations = []) => {
32
+ const extension = extname(file_path).toLowerCase();
33
+ switch (extension) {
34
+ case '.svelte': {
35
+ declarations.push({
36
+ name: 'default',
37
+ kind: 'component',
38
+ });
39
+ break;
40
+ }
41
+ case '.css': {
42
+ declarations.push({
43
+ name: 'default',
44
+ kind: 'css',
45
+ });
46
+ break;
47
+ }
48
+ case '.json': {
49
+ declarations.push({
50
+ name: 'default',
51
+ kind: 'json',
52
+ });
53
+ break;
54
+ }
55
+ }
56
+ return declarations;
57
+ };
58
+ /**
59
+ * Process TypeScript exports, identifying their kinds.
60
+ */
61
+ export const process_ts_exports = (source_file, program, exports, declarations = [], log) => {
62
+ const export_context = new Parse_Exports_Context(program, log);
63
+ export_context.analyze_source_file(source_file);
64
+ return export_context.process_exports(source_file, exports, declarations);
65
+ };
@@ -0,0 +1,21 @@
1
+ import ts from 'typescript';
2
+ import type { Logger } from '@ryanatkn/belt/log.js';
3
+ import type { Export_Declaration } from './parse_exports.ts';
4
+ /**
5
+ * A class to track export context and determine export kinds.
6
+ */
7
+ export declare class Parse_Exports_Context {
8
+ #private;
9
+ readonly log: Logger | undefined;
10
+ debug: boolean;
11
+ constructor(program: ts.Program, log?: Logger);
12
+ /**
13
+ * Analyze a source file to prepare for export processing.
14
+ */
15
+ analyze_source_file(source_file: ts.SourceFile): void;
16
+ /**
17
+ * Process a list of exported symbols and identify their kinds.
18
+ */
19
+ process_exports(source_file: ts.SourceFile, exports: Array<ts.Symbol>, declarations?: Array<Export_Declaration>): Array<Export_Declaration>;
20
+ }
21
+ //# sourceMappingURL=parse_exports_context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_exports_context.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/parse_exports_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAmB,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE7E;;GAEG;AACH,qBAAa,qBAAqB;;IAQjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,UAAwC;gBAEjC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM;IAc7C;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI;IAerD;;OAEG;IACH,eAAe,CACd,WAAW,EAAE,EAAE,CAAC,UAAU,EAC1B,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EACzB,YAAY,GAAE,KAAK,CAAC,kBAAkB,CAAM,GAC1C,KAAK,CAAC,kBAAkB,CAAC;CA+U5B"}