@ryanatkn/gro 0.164.1 → 0.165.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.
@@ -28,6 +28,7 @@ export declare const JS_MATCHER: RegExp;
28
28
  export declare const JSON_MATCHER: RegExp;
29
29
  export declare const SVELTE_MATCHER: RegExp;
30
30
  export declare const SVELTE_RUNES_MATCHER: RegExp;
31
+ export declare const CSS_MATCHER: RegExp;
31
32
  /** Extracts the script content from Svelte files. */
32
33
  export declare const SVELTE_SCRIPT_MATCHER: RegExp;
33
34
  export declare const SVELTEKIT_ENV_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,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,mBAAmB,kBAAkB,CAAC;AACnD,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,qBAAqB,iBAAiB,CAAC;AACpD,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,QAAoB,CAAC;AAC5C,eAAO,MAAM,UAAU,QAAoB,CAAC;AAC5C,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,qBAAqB,QAAgD,CAAC;AACnF,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAC3D,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,UAAU,WAAW,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,mBAAmB,kBAAkB,CAAC;AACnD,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,qBAAqB,iBAAiB,CAAC;AACpD,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,QAAoB,CAAC;AAC5C,eAAO,MAAM,UAAU,QAAoB,CAAC;AAC5C,eAAO,MAAM,YAAY,QAAY,CAAC;AACtC,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAuB,CAAC;AACzD,eAAO,MAAM,WAAW,QAAW,CAAC;AACpC,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,QAAiD,CAAC;AACpF,eAAO,MAAM,qBAAqB,QAAgD,CAAC;AACnF,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAC3D,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAEvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,UAAU,WAAW,CAAC"}
package/dist/constants.js CHANGED
@@ -35,6 +35,7 @@ export const JS_MATCHER = /\.(js|mjs|cjs)$/;
35
35
  export const JSON_MATCHER = /\.json$/;
36
36
  export const SVELTE_MATCHER = /\.svelte$/;
37
37
  export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
38
+ export const CSS_MATCHER = /\.css$/;
38
39
  /** Extracts the script content from Svelte files. */
39
40
  export const SVELTE_SCRIPT_MATCHER = /<script(?:\s+[^>]*)?>([\s\S]*?)<\/script>/gim; // TODO maybe this shouldnt be global? or make a getter?
40
41
  export const SVELTEKIT_ENV_MATCHER = /^\$env\/(static|dynamic)\/(public|private)$/;
@@ -1 +1 @@
1
- {"version":3,"file":"gro_config.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gro_config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;IACjD;;OAEG;IACH,OAAO,EAAE,qBAAqB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC/B,WAAW,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,oBAAoB,KAChC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAE9C,eAAO,MAAM,uBAAuB,QAAO,UAYzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAUnC,CAAC;AAWF,eAAO,MAAM,wBAAwB,QAAwD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,cAAc,KAAG,UA0B5D,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAAC;CACrD;AAED,eAAO,MAAM,eAAe,GAAU,YAAgB,KAAG,OAAO,CAAC,UAAU,CAmB1E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,CACxC,aAAa,EAAE,GAAG,EAClB,WAAW,EAAE,MAAM,KACf,OAAO,CAAC,aAAa,IAAI,iBAS7B,CAAC"}
1
+ {"version":3,"file":"gro_config.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gro_config.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;IACjD;;OAEG;IACH,OAAO,EAAE,qBAAqB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC/B,WAAW,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,oBAAoB,KAChC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAE9C,eAAO,MAAM,uBAAuB,QAAO,UAYzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAUnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAwD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,cAAc,KAAG,UA0B5D,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAAC;CACrD;AAED,eAAO,MAAM,eAAe,GAAU,YAAgB,KAAG,OAAO,CAAC,UAAU,CAmB1E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,CACxC,aAAa,EAAE,GAAG,EAClB,WAAW,EAAE,MAAM,KACf,OAAO,CAAC,aAAa,IAAI,iBAS7B,CAAC"}
@@ -8,12 +8,13 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
8
8
  };
9
9
  import { join, resolve } from 'node:path';
10
10
  import { existsSync } from 'node:fs';
11
+ import { identity } from '@ryanatkn/belt/function.js';
11
12
  import { GRO_DIST_DIR, IS_THIS_GRO, paths } from "./paths.js";
12
13
  import { GRO_CONFIG_FILENAME, JS_CLI_DEFAULT, NODE_MODULES_DIRNAME, PM_CLI_DEFAULT, SERVER_DIST_PATH, SVELTEKIT_BUILD_DIRNAME, SVELTEKIT_DIST_DIRNAME, } from "./constants.js";
13
14
  import create_default_config from "./gro.config.default.js";
14
15
  export const create_empty_gro_config = () => ({
15
16
  plugins: () => [],
16
- map_package_json: default_map_package_json,
17
+ map_package_json: identity,
17
18
  task_root_dirs: [
18
19
  // TODO maybe disable if no SvelteKit `lib` directory? or other detection to improve defaults
19
20
  paths.lib,
@@ -37,12 +38,6 @@ export const SEARCH_EXCLUDER_DEFAULT = new RegExp(`(${'(^|/)\\.[^/]+' + // exclu
37
38
  `|(^|/)(?<!(^|/)gro/)${SVELTEKIT_DIST_DIRNAME}` + // exclude the SvelteKit dist directory unless it's in the Gro directory
38
39
  `|(^|/)${SERVER_DIST_PATH}` // exclude the Gro server plugin dist directory
39
40
  })($|/)`, 'u');
40
- const default_map_package_json = (package_json) => {
41
- if (package_json.exports) {
42
- package_json.exports = Object.fromEntries(Object.entries(package_json.exports).filter(([k]) => !EXPORTS_EXCLUDER_DEFAULT.test(k)));
43
- }
44
- return package_json;
45
- };
46
41
  export const EXPORTS_EXCLUDER_DEFAULT = /(\.md|\.(test|ignore)\.|\/(test|fixtures|ignore)\/)/;
47
42
  /**
48
43
  * Transforms a `Raw_Gro_Config` to the more strict `Gro_Config`.
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,YAyQnB,CAAC;AAET,eAAO,MAAM,QAAQ,EAAE,QAuwBf,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,YAiGnB,CAAC;AAET,eAAO,MAAM,QAAQ,EAAE,QAsxBf,CAAC"}
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.164.1',
4
+ version: '0.165.0',
5
5
  description: 'task runner and toolkit extending SvelteKit',
6
6
  motto: 'generate, run, optimize',
7
7
  glyph: '🌰',
@@ -91,182 +91,14 @@ export const package_json = {
91
91
  sideEffects: ['**/*.css'],
92
92
  files: ['dist', 'src/lib/**/*.ts', '!src/lib/**/*.test.*', '!dist/**/*.test.*'],
93
93
  exports: {
94
- '.': { types: './dist/index.d.ts', default: './dist/index.js' },
95
94
  './package.json': './package.json',
96
- './args.js': { types: './dist/args.d.ts', default: './dist/args.js' },
97
- './build.task.js': { types: './dist/build.task.d.ts', default: './dist/build.task.js' },
98
- './changelog.js': { types: './dist/changelog.d.ts', default: './dist/changelog.js' },
99
- './changeset_helpers.js': {
100
- types: './dist/changeset_helpers.d.ts',
101
- default: './dist/changeset_helpers.js',
102
- },
103
- './changeset.task.js': {
104
- types: './dist/changeset.task.d.ts',
105
- default: './dist/changeset.task.js',
106
- },
107
- './check.task.js': { types: './dist/check.task.d.ts', default: './dist/check.task.js' },
108
- './child_process_logging.js': {
109
- types: './dist/child_process_logging.d.ts',
110
- default: './dist/child_process_logging.js',
111
- },
112
- './clean_fs.js': { types: './dist/clean_fs.d.ts', default: './dist/clean_fs.js' },
113
- './clean.task.js': { types: './dist/clean.task.d.ts', default: './dist/clean.task.js' },
114
- './cli.js': { types: './dist/cli.d.ts', default: './dist/cli.js' },
115
- './commit.task.js': { types: './dist/commit.task.d.ts', default: './dist/commit.task.js' },
116
- './constants.js': { types: './dist/constants.d.ts', default: './dist/constants.js' },
117
- './deploy.task.js': { types: './dist/deploy.task.d.ts', default: './dist/deploy.task.js' },
118
- './dev.task.js': { types: './dist/dev.task.d.ts', default: './dist/dev.task.js' },
119
- './disknode.js': { types: './dist/disknode.d.ts', default: './dist/disknode.js' },
120
- './env.js': { types: './dist/env.d.ts', default: './dist/env.js' },
121
- './esbuild_helpers.js': {
122
- types: './dist/esbuild_helpers.d.ts',
123
- default: './dist/esbuild_helpers.js',
124
- },
125
- './esbuild_plugin_external_worker.js': {
126
- types: './dist/esbuild_plugin_external_worker.d.ts',
127
- default: './dist/esbuild_plugin_external_worker.js',
128
- },
129
- './esbuild_plugin_svelte.js': {
130
- types: './dist/esbuild_plugin_svelte.d.ts',
131
- default: './dist/esbuild_plugin_svelte.js',
132
- },
133
- './esbuild_plugin_sveltekit_local_imports.js': {
134
- types: './dist/esbuild_plugin_sveltekit_local_imports.d.ts',
135
- default: './dist/esbuild_plugin_sveltekit_local_imports.js',
136
- },
137
- './esbuild_plugin_sveltekit_shim_alias.js': {
138
- types: './dist/esbuild_plugin_sveltekit_shim_alias.d.ts',
139
- default: './dist/esbuild_plugin_sveltekit_shim_alias.js',
140
- },
141
- './esbuild_plugin_sveltekit_shim_app.js': {
142
- types: './dist/esbuild_plugin_sveltekit_shim_app.d.ts',
143
- default: './dist/esbuild_plugin_sveltekit_shim_app.js',
144
- },
145
- './esbuild_plugin_sveltekit_shim_env.js': {
146
- types: './dist/esbuild_plugin_sveltekit_shim_env.d.ts',
147
- default: './dist/esbuild_plugin_sveltekit_shim_env.js',
148
- },
149
- './filer.js': { types: './dist/filer.d.ts', default: './dist/filer.js' },
150
- './format_directory.js': {
151
- types: './dist/format_directory.d.ts',
152
- default: './dist/format_directory.js',
153
- },
154
- './format_file.js': { types: './dist/format_file.d.ts', default: './dist/format_file.js' },
155
- './format.task.js': { types: './dist/format.task.d.ts', default: './dist/format.task.js' },
156
- './fs.js': { types: './dist/fs.d.ts', default: './dist/fs.js' },
157
- './gen.task.js': { types: './dist/gen.task.d.ts', default: './dist/gen.task.js' },
158
- './gen.js': { types: './dist/gen.d.ts', default: './dist/gen.js' },
159
- './git.js': { types: './dist/git.d.ts', default: './dist/git.js' },
160
- './github.js': { types: './dist/github.d.ts', default: './dist/github.js' },
161
- './gro_config.js': { types: './dist/gro_config.d.ts', default: './dist/gro_config.js' },
162
- './gro_helpers.js': { types: './dist/gro_helpers.d.ts', default: './dist/gro_helpers.js' },
163
- './gro_plugin_gen.js': {
164
- types: './dist/gro_plugin_gen.d.ts',
165
- default: './dist/gro_plugin_gen.js',
166
- },
167
- './gro_plugin_server.js': {
168
- types: './dist/gro_plugin_server.d.ts',
169
- default: './dist/gro_plugin_server.js',
170
- },
171
- './gro_plugin_sveltekit_app.js': {
172
- types: './dist/gro_plugin_sveltekit_app.d.ts',
173
- default: './dist/gro_plugin_sveltekit_app.js',
174
- },
175
- './gro_plugin_sveltekit_library.js': {
176
- types: './dist/gro_plugin_sveltekit_library.d.ts',
177
- default: './dist/gro_plugin_sveltekit_library.js',
178
- },
179
- './gro.config.default.js': {
180
- types: './dist/gro.config.default.d.ts',
181
- default: './dist/gro.config.default.js',
182
- },
183
- './gro.js': { types: './dist/gro.d.ts', default: './dist/gro.js' },
184
- './hash.js': { types: './dist/hash.d.ts', default: './dist/hash.js' },
185
- './input_path.js': { types: './dist/input_path.d.ts', default: './dist/input_path.js' },
186
- './invoke_task.js': { types: './dist/invoke_task.d.ts', default: './dist/invoke_task.js' },
187
- './invoke.js': { types: './dist/invoke.d.ts', default: './dist/invoke.js' },
188
- './lint.task.js': { types: './dist/lint.task.d.ts', default: './dist/lint.task.js' },
189
- './loader.js': { types: './dist/loader.d.ts', default: './dist/loader.js' },
190
- './module.js': { types: './dist/module.d.ts', default: './dist/module.js' },
191
- './modules.js': { types: './dist/modules.d.ts', default: './dist/modules.js' },
192
- './package_json.js': { types: './dist/package_json.d.ts', default: './dist/package_json.js' },
193
- './package.gen.js': { types: './dist/package.gen.d.ts', default: './dist/package.gen.js' },
194
- './package.js': { types: './dist/package.d.ts', default: './dist/package.js' },
195
- './parse_exports_context.js': {
196
- types: './dist/parse_exports_context.d.ts',
197
- default: './dist/parse_exports_context.js',
198
- },
199
- './parse_exports.js': { types: './dist/parse_exports.d.ts', default: './dist/parse_exports.js' },
200
- './parse_imports.js': { types: './dist/parse_imports.d.ts', default: './dist/parse_imports.js' },
201
- './path.js': { types: './dist/path.d.ts', default: './dist/path.js' },
202
- './paths.js': { types: './dist/paths.d.ts', default: './dist/paths.js' },
203
- './plugin.js': { types: './dist/plugin.d.ts', default: './dist/plugin.js' },
204
- './publish.task.js': { types: './dist/publish.task.d.ts', default: './dist/publish.task.js' },
205
- './register.js': { types: './dist/register.d.ts', default: './dist/register.js' },
206
- './reinstall.task.js': {
207
- types: './dist/reinstall.task.d.ts',
208
- default: './dist/reinstall.task.js',
209
- },
210
- './release.task.js': { types: './dist/release.task.d.ts', default: './dist/release.task.js' },
211
- './resolve_specifier.js': {
212
- types: './dist/resolve_specifier.d.ts',
213
- default: './dist/resolve_specifier.js',
214
- },
215
- './resolve.task.js': { types: './dist/resolve.task.d.ts', default: './dist/resolve.task.js' },
216
- './run_gen.js': { types: './dist/run_gen.d.ts', default: './dist/run_gen.js' },
217
- './run_task.js': { types: './dist/run_task.d.ts', default: './dist/run_task.js' },
218
- './run.task.js': { types: './dist/run.task.d.ts', default: './dist/run.task.js' },
219
- './search_fs.js': { types: './dist/search_fs.d.ts', default: './dist/search_fs.js' },
220
- './src_json.js': { types: './dist/src_json.d.ts', default: './dist/src_json.js' },
221
- './svelte_config.js': { types: './dist/svelte_config.d.ts', default: './dist/svelte_config.js' },
222
- './sveltekit_helpers.js': {
223
- types: './dist/sveltekit_helpers.d.ts',
224
- default: './dist/sveltekit_helpers.js',
225
- },
226
- './sveltekit_shim_app_environment.js': {
227
- types: './dist/sveltekit_shim_app_environment.d.ts',
228
- default: './dist/sveltekit_shim_app_environment.js',
229
- },
230
- './sveltekit_shim_app_forms.js': {
231
- types: './dist/sveltekit_shim_app_forms.d.ts',
232
- default: './dist/sveltekit_shim_app_forms.js',
233
- },
234
- './sveltekit_shim_app_navigation.js': {
235
- types: './dist/sveltekit_shim_app_navigation.d.ts',
236
- default: './dist/sveltekit_shim_app_navigation.js',
237
- },
238
- './sveltekit_shim_app_paths.js': {
239
- types: './dist/sveltekit_shim_app_paths.d.ts',
240
- default: './dist/sveltekit_shim_app_paths.js',
241
- },
242
- './sveltekit_shim_app_state.js': {
243
- types: './dist/sveltekit_shim_app_state.d.ts',
244
- default: './dist/sveltekit_shim_app_state.js',
245
- },
246
- './sveltekit_shim_app.js': {
247
- types: './dist/sveltekit_shim_app.d.ts',
248
- default: './dist/sveltekit_shim_app.js',
249
- },
250
- './sveltekit_shim_env.js': {
251
- types: './dist/sveltekit_shim_env.d.ts',
252
- default: './dist/sveltekit_shim_env.js',
253
- },
254
- './sync.task.js': { types: './dist/sync.task.d.ts', default: './dist/sync.task.js' },
255
- './task_logging.js': { types: './dist/task_logging.d.ts', default: './dist/task_logging.js' },
256
- './task.js': { types: './dist/task.d.ts', default: './dist/task.js' },
257
- './test_helpers.js': { types: './dist/test_helpers.d.ts', default: './dist/test_helpers.js' },
258
- './test.task.js': { types: './dist/test.task.d.ts', default: './dist/test.task.js' },
259
- './typecheck.task.js': {
260
- types: './dist/typecheck.task.d.ts',
261
- default: './dist/typecheck.task.js',
262
- },
263
- './upgrade.task.js': { types: './dist/upgrade.task.d.ts', default: './dist/upgrade.task.js' },
264
- './watch_dir.js': { types: './dist/watch_dir.d.ts', default: './dist/watch_dir.js' },
95
+ '.': { types: './dist/index.d.ts', default: './dist/index.js' },
96
+ './*.js': { types: './dist/*.d.ts', default: './dist/*.js' },
265
97
  },
266
98
  };
267
99
  export const src_json = {
268
100
  name: '@ryanatkn/gro',
269
- version: '0.164.1',
101
+ version: '0.165.0',
270
102
  modules: {
271
103
  '.': {
272
104
  path: 'index.ts',
@@ -283,7 +115,6 @@ export const src_json = {
283
115
  { name: 'Task_Error', kind: 'class' },
284
116
  ],
285
117
  },
286
- './package.json': { path: 'package.json', declarations: [{ name: 'default', kind: 'json' }] },
287
118
  './args.js': {
288
119
  path: 'args.ts',
289
120
  declarations: [
@@ -398,6 +229,7 @@ export const src_json = {
398
229
  { name: 'JSON_MATCHER', kind: 'variable' },
399
230
  { name: 'SVELTE_MATCHER', kind: 'variable' },
400
231
  { name: 'SVELTE_RUNES_MATCHER', kind: 'variable' },
232
+ { name: 'CSS_MATCHER', kind: 'variable' },
401
233
  { name: 'SVELTE_SCRIPT_MATCHER', kind: 'variable' },
402
234
  { name: 'SVELTEKIT_ENV_MATCHER', kind: 'variable' },
403
235
  { name: 'SVELTEKIT_GLOBAL_SPECIFIER', kind: 'variable' },
@@ -648,6 +480,21 @@ export const src_json = {
648
480
  },
649
481
  './gro.js': { path: 'gro.ts' },
650
482
  './hash.js': { path: 'hash.ts', declarations: [{ name: 'to_hash', kind: 'function' }] },
483
+ './index.js': {
484
+ path: 'index.ts',
485
+ declarations: [
486
+ { name: 'Gro_Config', kind: 'type' },
487
+ { name: 'Create_Gro_Config', kind: 'type' },
488
+ { name: 'Raw_Gro_Config', kind: 'type' },
489
+ { name: 'Plugin', kind: 'type' },
490
+ { name: 'replace_plugin', kind: 'function' },
491
+ { name: 'Gen', kind: 'type' },
492
+ { name: 'Gen_Context', kind: 'type' },
493
+ { name: 'Task', kind: 'type' },
494
+ { name: 'Task_Context', kind: 'type' },
495
+ { name: 'Task_Error', kind: 'class' },
496
+ ],
497
+ },
651
498
  './input_path.js': {
652
499
  path: 'input_path.ts',
653
500
  declarations: [
@@ -1 +1 @@
1
- {"version":3,"file":"package_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAQlF,MAAM,MAAM,gBAAgB,GAAG,CAC9B,YAAY,EAAE,YAAY,KACtB,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,YAAsC,CAAC;AAExE,eAAO,MAAM,iBAAiB,GAC7B,YAA+C,EAC/C,QAAQ,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACpC,eAAY,EAAE,iGAAiG;AAC/G,MAAM,MAAM,KACV,YAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,kBAAkB,gBAAgB,EAClC,KAAK,MAAM,EACX,eAAY,EACZ,YAAgB,EAChB,oBAAuB,KACrB,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CA2B/D,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,YAAiD,CAAC;AAM3F,eAAO,MAAM,kBAAkB,GAAI,yBAAyB,MAAM,KAAG,IAEpE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,YAAY,KAAG,MACW,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC/B,QAAQ,CAAC,YAAY,EAAE,YAAY,KAAK,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,EAC1F,YAAgB,EAChB,eAAY,KACV,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAa/D,CAAC;AAOF,eAAO,MAAM,kBAAkB,GAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAG,oBA6CzD,CAAC;AAIF,eAAO,MAAM,cAAc,GAC1B,cAAc,YAAY,KACxB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,SAgBlC,CAAC;AA8BF,eAAO,MAAM,OAAO,GACnB,UAAU,MAAM,EAChB,eAAc,YAAkC,KAC9C,OAGyC,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,GAAI,cAAc,YAAY,KAAG,KAAK,CAAC,gBAAgB,CAe/E,CAAC"}
1
+ {"version":3,"file":"package_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAgBlF,MAAM,MAAM,gBAAgB,GAAG,CAC9B,YAAY,EAAE,YAAY,KACtB,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB,EAAE,YAAsC,CAAC;AAExE,eAAO,MAAM,iBAAiB,GAC7B,YAA+C,EAC/C,QAAQ,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACpC,eAAY,EAAE,iGAAiG;AAC/G,MAAM,MAAM,KACV,YAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,kBAAkB,gBAAgB,EAClC,KAAK,MAAM,EACX,eAAY,EACZ,YAAgB,EAChB,oBAAuB,KACrB,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CA0B/D,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,YAAiD,CAAC;AAM3F,eAAO,MAAM,kBAAkB,GAAI,yBAAyB,MAAM,KAAG,IAEpE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,YAAY,KAAG,MACW,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC/B,QAAQ,CAAC,YAAY,EAAE,YAAY,KAAK,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,EAC1F,YAAgB,EAChB,eAAY,KACV,OAAO,CAAC;IAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAa/D,CAAC;AAIF,eAAO,MAAM,kBAAkB,GAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAG,oBA+CzD,CAAC;AAIF,eAAO,MAAM,cAAc,GAC1B,cAAc,YAAY,KACxB;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,SAgBlC,CAAC;AA8BF,eAAO,MAAM,OAAO,GACnB,UAAU,MAAM,EAChB,eAAc,YAAkC,KAC9C,OAGyC,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,GAAI,cAAc,YAAY,KAAG,KAAK,CAAC,gBAAgB,CAe/E,CAAC"}
@@ -4,8 +4,8 @@ import { readFileSync, writeFileSync } from 'node:fs';
4
4
  import { plural, strip_end } from '@ryanatkn/belt/string.js';
5
5
  import { styleText as st } from 'node:util';
6
6
  import { Package_Json, Package_Json_Exports } from '@ryanatkn/belt/package_json.js';
7
- import { paths, gro_paths, IS_THIS_GRO, replace_extension } from "./paths.js";
8
- import { PACKAGE_JSON_FILENAME, SVELTEKIT_DIST_DIRNAME } from "./constants.js";
7
+ import { paths, gro_paths, IS_THIS_GRO } from "./paths.js";
8
+ import { PACKAGE_JSON_FILENAME, SVELTEKIT_DIST_DIRNAME, TS_MATCHER, JS_MATCHER, SVELTE_MATCHER, JSON_MATCHER, CSS_MATCHER, } from "./constants.js";
9
9
  import { search_fs } from "./search_fs.js";
10
10
  import { has_sveltekit_library } from "./sveltekit_helpers.js";
11
11
  import { GITHUB_REPO_MATCHER } from "./github.js";
@@ -36,8 +36,7 @@ export const sync_package_json = async (map_package_json, log, write = true, dir
36
36
  const exported_paths = exported_files.map((f) => f.path);
37
37
  const updated = await update_package_json(async (package_json) => {
38
38
  if (has_sveltekit_library(package_json).ok) {
39
- const exports = to_package_exports(exported_paths);
40
- package_json.exports = exports;
39
+ package_json.exports = to_package_exports(exported_paths);
41
40
  }
42
41
  const mapped = await map_package_json(package_json);
43
42
  return mapped ? parse_package_json(Package_Json, mapped) : mapped;
@@ -76,56 +75,44 @@ export const update_package_json = async (update, dir = paths.root, write = true
76
75
  return { package_json: updated, changed: true };
77
76
  };
78
77
  const is_index = (path) => path === 'index.ts' || path === 'index.js';
79
- // TODO support subpath patterns as the main concise way to do things
80
- // https://nodejs.org/api/packages.html#subpath-patterns
81
78
  export const to_package_exports = (paths) => {
82
- const sorted = paths
83
- .slice()
84
- .sort((a, b) => (is_index(a) ? -1 : is_index(b) ? 1 : a.localeCompare(b)));
85
- // Add the package.json after the index, if one exists.
86
- // Including the `./` here ensures we don't conflict with any potential `$lib/package.json`.
87
- const final_sorted = is_index(sorted[0])
88
- ? [sorted[0]].concat('./package.json', sorted.slice(1))
89
- : ['./package.json'].concat(sorted);
90
- const exports = {};
91
- for (const path of final_sorted) {
92
- if (path === './package.json') {
93
- exports['./package.json'] = './package.json';
94
- }
95
- else if (path.endsWith('.json.d.ts')) {
96
- const json_path = path.substring(0, path.length - 5);
97
- exports['./' + json_path] = {
98
- types: IMPORT_PREFIX + path,
99
- default: IMPORT_PREFIX + json_path, // assuming a matching json file
100
- };
101
- }
102
- else if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {
103
- const js_path = replace_extension(path, '.js');
104
- const key = is_index(path) ? '.' : './' + js_path;
105
- exports[key] = {
106
- types: IMPORT_PREFIX + replace_extension(path, '.d.ts'),
107
- default: IMPORT_PREFIX + js_path,
108
- };
109
- }
110
- else if (path.endsWith('.js')) {
111
- const key = is_index(path) ? '.' : './' + path;
112
- exports[key] = {
113
- types: IMPORT_PREFIX + replace_extension(path, '.d.ts'), // assuming JSDoc types
114
- default: IMPORT_PREFIX + path,
115
- };
116
- }
117
- else if (path.endsWith('.svelte')) {
118
- exports['./' + path] = {
119
- types: IMPORT_PREFIX + path + '.d.ts',
120
- svelte: IMPORT_PREFIX + path,
121
- default: IMPORT_PREFIX + path, // needed for loader imports
122
- };
123
- }
124
- else {
125
- exports['./' + path] = {
126
- default: IMPORT_PREFIX + path,
127
- };
128
- }
79
+ const has_index = paths.some(is_index);
80
+ const has_js = paths.some((p) => TS_MATCHER.test(p) || JS_MATCHER.test(p));
81
+ const has_svelte = paths.some((p) => SVELTE_MATCHER.test(p));
82
+ const has_json = paths.some((p) => JSON_MATCHER.test(p));
83
+ const has_css = paths.some((p) => CSS_MATCHER.test(p));
84
+ const exports = {
85
+ './package.json': './package.json',
86
+ };
87
+ if (has_index) {
88
+ exports['.'] = {
89
+ types: IMPORT_PREFIX + 'index.d.ts',
90
+ default: IMPORT_PREFIX + 'index.js',
91
+ };
92
+ }
93
+ if (has_js) {
94
+ exports['./*.js'] = {
95
+ types: IMPORT_PREFIX + '*.d.ts',
96
+ default: IMPORT_PREFIX + '*.js',
97
+ };
98
+ }
99
+ if (has_svelte) {
100
+ exports['./*.svelte'] = {
101
+ types: IMPORT_PREFIX + '*.svelte.d.ts',
102
+ svelte: IMPORT_PREFIX + '*.svelte',
103
+ default: IMPORT_PREFIX + '*.svelte',
104
+ };
105
+ }
106
+ if (has_json) {
107
+ exports['./*.json'] = {
108
+ types: IMPORT_PREFIX + '*.json.d.ts',
109
+ default: IMPORT_PREFIX + '*.json',
110
+ };
111
+ }
112
+ if (has_css) {
113
+ exports['./*.css'] = {
114
+ default: IMPORT_PREFIX + '*.css',
115
+ };
129
116
  }
130
117
  return parse_or_throw_formatted_error('package.json#exports', Package_Json_Exports, exports);
131
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"src_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/src_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAMjE,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAE9F,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,EAAE,WAAW,MAAM,KAAG,QAK7E,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,MAGvD,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,SAAS,oBAAoB,GAAG,SAAS,EACzC,iBAAoB,KAClB,WAAW,GAAG,SAuEhB,CAAC"}
1
+ {"version":3,"file":"src_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/src_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAOjE,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAE9F,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,EAAE,WAAW,MAAM,KAAG,QAK7E,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,MAGvD,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,SAAS,oBAAoB,GAAG,SAAS,EACzC,iBAAoB,KAClB,WAAW,GAAG,SA4ChB,CAAC"}
package/dist/src_json.js CHANGED
@@ -1,11 +1,12 @@
1
- import { join, extname } from 'node:path';
1
+ import { join } from 'node:path';
2
2
  import { ensure_end, strip_start } from '@ryanatkn/belt/string.js';
3
3
  import { existsSync } from 'node:fs';
4
4
  import ts from 'typescript';
5
5
  import { Src_Json, Src_Modules } from '@ryanatkn/belt/src_json.js';
6
6
  import { paths, replace_extension } from "./paths.js";
7
7
  import { parse_exports } from "./parse_exports.js";
8
- import { TS_MATCHER } from "./constants.js";
8
+ import { TS_MATCHER, SVELTE_MATCHER, JSON_MATCHER, CSS_MATCHER } from "./constants.js";
9
+ import { search_fs } from "./search_fs.js";
9
10
  export const create_src_json = (package_json, lib_path) => Src_Json.parse({
10
11
  name: package_json.name,
11
12
  version: package_json.version,
@@ -18,27 +19,7 @@ export const serialize_src_json = (src_json) => {
18
19
  export const to_src_modules = (exports, lib_path = paths.lib) => {
19
20
  if (!exports)
20
21
  return;
21
- // Prepare a list of files to analyze
22
- const file_paths = [];
23
- for (const [k, _v] of Object.entries(exports)) {
24
- // Handle different file types
25
- const source_file_path = k === '.' || k === './'
26
- ? 'index.ts'
27
- : strip_start(k.endsWith('.js') ? replace_extension(k, '.ts') : k, './');
28
- const source_file_id = join(lib_path, source_file_path);
29
- // Check if file exists
30
- if (!existsSync(source_file_id)) {
31
- // Handle non-TypeScript files (Svelte, CSS, JSON)
32
- const extension = extname(source_file_id);
33
- if (extension === '.svelte' || extension === '.css' || extension === '.json') {
34
- file_paths.push({ export_key: k, file_path: source_file_id });
35
- continue;
36
- }
37
- // TODO still an error for unknown files running `gro gen`, can it use the filer to invalidate correctly?
38
- throw Error(`Failed to infer source file from package.json export path ${k} - the inferred file ${source_file_id} does not exist`);
39
- }
40
- file_paths.push({ export_key: k, file_path: source_file_id });
41
- }
22
+ const file_paths = collect_file_paths(exports, lib_path);
42
23
  // Create a TypeScript program for all TypeScript files
43
24
  const ts_files = file_paths
44
25
  .filter(({ file_path }) => TS_MATCHER.test(file_path))
@@ -71,3 +52,95 @@ export const to_src_modules = (exports, lib_path = paths.lib) => {
71
52
  }
72
53
  return result;
73
54
  };
55
+ const collect_file_paths = (exports, lib_path) => {
56
+ const file_paths = [];
57
+ // Handle string exports (single default export)
58
+ if (typeof exports === 'string') {
59
+ const source_file = infer_source_from_export(exports, lib_path);
60
+ if (source_file) {
61
+ file_paths.push({ export_key: '.', file_path: source_file });
62
+ }
63
+ else {
64
+ throw Error(`Failed to infer source file from package.json string export "${exports}" - no matching file found in ${lib_path}`);
65
+ }
66
+ return file_paths;
67
+ }
68
+ // Handle object exports
69
+ for (const k in exports) {
70
+ // Skip package.json
71
+ if (k === './package.json')
72
+ continue;
73
+ // Check if this is a pattern export
74
+ if (k.includes('*')) {
75
+ // Handle pattern exports by finding matching files in lib
76
+ const matching_files = search_fs(lib_path, {
77
+ file_filter: (path) => {
78
+ const p = path.replace(ensure_end(lib_path, '/'), '');
79
+ // Only match files in the root directory (no subdirectories)
80
+ if (p.includes('/'))
81
+ return false;
82
+ // Match based on the export pattern
83
+ if (k === './*.js') {
84
+ return TS_MATCHER.test(p) && !p.endsWith('.d.ts') && !p.endsWith('.test.ts');
85
+ }
86
+ else if (k === './*.svelte') {
87
+ return SVELTE_MATCHER.test(p);
88
+ }
89
+ else if (k === './*.json') {
90
+ return JSON_MATCHER.test(p);
91
+ }
92
+ else if (k === './*.css') {
93
+ return CSS_MATCHER.test(p);
94
+ }
95
+ return false;
96
+ },
97
+ });
98
+ // Add each matching file
99
+ for (const file of matching_files) {
100
+ let export_path;
101
+ if (file.path.endsWith('.ts')) {
102
+ export_path = './' + file.path.replace('.ts', '.js');
103
+ }
104
+ else {
105
+ export_path = './' + file.path;
106
+ }
107
+ file_paths.push({ export_key: export_path, file_path: file.id });
108
+ }
109
+ }
110
+ else {
111
+ // Handle explicit exports (non-patterns)
112
+ const source_file = infer_source_from_export(k, lib_path);
113
+ if (source_file) {
114
+ file_paths.push({ export_key: k, file_path: source_file });
115
+ }
116
+ else {
117
+ throw Error(`Failed to infer source file from package.json export path ${k} - no matching file found in ${lib_path}`);
118
+ }
119
+ }
120
+ }
121
+ return file_paths;
122
+ };
123
+ const infer_source_from_export = (export_path, lib_path) => {
124
+ // Handle index specially
125
+ if (export_path === '.' || export_path === './') {
126
+ const index_ts = join(lib_path, 'index.ts');
127
+ if (existsSync(index_ts))
128
+ return index_ts;
129
+ const index_js = join(lib_path, 'index.js');
130
+ if (existsSync(index_js))
131
+ return index_js;
132
+ return null;
133
+ }
134
+ const clean_path = strip_start(export_path, './');
135
+ // For .js exports, try .ts first
136
+ if (clean_path.endsWith('.js')) {
137
+ const ts_path = join(lib_path, replace_extension(clean_path, '.ts'));
138
+ if (existsSync(ts_path))
139
+ return ts_path;
140
+ }
141
+ // Try the exact path
142
+ const exact_path = join(lib_path, clean_path);
143
+ if (existsSync(exact_path))
144
+ return exact_path;
145
+ return null;
146
+ };