@ryanatkn/gro 0.130.1 → 0.131.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.
- package/dist/changelog.js +1 -1
- package/dist/changeset.task.d.ts.map +1 -1
- package/dist/changeset.task.js +3 -1
- package/dist/config.d.ts +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -9
- package/dist/esbuild_plugin_external_worker.js +1 -1
- package/dist/esbuild_plugin_svelte.js +1 -1
- package/dist/esbuild_plugin_sveltekit_local_imports.js +3 -3
- package/dist/esbuild_plugin_sveltekit_shim_app.js +5 -5
- package/dist/esbuild_plugin_sveltekit_shim_env.js +2 -2
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +1 -1
- package/dist/invoke.js +2 -2
- package/dist/loader.js +4 -4
- package/dist/package.js +14 -14
- package/dist/package_json.js +2 -2
- package/dist/package_meta.d.ts +2 -0
- package/dist/package_meta.d.ts.map +1 -1
- package/dist/package_meta.js +8 -1
- package/dist/svelte_helpers.d.ts.map +1 -1
- package/dist/svelte_helpers.js +2 -2
- package/dist/sveltekit_shim_app.d.ts.map +1 -1
- package/dist/sveltekit_shim_app.js +2 -2
- package/dist/upgrade.task.js +2 -2
- package/package.json +9 -9
- package/src/lib/changelog.ts +1 -1
- package/src/lib/changeset.task.ts +3 -1
- package/src/lib/config.ts +11 -9
- package/src/lib/esbuild_plugin_external_worker.ts +1 -1
- package/src/lib/esbuild_plugin_svelte.ts +1 -1
- package/src/lib/esbuild_plugin_sveltekit_local_imports.ts +3 -3
- package/src/lib/esbuild_plugin_sveltekit_shim_app.ts +5 -5
- package/src/lib/esbuild_plugin_sveltekit_shim_env.ts +2 -2
- package/src/lib/github.ts +1 -1
- package/src/lib/input_path.ts +2 -2
- package/src/lib/invoke.ts +2 -2
- package/src/lib/loader.ts +4 -4
- package/src/lib/package.ts +14 -14
- package/src/lib/package_json.ts +2 -2
- package/src/lib/package_meta.ts +17 -6
- package/src/lib/svelte_helpers.ts +2 -2
- package/src/lib/sveltekit_shim_app.ts +2 -3
- package/src/lib/task.ts +1 -1
- package/src/lib/upgrade.task.ts +2 -2
package/dist/changelog.js
CHANGED
|
@@ -23,7 +23,7 @@ export const update_changelog = async (owner, repo, path = 'CHANGELOG.md', token
|
|
|
23
23
|
const Parsed_Changelog = z.array(z.string());
|
|
24
24
|
const parse_changelog = (contents) => contents.split('\n');
|
|
25
25
|
const serialize_changelog = (parsed) => parsed.join('\n');
|
|
26
|
-
const LINE_WITH_SHA_MATCHER = /^- ([a-z0-9]{7,8}):
|
|
26
|
+
const LINE_WITH_SHA_MATCHER = /^- ([a-z0-9]{7,8}): /;
|
|
27
27
|
const map_changelog = async (parsed, owner, repo, token, log, cache) => {
|
|
28
28
|
const mapped = [];
|
|
29
29
|
for (const line of parsed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeset.task.d.ts","sourceRoot":"../src/lib/","sources":["changeset.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAQtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAchD,eAAO,MAAM,IAAI;IAEf;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBK,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"changeset.task.d.ts","sourceRoot":"../src/lib/","sources":["changeset.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAQtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAchD,eAAO,MAAM,IAAI;IAEf;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBK,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CAiF3B,CAAC"}
|
package/dist/changeset.task.js
CHANGED
|
@@ -64,7 +64,9 @@ export const task = {
|
|
|
64
64
|
const inited = existsSync(path);
|
|
65
65
|
if (!inited) {
|
|
66
66
|
await spawn_cli(found_changeset_cli, ['init'], log);
|
|
67
|
-
const access = access_arg ?? package_json.private
|
|
67
|
+
const access = (access_arg ?? package_json.private)
|
|
68
|
+
? CHANGESET_RESTRICTED_ACCESS
|
|
69
|
+
: CHANGESET_PUBLIC_ACCESS;
|
|
68
70
|
const access_color = access === CHANGESET_RESTRICTED_ACCESS ? blue : red;
|
|
69
71
|
log.info('initing changeset with ' + access_color(access) + ' access');
|
|
70
72
|
if (access !== CHANGESET_RESTRICTED_ACCESS) {
|
package/dist/config.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export interface Raw_Gro_Config {
|
|
|
40
40
|
search_filters?: Path_Filter | Path_Filter[] | null;
|
|
41
41
|
}
|
|
42
42
|
export type Create_Gro_Config = (base_config: Gro_Config) => Raw_Gro_Config | Promise<Raw_Gro_Config>;
|
|
43
|
-
export declare const
|
|
43
|
+
export declare const create_empty_gro_config: () => Gro_Config;
|
|
44
44
|
/**
|
|
45
45
|
* The regexp used by default to exclude directories and files
|
|
46
46
|
* when searching the filesystem for tasks and genfiles.
|
|
@@ -53,10 +53,10 @@ export declare const DEFAULT_EXPORTS_EXCLUDER: RegExp;
|
|
|
53
53
|
* Transforms a `Raw_Gro_Config` to the more strict `Gro_Config`.
|
|
54
54
|
* This allows users to provide a more relaxed config.
|
|
55
55
|
*/
|
|
56
|
-
export declare const
|
|
56
|
+
export declare const normalize_gro_config: (raw_config: Raw_Gro_Config) => Gro_Config;
|
|
57
57
|
export interface Gro_Config_Module {
|
|
58
58
|
readonly default: Raw_Gro_Config | Create_Gro_Config;
|
|
59
59
|
}
|
|
60
|
-
export declare const
|
|
61
|
-
export declare const
|
|
60
|
+
export declare const load_gro_config: (dir?: string) => Promise<Gro_Config>;
|
|
61
|
+
export declare const validate_gro_config_module: (config_module: any, config_path: string) => asserts config_module is Gro_Config_Module;
|
|
62
62
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"../src/lib/","sources":["config.ts"],"names":[],"mappings":"AAYA,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;AAEpD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,OAAO,EAAE,qBAAqB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B;;;OAGG;IACH,cAAc,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC/B,WAAW,EAAE,UAAU,KACnB,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAE9C,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"../src/lib/","sources":["config.ts"],"names":[],"mappings":"AAYA,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;AAEpD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,OAAO,EAAE,qBAAqB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B;;;OAGG;IACH,cAAc,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC/B,WAAW,EAAE,UAAU,KACnB,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAE9C,eAAO,MAAM,uBAAuB,QAAO,UAUzC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAUnC,CAAC;AAWF,eAAO,MAAM,wBAAwB,QAAwD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,eAAgB,cAAc,KAAG,UAoBjE,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAAC;CACrD;AAED,eAAO,MAAM,eAAe,oBAA6B,OAAO,CAAC,UAAU,CAiB1E,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,CACxC,aAAa,EAAE,GAAG,EAClB,WAAW,EAAE,MAAM,KACf,OAAO,CAAC,aAAa,IAAI,iBAS7B,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -3,7 +3,7 @@ import { existsSync } from 'node:fs';
|
|
|
3
3
|
import { GRO_DIST_DIR, IS_THIS_GRO, paths } from './paths.js';
|
|
4
4
|
import { GRO_CONFIG_PATH, NODE_MODULES_DIRNAME, SERVER_DIST_PATH, SVELTEKIT_BUILD_DIRNAME, SVELTEKIT_DIST_DIRNAME, } from './path_constants.js';
|
|
5
5
|
import create_default_config from './gro.config.default.js';
|
|
6
|
-
export const
|
|
6
|
+
export const create_empty_gro_config = () => ({
|
|
7
7
|
plugins: () => [],
|
|
8
8
|
map_package_json: default_map_package_json,
|
|
9
9
|
task_root_dirs: [
|
|
@@ -33,13 +33,13 @@ const default_map_package_json = (package_json) => {
|
|
|
33
33
|
}
|
|
34
34
|
return package_json;
|
|
35
35
|
};
|
|
36
|
-
export const DEFAULT_EXPORTS_EXCLUDER = /(\.md|\.(test|ignore)\.|\/(test|fixtures|ignore)\/)
|
|
36
|
+
export const DEFAULT_EXPORTS_EXCLUDER = /(\.md|\.(test|ignore)\.|\/(test|fixtures|ignore)\/)/;
|
|
37
37
|
/**
|
|
38
38
|
* Transforms a `Raw_Gro_Config` to the more strict `Gro_Config`.
|
|
39
39
|
* This allows users to provide a more relaxed config.
|
|
40
40
|
*/
|
|
41
|
-
export const
|
|
42
|
-
const empty_config =
|
|
41
|
+
export const normalize_gro_config = (raw_config) => {
|
|
42
|
+
const empty_config = create_empty_gro_config();
|
|
43
43
|
// All of the raw config properties are optional,
|
|
44
44
|
// so fall back to the empty values when `undefined`.
|
|
45
45
|
const { plugins = empty_config.plugins, map_package_json = empty_config.map_package_json, task_root_dirs = empty_config.task_root_dirs, search_filters = empty_config.search_filters, } = raw_config;
|
|
@@ -54,8 +54,8 @@ export const normalize_config = (raw_config) => {
|
|
|
54
54
|
: [],
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
|
-
export const
|
|
58
|
-
const default_config =
|
|
57
|
+
export const load_gro_config = async (dir = paths.root) => {
|
|
58
|
+
const default_config = normalize_gro_config(await create_default_config(create_empty_gro_config()));
|
|
59
59
|
const config_path = join(dir, GRO_CONFIG_PATH);
|
|
60
60
|
if (!existsSync(config_path)) {
|
|
61
61
|
// No user config file found, so return the default.
|
|
@@ -63,12 +63,12 @@ export const load_config = async (dir = paths.root) => {
|
|
|
63
63
|
}
|
|
64
64
|
// Import the user's `gro.config.ts`.
|
|
65
65
|
const config_module = await import(config_path);
|
|
66
|
-
|
|
67
|
-
return
|
|
66
|
+
validate_gro_config_module(config_module, config_path);
|
|
67
|
+
return normalize_gro_config(typeof config_module.default === 'function'
|
|
68
68
|
? await config_module.default(default_config)
|
|
69
69
|
: config_module.default);
|
|
70
70
|
};
|
|
71
|
-
export const
|
|
71
|
+
export const validate_gro_config_module = (config_module, config_path) => {
|
|
72
72
|
const config = config_module.default;
|
|
73
73
|
if (!config) {
|
|
74
74
|
throw Error(`Invalid Gro config module at ${config_path}: expected a default export`);
|
|
@@ -41,7 +41,7 @@ export const esbuild_plugin_external_worker = ({ dev, build_options, dir = proce
|
|
|
41
41
|
builds.set(path_id, building);
|
|
42
42
|
return building;
|
|
43
43
|
};
|
|
44
|
-
build.onResolve({ filter: /\.worker(|\.js|\.ts)$/
|
|
44
|
+
build.onResolve({ filter: /\.worker(|\.js|\.ts)$/ }, async ({ path, resolveDir }) => {
|
|
45
45
|
const parsed = resolve_specifier(path, resolveDir);
|
|
46
46
|
const { specifier, path_id, namespace } = parsed;
|
|
47
47
|
const build_result = await build_worker(path_id);
|
|
@@ -59,7 +59,7 @@ export const esbuild_plugin_svelte = (options = {}) => {
|
|
|
59
59
|
const convert_svelte_message_to_esbuild = (path, source, { message, start, end }) => {
|
|
60
60
|
let location = null;
|
|
61
61
|
if (start && end) {
|
|
62
|
-
const lineText = source.split(/\r\n|\r|\n/
|
|
62
|
+
const lineText = source.split(/\r\n|\r|\n/g)[start.line - 1];
|
|
63
63
|
const lineEnd = start.line === end.line ? end.column : lineText.length;
|
|
64
64
|
location = {
|
|
65
65
|
file: path,
|
|
@@ -9,19 +9,19 @@ import { resolve_specifier } from './resolve_specifier.js';
|
|
|
9
9
|
export const esbuild_plugin_sveltekit_local_imports = () => ({
|
|
10
10
|
name: 'sveltekit_local_imports',
|
|
11
11
|
setup: (build) => {
|
|
12
|
-
build.onResolve({ filter: /^(\/|\.)/
|
|
12
|
+
build.onResolve({ filter: /^(\/|\.)/ }, (args) => {
|
|
13
13
|
const { path, importer } = args;
|
|
14
14
|
if (!importer)
|
|
15
15
|
return { path };
|
|
16
16
|
const { path_id, namespace } = resolve_specifier(path, dirname(importer));
|
|
17
17
|
return { path: path_id, namespace }; // `namespace` may be `undefined`, but esbuild needs the absolute path for json etc
|
|
18
18
|
});
|
|
19
|
-
build.onLoad({ filter:
|
|
19
|
+
build.onLoad({ filter: /.*/, namespace: 'sveltekit_local_imports_ts' }, async ({ path }) => ({
|
|
20
20
|
contents: await readFile(path),
|
|
21
21
|
loader: 'ts',
|
|
22
22
|
resolveDir: dirname(path),
|
|
23
23
|
}));
|
|
24
|
-
build.onLoad({ filter:
|
|
24
|
+
build.onLoad({ filter: /.*/, namespace: 'sveltekit_local_imports_js' }, async ({ path }) => ({
|
|
25
25
|
contents: await readFile(path),
|
|
26
26
|
resolveDir: dirname(path),
|
|
27
27
|
}));
|
|
@@ -2,19 +2,19 @@ import { render_sveltekit_shim_app_environment, render_sveltekit_shim_app_paths,
|
|
|
2
2
|
export const esbuild_plugin_sveltekit_shim_app = ({ dev, base_url, assets_url, }) => ({
|
|
3
3
|
name: 'sveltekit_shim_app',
|
|
4
4
|
setup: (build) => {
|
|
5
|
-
build.onResolve({ filter: /^\$app\/(forms|navigation|stores)$/
|
|
6
|
-
build.onResolve({ filter: /^\$app\/paths$/
|
|
5
|
+
build.onResolve({ filter: /^\$app\/(forms|navigation|stores)$/ }, ({ path, ...rest }) => build.resolve(sveltekit_shim_app_specifiers.get(path), rest));
|
|
6
|
+
build.onResolve({ filter: /^\$app\/paths$/ }, ({ path }) => ({
|
|
7
7
|
path: sveltekit_shim_app_specifiers.get(path),
|
|
8
8
|
namespace: 'sveltekit_shim_app_paths',
|
|
9
9
|
}));
|
|
10
|
-
build.onLoad({ filter:
|
|
10
|
+
build.onLoad({ filter: /.*/, namespace: 'sveltekit_shim_app_paths' }, () => ({
|
|
11
11
|
contents: render_sveltekit_shim_app_paths(base_url, assets_url),
|
|
12
12
|
}));
|
|
13
|
-
build.onResolve({ filter: /^\$app\/environment$/
|
|
13
|
+
build.onResolve({ filter: /^\$app\/environment$/ }, ({ path }) => ({
|
|
14
14
|
path: sveltekit_shim_app_specifiers.get(path),
|
|
15
15
|
namespace: 'sveltekit_shim_app_environment',
|
|
16
16
|
}));
|
|
17
|
-
build.onLoad({ filter:
|
|
17
|
+
build.onLoad({ filter: /.*/, namespace: 'sveltekit_shim_app_environment' }, () => ({
|
|
18
18
|
contents: render_sveltekit_shim_app_environment(dev),
|
|
19
19
|
}));
|
|
20
20
|
},
|
|
@@ -3,9 +3,9 @@ export const esbuild_plugin_sveltekit_shim_env = ({ dev, public_prefix, private_
|
|
|
3
3
|
name: 'sveltekit_shim_env',
|
|
4
4
|
setup: (build) => {
|
|
5
5
|
const namespace = 'sveltekit_shim_env';
|
|
6
|
-
const filter = /^\$env\/(static|dynamic)\/(public|private)
|
|
6
|
+
const filter = /^\$env\/(static|dynamic)\/(public|private)$/;
|
|
7
7
|
build.onResolve({ filter }, ({ path }) => ({ path, namespace }));
|
|
8
|
-
build.onLoad({ filter:
|
|
8
|
+
build.onLoad({ filter: /.*/, namespace }, ({ path }) => {
|
|
9
9
|
const matches = filter.exec(path);
|
|
10
10
|
const mode = matches[1];
|
|
11
11
|
const visibility = matches[2];
|
package/dist/github.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"../src/lib/","sources":["github.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"../src/lib/","sources":["github.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAC5B,MAAM,QACP,MAAM,cACA,MAAM,UACV,MAAM,wCAGA,MAAM,KAClB,OAAO,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAatC,CAAC"}
|
package/dist/github.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// and we specify just the types we need
|
|
4
4
|
import { Fetch_Value_Cache, fetch_value } from '@ryanatkn/belt/fetch.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
export const GITHUB_REPO_MATCHER = /.+github.com\/(.+)\/(.+)
|
|
6
|
+
export const GITHUB_REPO_MATCHER = /.+github.com\/(.+)\/(.+)/;
|
|
7
7
|
export const Github_Pull_Request = z.object({
|
|
8
8
|
url: z.string(),
|
|
9
9
|
id: z.number(),
|
package/dist/invoke.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { attach_process_error_handlers } from '@ryanatkn/belt/process.js';
|
|
2
2
|
import { invoke_task } from './invoke_task.js';
|
|
3
3
|
import { to_task_args } from './args.js';
|
|
4
|
-
import {
|
|
4
|
+
import { load_gro_config } from './config.js';
|
|
5
5
|
import { sveltekit_sync_if_obviously_needed } from './sveltekit_helpers.js';
|
|
6
6
|
/*
|
|
7
7
|
|
|
@@ -17,4 +17,4 @@ and the rest of the args are forwarded to the task's `run` function.
|
|
|
17
17
|
attach_process_error_handlers((err) => err?.constructor?.name === 'Task_Error' ? 'Task_Error' : null);
|
|
18
18
|
await sveltekit_sync_if_obviously_needed();
|
|
19
19
|
const { task_name, args } = to_task_args();
|
|
20
|
-
await invoke_task(task_name, args, await
|
|
20
|
+
await invoke_task(task_name, args, await load_gro_config());
|
package/dist/loader.js
CHANGED
|
@@ -48,10 +48,10 @@ const final_ts_transform_options = {
|
|
|
48
48
|
sourcemap: 'inline',
|
|
49
49
|
};
|
|
50
50
|
const aliases = Object.entries({ $lib: 'src/lib', ...alias });
|
|
51
|
-
const TS_MATCHER = /\.(ts|tsx|mts|cts)
|
|
52
|
-
const JSON_MATCHER = /\.(json)
|
|
53
|
-
const NOOP_MATCHER = /\.(css|svg)
|
|
54
|
-
const ENV_MATCHER = /src\/lib\/\$env\/(static|dynamic)\/(public|private)
|
|
51
|
+
const TS_MATCHER = /\.(ts|tsx|mts|cts)$/;
|
|
52
|
+
const JSON_MATCHER = /\.(json)$/;
|
|
53
|
+
const NOOP_MATCHER = /\.(css|svg)$/; // TODO others? configurable?
|
|
54
|
+
const ENV_MATCHER = /src\/lib\/\$env\/(static|dynamic)\/(public|private)$/;
|
|
55
55
|
const NODE_MODULES_MATCHER = new RegExp(escape_regexp('/' + NODE_MODULES_DIRNAME + '/'), 'u');
|
|
56
56
|
const package_json_cache = {};
|
|
57
57
|
export const load = async (url, context, nextLoad) => {
|
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.
|
|
4
|
+
version: '0.131.0',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -39,13 +39,13 @@ export const package_json = {
|
|
|
39
39
|
'typescript',
|
|
40
40
|
],
|
|
41
41
|
dependencies: {
|
|
42
|
-
'@ryanatkn/belt': '^0.24.
|
|
42
|
+
'@ryanatkn/belt': '^0.24.9',
|
|
43
43
|
chokidar: '^3.6.0',
|
|
44
44
|
dotenv: '^16.4.5',
|
|
45
45
|
'es-module-lexer': '^1.5.4',
|
|
46
46
|
'esm-env': '^1.0.0',
|
|
47
47
|
mri: '^1.2.0',
|
|
48
|
-
prettier: '^3.3.
|
|
48
|
+
prettier: '^3.3.3',
|
|
49
49
|
'prettier-plugin-svelte': '^3.2.5',
|
|
50
50
|
'ts-morph': '^23.0.0',
|
|
51
51
|
tslib: '^2.6.3',
|
|
@@ -55,9 +55,9 @@ export const package_json = {
|
|
|
55
55
|
devDependencies: {
|
|
56
56
|
'@changesets/changelog-git': '^0.2.0',
|
|
57
57
|
'@changesets/types': '^6.0.0',
|
|
58
|
-
'@ryanatkn/eslint-config': '^0.4.
|
|
59
|
-
'@ryanatkn/fuz': '^0.
|
|
60
|
-
'@ryanatkn/moss': '^0.
|
|
58
|
+
'@ryanatkn/eslint-config': '^0.4.2',
|
|
59
|
+
'@ryanatkn/fuz': '^0.111.0',
|
|
60
|
+
'@ryanatkn/moss': '^0.8.0',
|
|
61
61
|
'@sveltejs/adapter-static': '^3.0.2',
|
|
62
62
|
'@sveltejs/kit': '^2.5.18',
|
|
63
63
|
'@sveltejs/package': '^2.3.2',
|
|
@@ -65,12 +65,12 @@ export const package_json = {
|
|
|
65
65
|
'@types/fs-extra': '^11.0.4',
|
|
66
66
|
'@types/node': '^20.14.10',
|
|
67
67
|
esbuild: '^0.21.5',
|
|
68
|
-
eslint: '^9.
|
|
68
|
+
eslint: '^9.7.0',
|
|
69
69
|
'eslint-plugin-svelte': '^2.42.0',
|
|
70
|
-
svelte: '^5.0.0-next.
|
|
70
|
+
svelte: '^5.0.0-next.184',
|
|
71
71
|
'svelte-check': '^3.8.4',
|
|
72
72
|
typescript: '^5.5.3',
|
|
73
|
-
'typescript-eslint': '^8.0.0-alpha.
|
|
73
|
+
'typescript-eslint': '^8.0.0-alpha.44',
|
|
74
74
|
uvu: '^0.5.6',
|
|
75
75
|
},
|
|
76
76
|
prettier: {
|
|
@@ -266,7 +266,7 @@ export const package_json = {
|
|
|
266
266
|
};
|
|
267
267
|
export const src_json = {
|
|
268
268
|
name: '@ryanatkn/gro',
|
|
269
|
-
version: '0.
|
|
269
|
+
version: '0.131.0',
|
|
270
270
|
modules: {
|
|
271
271
|
'.': {
|
|
272
272
|
path: 'index.ts',
|
|
@@ -367,13 +367,13 @@ export const src_json = {
|
|
|
367
367
|
{ name: 'Gro_Config', kind: 'type' },
|
|
368
368
|
{ name: 'Raw_Gro_Config', kind: 'type' },
|
|
369
369
|
{ name: 'Create_Gro_Config', kind: 'type' },
|
|
370
|
-
{ name: '
|
|
370
|
+
{ name: 'create_empty_gro_config', kind: 'function' },
|
|
371
371
|
{ name: 'DEFAULT_SEARCH_EXCLUDER', kind: 'variable' },
|
|
372
372
|
{ name: 'DEFAULT_EXPORTS_EXCLUDER', kind: 'variable' },
|
|
373
|
-
{ name: '
|
|
373
|
+
{ name: 'normalize_gro_config', kind: 'function' },
|
|
374
374
|
{ name: 'Gro_Config_Module', kind: 'type' },
|
|
375
|
-
{ name: '
|
|
376
|
-
{ name: '
|
|
375
|
+
{ name: 'load_gro_config', kind: 'function' },
|
|
376
|
+
{ name: 'validate_gro_config_module', kind: 'function' },
|
|
377
377
|
],
|
|
378
378
|
},
|
|
379
379
|
'./deploy.task.js': {
|
package/dist/package_json.js
CHANGED
|
@@ -8,9 +8,9 @@ import { SVELTEKIT_DIST_DIRNAME } from './path_constants.js';
|
|
|
8
8
|
import { search_fs } from './search_fs.js';
|
|
9
9
|
import { has_sveltekit_library } from './sveltekit_helpers.js';
|
|
10
10
|
import { GITHUB_REPO_MATCHER } from './github.js';
|
|
11
|
-
// TODO @
|
|
11
|
+
// TODO @many belongs elsewhere
|
|
12
12
|
export const Url = z.string();
|
|
13
|
-
// TODO @
|
|
13
|
+
// TODO @many belongs elsewhere
|
|
14
14
|
export const Email = z.string();
|
|
15
15
|
// TODO move this where?
|
|
16
16
|
export const transform_empty_object_to_undefined = (val) => {
|
package/dist/package_meta.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package_meta.d.ts","sourceRoot":"../src/lib/","sources":["package_meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,GAAG,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,QACzB,GAAG,gBACM,YAAY,YAChB,QAAQ,KAChB,
|
|
1
|
+
{"version":3,"file":"package_meta.d.ts","sourceRoot":"../src/lib/","sources":["package_meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,GAAG,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,QACzB,GAAG,gBACM,YAAY,YAChB,QAAQ,KAChB,YAqDF,CAAC;AAGF,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,MACH,CAAC;AAE7C,eAAO,MAAM,aAAa,QAAS,YAAY,KAAG,MAAM,GAAG,IAQ1D,CAAC"}
|
package/dist/package_meta.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { strip_start, strip_end } from '@ryanatkn/belt/string.js';
|
|
1
|
+
import { strip_start, strip_end, ensure_end } from '@ryanatkn/belt/string.js';
|
|
2
2
|
export const parse_package_meta = (url, package_json, src_json) => {
|
|
3
3
|
const { name } = package_json;
|
|
4
4
|
// TODO hacky
|
|
@@ -19,6 +19,11 @@ export const parse_package_meta = (url, package_json, src_json) => {
|
|
|
19
19
|
const changelog_url = published && repo_url ? repo_url + '/blob/main/CHANGELOG.md' : null;
|
|
20
20
|
const repo_name = parse_repo_name(name);
|
|
21
21
|
const owner_name = repo_url ? strip_start(repo_url, 'https://github.com/').split('/')[0] : null;
|
|
22
|
+
const logo_url = homepage_url
|
|
23
|
+
? ensure_end(homepage_url, '/') +
|
|
24
|
+
(package_json.logo ? strip_start(package_json.logo, '/') : 'favicon.png')
|
|
25
|
+
: null;
|
|
26
|
+
const logo_alt = package_json.logo_alt ?? `logo for ${repo_name}`;
|
|
22
27
|
return {
|
|
23
28
|
url,
|
|
24
29
|
package_json,
|
|
@@ -28,6 +33,8 @@ export const parse_package_meta = (url, package_json, src_json) => {
|
|
|
28
33
|
repo_url,
|
|
29
34
|
owner_name,
|
|
30
35
|
homepage_url,
|
|
36
|
+
logo_url,
|
|
37
|
+
logo_alt,
|
|
31
38
|
npm_url,
|
|
32
39
|
changelog_url,
|
|
33
40
|
published,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte_helpers.d.ts","sourceRoot":"../src/lib/","sources":["svelte_helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"svelte_helpers.d.ts","sourceRoot":"../src/lib/","sources":["svelte_helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAuB,CAAC"}
|
package/dist/svelte_helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SVELTE_MATCHER = /\.svelte
|
|
2
|
-
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)
|
|
1
|
+
export const SVELTE_MATCHER = /\.svelte$/;
|
|
2
|
+
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sveltekit_shim_app.d.ts","sourceRoot":"../src/lib/","sources":["sveltekit_shim_app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AAEnE,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"sveltekit_shim_app.d.ts","sourceRoot":"../src/lib/","sources":["sveltekit_shim_app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,uBAAuB,CAAC;AAEnE,eAAO,MAAM,gCAAgC,QAA0C,CAAC;AACxF,eAAO,MAAM,sCAAsC,QAAgD,CAAC;AAEpG;;;GAGG;AACH,eAAO,MAAM,6BAA6B,qBAMxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,cACjC,uBAAuB,CAAC,UAAU,CAAC,eACjC,uBAAuB,CAAC,YAAY,CAAC,KAC/C,MAKF,CAAC;AAMF,eAAO,MAAM,qCAAqC,QAC5C,OAAO,KACV,MAOF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const SVELTEKIT_SHIM_APP_PATHS_MATCHER = /\/util\/sveltekit_shim_app_paths\.js
|
|
2
|
-
export const SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER = /\/util\/sveltekit_shim_app_environment\.js
|
|
1
|
+
export const SVELTEKIT_SHIM_APP_PATHS_MATCHER = /\/util\/sveltekit_shim_app_paths\.js$/;
|
|
2
|
+
export const SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER = /\/util\/sveltekit_shim_app_environment\.js$/;
|
|
3
3
|
/**
|
|
4
4
|
* Maps SvelteKit `$app` specifiers to their Gro shims.
|
|
5
5
|
* @see https://kit.svelte.dev/docs/modules
|
package/dist/upgrade.task.js
CHANGED
|
@@ -64,8 +64,8 @@ const to_deps = (package_json) => {
|
|
|
64
64
|
: [];
|
|
65
65
|
return prod_deps.concat(dev_deps);
|
|
66
66
|
};
|
|
67
|
-
const EXACT_VERSION_MATCHER =
|
|
68
|
-
const CUSTOM_TAG_MATCHER = /^[\^~><=]*.+-(.+)
|
|
67
|
+
const EXACT_VERSION_MATCHER = /^..*@.+/;
|
|
68
|
+
const CUSTOM_TAG_MATCHER = /^[\^~><=]*.+-(.+)/;
|
|
69
69
|
// TODO hacky and limited
|
|
70
70
|
// TODO probably want to pass through exact deps as well, e.g. @foo/bar@1
|
|
71
71
|
const to_upgrade_items = (deps) => deps.map((dep) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanatkn/gro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.131.0",
|
|
4
4
|
"description": "task runner and toolkit extending SvelteKit",
|
|
5
5
|
"motto": "generate, run, optimize",
|
|
6
6
|
"glyph": "🌰",
|
|
@@ -49,13 +49,13 @@
|
|
|
49
49
|
"typescript"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@ryanatkn/belt": "^0.24.
|
|
52
|
+
"@ryanatkn/belt": "^0.24.9",
|
|
53
53
|
"chokidar": "^3.6.0",
|
|
54
54
|
"dotenv": "^16.4.5",
|
|
55
55
|
"es-module-lexer": "^1.5.4",
|
|
56
56
|
"esm-env": "^1.0.0",
|
|
57
57
|
"mri": "^1.2.0",
|
|
58
|
-
"prettier": "^3.3.
|
|
58
|
+
"prettier": "^3.3.3",
|
|
59
59
|
"prettier-plugin-svelte": "^3.2.5",
|
|
60
60
|
"ts-morph": "^23.0.0",
|
|
61
61
|
"tslib": "^2.6.3",
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@changesets/changelog-git": "^0.2.0",
|
|
70
70
|
"@changesets/types": "^6.0.0",
|
|
71
|
-
"@ryanatkn/eslint-config": "^0.4.
|
|
72
|
-
"@ryanatkn/fuz": "^0.
|
|
73
|
-
"@ryanatkn/moss": "^0.
|
|
71
|
+
"@ryanatkn/eslint-config": "^0.4.2",
|
|
72
|
+
"@ryanatkn/fuz": "^0.111.0",
|
|
73
|
+
"@ryanatkn/moss": "^0.8.0",
|
|
74
74
|
"@sveltejs/adapter-static": "^3.0.2",
|
|
75
75
|
"@sveltejs/kit": "^2.5.18",
|
|
76
76
|
"@sveltejs/package": "^2.3.2",
|
|
@@ -78,12 +78,12 @@
|
|
|
78
78
|
"@types/fs-extra": "^11.0.4",
|
|
79
79
|
"@types/node": "^20.14.10",
|
|
80
80
|
"esbuild": "^0.21.5",
|
|
81
|
-
"eslint": "^9.
|
|
81
|
+
"eslint": "^9.7.0",
|
|
82
82
|
"eslint-plugin-svelte": "^2.42.0",
|
|
83
|
-
"svelte": "^5.0.0-next.
|
|
83
|
+
"svelte": "^5.0.0-next.184",
|
|
84
84
|
"svelte-check": "^3.8.4",
|
|
85
85
|
"typescript": "^5.5.3",
|
|
86
|
-
"typescript-eslint": "^8.0.0-alpha.
|
|
86
|
+
"typescript-eslint": "^8.0.0-alpha.44",
|
|
87
87
|
"uvu": "^0.5.6"
|
|
88
88
|
},
|
|
89
89
|
"prettier": {
|
package/src/lib/changelog.ts
CHANGED
|
@@ -37,7 +37,7 @@ type Parsed_Changelog = z.infer<typeof Parsed_Changelog>;
|
|
|
37
37
|
const parse_changelog = (contents: string): Parsed_Changelog => contents.split('\n');
|
|
38
38
|
const serialize_changelog = (parsed: Parsed_Changelog): string => parsed.join('\n');
|
|
39
39
|
|
|
40
|
-
const LINE_WITH_SHA_MATCHER = /^- ([a-z0-9]{7,8}):
|
|
40
|
+
const LINE_WITH_SHA_MATCHER = /^- ([a-z0-9]{7,8}): /;
|
|
41
41
|
|
|
42
42
|
const map_changelog = async (
|
|
43
43
|
parsed: Parsed_Changelog,
|
|
@@ -96,7 +96,9 @@ export const task: Task<Args> = {
|
|
|
96
96
|
await spawn_cli(found_changeset_cli, ['init'], log);
|
|
97
97
|
|
|
98
98
|
const access =
|
|
99
|
-
access_arg ?? package_json.private
|
|
99
|
+
(access_arg ?? package_json.private)
|
|
100
|
+
? CHANGESET_RESTRICTED_ACCESS
|
|
101
|
+
: CHANGESET_PUBLIC_ACCESS;
|
|
100
102
|
|
|
101
103
|
const access_color = access === CHANGESET_RESTRICTED_ACCESS ? blue : red;
|
|
102
104
|
log.info('initing changeset with ' + access_color(access) + ' access');
|
package/src/lib/config.ts
CHANGED
|
@@ -58,7 +58,7 @@ export type Create_Gro_Config = (
|
|
|
58
58
|
base_config: Gro_Config,
|
|
59
59
|
) => Raw_Gro_Config | Promise<Raw_Gro_Config>;
|
|
60
60
|
|
|
61
|
-
export const
|
|
61
|
+
export const create_empty_gro_config = (): Gro_Config => ({
|
|
62
62
|
plugins: () => [],
|
|
63
63
|
map_package_json: default_map_package_json,
|
|
64
64
|
task_root_dirs: [
|
|
@@ -97,14 +97,14 @@ const default_map_package_json: Map_Package_Json = (package_json) => {
|
|
|
97
97
|
return package_json;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
export const DEFAULT_EXPORTS_EXCLUDER = /(\.md|\.(test|ignore)\.|\/(test|fixtures|ignore)\/)
|
|
100
|
+
export const DEFAULT_EXPORTS_EXCLUDER = /(\.md|\.(test|ignore)\.|\/(test|fixtures|ignore)\/)/;
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Transforms a `Raw_Gro_Config` to the more strict `Gro_Config`.
|
|
104
104
|
* This allows users to provide a more relaxed config.
|
|
105
105
|
*/
|
|
106
|
-
export const
|
|
107
|
-
const empty_config =
|
|
106
|
+
export const normalize_gro_config = (raw_config: Raw_Gro_Config): Gro_Config => {
|
|
107
|
+
const empty_config = create_empty_gro_config();
|
|
108
108
|
// All of the raw config properties are optional,
|
|
109
109
|
// so fall back to the empty values when `undefined`.
|
|
110
110
|
const {
|
|
@@ -129,8 +129,10 @@ export interface Gro_Config_Module {
|
|
|
129
129
|
readonly default: Raw_Gro_Config | Create_Gro_Config;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
export const
|
|
133
|
-
const default_config =
|
|
132
|
+
export const load_gro_config = async (dir = paths.root): Promise<Gro_Config> => {
|
|
133
|
+
const default_config = normalize_gro_config(
|
|
134
|
+
await create_default_config(create_empty_gro_config()),
|
|
135
|
+
);
|
|
134
136
|
const config_path = join(dir, GRO_CONFIG_PATH);
|
|
135
137
|
if (!existsSync(config_path)) {
|
|
136
138
|
// No user config file found, so return the default.
|
|
@@ -138,15 +140,15 @@ export const load_config = async (dir = paths.root): Promise<Gro_Config> => {
|
|
|
138
140
|
}
|
|
139
141
|
// Import the user's `gro.config.ts`.
|
|
140
142
|
const config_module = await import(config_path);
|
|
141
|
-
|
|
142
|
-
return
|
|
143
|
+
validate_gro_config_module(config_module, config_path);
|
|
144
|
+
return normalize_gro_config(
|
|
143
145
|
typeof config_module.default === 'function'
|
|
144
146
|
? await config_module.default(default_config)
|
|
145
147
|
: config_module.default,
|
|
146
148
|
);
|
|
147
149
|
};
|
|
148
150
|
|
|
149
|
-
export const
|
|
151
|
+
export const validate_gro_config_module: (
|
|
150
152
|
config_module: any,
|
|
151
153
|
config_path: string,
|
|
152
154
|
) => asserts config_module is Gro_Config_Module = (config_module, config_path) => {
|
|
@@ -81,7 +81,7 @@ export const esbuild_plugin_external_worker = ({
|
|
|
81
81
|
return building;
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
build.onResolve({filter: /\.worker(|\.js|\.ts)$/
|
|
84
|
+
build.onResolve({filter: /\.worker(|\.js|\.ts)$/}, async ({path, resolveDir}) => {
|
|
85
85
|
const parsed = resolve_specifier(path, resolveDir);
|
|
86
86
|
const {specifier, path_id, namespace} = parsed;
|
|
87
87
|
const build_result = await build_worker(path_id);
|
|
@@ -83,7 +83,7 @@ const convert_svelte_message_to_esbuild = (
|
|
|
83
83
|
): esbuild.PartialMessage => {
|
|
84
84
|
let location: esbuild.PartialMessage['location'] = null;
|
|
85
85
|
if (start && end) {
|
|
86
|
-
const lineText = source.split(/\r\n|\r|\n/
|
|
86
|
+
const lineText = source.split(/\r\n|\r|\n/g)[start.line - 1];
|
|
87
87
|
const lineEnd = start.line === end.line ? end.column : lineText.length;
|
|
88
88
|
location = {
|
|
89
89
|
file: path,
|
|
@@ -12,18 +12,18 @@ import {resolve_specifier} from './resolve_specifier.js';
|
|
|
12
12
|
export const esbuild_plugin_sveltekit_local_imports = (): esbuild.Plugin => ({
|
|
13
13
|
name: 'sveltekit_local_imports',
|
|
14
14
|
setup: (build) => {
|
|
15
|
-
build.onResolve({filter: /^(\/|\.)/
|
|
15
|
+
build.onResolve({filter: /^(\/|\.)/}, (args) => {
|
|
16
16
|
const {path, importer} = args;
|
|
17
17
|
if (!importer) return {path};
|
|
18
18
|
const {path_id, namespace} = resolve_specifier(path, dirname(importer));
|
|
19
19
|
return {path: path_id, namespace}; // `namespace` may be `undefined`, but esbuild needs the absolute path for json etc
|
|
20
20
|
});
|
|
21
|
-
build.onLoad({filter:
|
|
21
|
+
build.onLoad({filter: /.*/, namespace: 'sveltekit_local_imports_ts'}, async ({path}) => ({
|
|
22
22
|
contents: await readFile(path),
|
|
23
23
|
loader: 'ts',
|
|
24
24
|
resolveDir: dirname(path),
|
|
25
25
|
}));
|
|
26
|
-
build.onLoad({filter:
|
|
26
|
+
build.onLoad({filter: /.*/, namespace: 'sveltekit_local_imports_js'}, async ({path}) => ({
|
|
27
27
|
contents: await readFile(path),
|
|
28
28
|
resolveDir: dirname(path),
|
|
29
29
|
}));
|
|
@@ -20,21 +20,21 @@ export const esbuild_plugin_sveltekit_shim_app = ({
|
|
|
20
20
|
}: Options): esbuild.Plugin => ({
|
|
21
21
|
name: 'sveltekit_shim_app',
|
|
22
22
|
setup: (build) => {
|
|
23
|
-
build.onResolve({filter: /^\$app\/(forms|navigation|stores)$/
|
|
23
|
+
build.onResolve({filter: /^\$app\/(forms|navigation|stores)$/}, ({path, ...rest}) =>
|
|
24
24
|
build.resolve(sveltekit_shim_app_specifiers.get(path)!, rest),
|
|
25
25
|
);
|
|
26
|
-
build.onResolve({filter: /^\$app\/paths$/
|
|
26
|
+
build.onResolve({filter: /^\$app\/paths$/}, ({path}) => ({
|
|
27
27
|
path: sveltekit_shim_app_specifiers.get(path)!,
|
|
28
28
|
namespace: 'sveltekit_shim_app_paths',
|
|
29
29
|
}));
|
|
30
|
-
build.onLoad({filter:
|
|
30
|
+
build.onLoad({filter: /.*/, namespace: 'sveltekit_shim_app_paths'}, () => ({
|
|
31
31
|
contents: render_sveltekit_shim_app_paths(base_url, assets_url),
|
|
32
32
|
}));
|
|
33
|
-
build.onResolve({filter: /^\$app\/environment$/
|
|
33
|
+
build.onResolve({filter: /^\$app\/environment$/}, ({path}) => ({
|
|
34
34
|
path: sveltekit_shim_app_specifiers.get(path)!,
|
|
35
35
|
namespace: 'sveltekit_shim_app_environment',
|
|
36
36
|
}));
|
|
37
|
-
build.onLoad({filter:
|
|
37
|
+
build.onLoad({filter: /.*/, namespace: 'sveltekit_shim_app_environment'}, () => ({
|
|
38
38
|
contents: render_sveltekit_shim_app_environment(dev),
|
|
39
39
|
}));
|
|
40
40
|
},
|
|
@@ -22,9 +22,9 @@ export const esbuild_plugin_sveltekit_shim_env = ({
|
|
|
22
22
|
name: 'sveltekit_shim_env',
|
|
23
23
|
setup: (build) => {
|
|
24
24
|
const namespace = 'sveltekit_shim_env';
|
|
25
|
-
const filter = /^\$env\/(static|dynamic)\/(public|private)
|
|
25
|
+
const filter = /^\$env\/(static|dynamic)\/(public|private)$/;
|
|
26
26
|
build.onResolve({filter}, ({path}) => ({path, namespace}));
|
|
27
|
-
build.onLoad({filter:
|
|
27
|
+
build.onLoad({filter: /.*/, namespace}, ({path}) => {
|
|
28
28
|
const matches = filter.exec(path);
|
|
29
29
|
const mode = matches![1] as 'static' | 'dynamic';
|
|
30
30
|
const visibility = matches![2] as 'public' | 'private';
|
package/src/lib/github.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {Fetch_Value_Cache, fetch_value} from '@ryanatkn/belt/fetch.js';
|
|
|
6
6
|
import type {Logger} from '@ryanatkn/belt/log.js';
|
|
7
7
|
import {z} from 'zod';
|
|
8
8
|
|
|
9
|
-
export const GITHUB_REPO_MATCHER = /.+github.com\/(.+)\/(.+)
|
|
9
|
+
export const GITHUB_REPO_MATCHER = /.+github.com\/(.+)\/(.+)/;
|
|
10
10
|
|
|
11
11
|
export const Github_Pull_Request = z.object({
|
|
12
12
|
url: z.string(),
|
package/src/lib/input_path.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type Raw_Input_Path = Flavored<z.infer<typeof Raw_Input_Path>, 'Raw_Input
|
|
|
30
30
|
*/
|
|
31
31
|
export const to_input_path = (
|
|
32
32
|
raw_input_path: Raw_Input_Path,
|
|
33
|
-
root_path = process.cwd(), // TODO @
|
|
33
|
+
root_path = process.cwd(), // TODO @many isn't passed in anywhere, maybe hoist to `invoke_task` and others
|
|
34
34
|
): Input_Path => {
|
|
35
35
|
if (raw_input_path.startsWith(GRO_PACKAGE_DIR)) {
|
|
36
36
|
return GRO_DIST_DIR + strip_start(raw_input_path, GRO_PACKAGE_DIR);
|
|
@@ -42,7 +42,7 @@ export const to_input_path = (
|
|
|
42
42
|
|
|
43
43
|
export const to_input_paths = (
|
|
44
44
|
raw_input_paths: Raw_Input_Path[],
|
|
45
|
-
root_path?: string, // TODO @
|
|
45
|
+
root_path?: string, // TODO @many isn't passed in anywhere, maybe hoist to `invoke_task` and others
|
|
46
46
|
): Input_Path[] => raw_input_paths.map((p) => to_input_path(p, root_path));
|
|
47
47
|
|
|
48
48
|
export interface Possible_Path {
|
package/src/lib/invoke.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {attach_process_error_handlers} from '@ryanatkn/belt/process.js';
|
|
|
2
2
|
|
|
3
3
|
import {invoke_task} from './invoke_task.js';
|
|
4
4
|
import {to_task_args} from './args.js';
|
|
5
|
-
import {
|
|
5
|
+
import {load_gro_config} from './config.js';
|
|
6
6
|
import {sveltekit_sync_if_obviously_needed} from './sveltekit_helpers.js';
|
|
7
7
|
|
|
8
8
|
/*
|
|
@@ -24,4 +24,4 @@ attach_process_error_handlers((err) =>
|
|
|
24
24
|
await sveltekit_sync_if_obviously_needed();
|
|
25
25
|
|
|
26
26
|
const {task_name, args} = to_task_args();
|
|
27
|
-
await invoke_task(task_name, args, await
|
|
27
|
+
await invoke_task(task_name, args, await load_gro_config());
|
package/src/lib/loader.ts
CHANGED
|
@@ -75,10 +75,10 @@ const final_ts_transform_options: esbuild.TransformOptions = {
|
|
|
75
75
|
|
|
76
76
|
const aliases = Object.entries({$lib: 'src/lib', ...alias});
|
|
77
77
|
|
|
78
|
-
const TS_MATCHER = /\.(ts|tsx|mts|cts)
|
|
79
|
-
const JSON_MATCHER = /\.(json)
|
|
80
|
-
const NOOP_MATCHER = /\.(css|svg)
|
|
81
|
-
const ENV_MATCHER = /src\/lib\/\$env\/(static|dynamic)\/(public|private)
|
|
78
|
+
const TS_MATCHER = /\.(ts|tsx|mts|cts)$/;
|
|
79
|
+
const JSON_MATCHER = /\.(json)$/;
|
|
80
|
+
const NOOP_MATCHER = /\.(css|svg)$/; // TODO others? configurable?
|
|
81
|
+
const ENV_MATCHER = /src\/lib\/\$env\/(static|dynamic)\/(public|private)$/;
|
|
82
82
|
const NODE_MODULES_MATCHER = new RegExp(escape_regexp('/' + NODE_MODULES_DIRNAME + '/'), 'u');
|
|
83
83
|
|
|
84
84
|
const package_json_cache: Record<string, Package_Json> = {};
|
package/src/lib/package.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type {Src_Json} from './src_json.js';
|
|
|
5
5
|
|
|
6
6
|
export const package_json = {
|
|
7
7
|
name: '@ryanatkn/gro',
|
|
8
|
-
version: '0.
|
|
8
|
+
version: '0.131.0',
|
|
9
9
|
description: 'task runner and toolkit extending SvelteKit',
|
|
10
10
|
motto: 'generate, run, optimize',
|
|
11
11
|
glyph: '🌰',
|
|
@@ -44,13 +44,13 @@ export const package_json = {
|
|
|
44
44
|
'typescript',
|
|
45
45
|
],
|
|
46
46
|
dependencies: {
|
|
47
|
-
'@ryanatkn/belt': '^0.24.
|
|
47
|
+
'@ryanatkn/belt': '^0.24.9',
|
|
48
48
|
chokidar: '^3.6.0',
|
|
49
49
|
dotenv: '^16.4.5',
|
|
50
50
|
'es-module-lexer': '^1.5.4',
|
|
51
51
|
'esm-env': '^1.0.0',
|
|
52
52
|
mri: '^1.2.0',
|
|
53
|
-
prettier: '^3.3.
|
|
53
|
+
prettier: '^3.3.3',
|
|
54
54
|
'prettier-plugin-svelte': '^3.2.5',
|
|
55
55
|
'ts-morph': '^23.0.0',
|
|
56
56
|
tslib: '^2.6.3',
|
|
@@ -60,9 +60,9 @@ export const package_json = {
|
|
|
60
60
|
devDependencies: {
|
|
61
61
|
'@changesets/changelog-git': '^0.2.0',
|
|
62
62
|
'@changesets/types': '^6.0.0',
|
|
63
|
-
'@ryanatkn/eslint-config': '^0.4.
|
|
64
|
-
'@ryanatkn/fuz': '^0.
|
|
65
|
-
'@ryanatkn/moss': '^0.
|
|
63
|
+
'@ryanatkn/eslint-config': '^0.4.2',
|
|
64
|
+
'@ryanatkn/fuz': '^0.111.0',
|
|
65
|
+
'@ryanatkn/moss': '^0.8.0',
|
|
66
66
|
'@sveltejs/adapter-static': '^3.0.2',
|
|
67
67
|
'@sveltejs/kit': '^2.5.18',
|
|
68
68
|
'@sveltejs/package': '^2.3.2',
|
|
@@ -70,12 +70,12 @@ export const package_json = {
|
|
|
70
70
|
'@types/fs-extra': '^11.0.4',
|
|
71
71
|
'@types/node': '^20.14.10',
|
|
72
72
|
esbuild: '^0.21.5',
|
|
73
|
-
eslint: '^9.
|
|
73
|
+
eslint: '^9.7.0',
|
|
74
74
|
'eslint-plugin-svelte': '^2.42.0',
|
|
75
|
-
svelte: '^5.0.0-next.
|
|
75
|
+
svelte: '^5.0.0-next.184',
|
|
76
76
|
'svelte-check': '^3.8.4',
|
|
77
77
|
typescript: '^5.5.3',
|
|
78
|
-
'typescript-eslint': '^8.0.0-alpha.
|
|
78
|
+
'typescript-eslint': '^8.0.0-alpha.44',
|
|
79
79
|
uvu: '^0.5.6',
|
|
80
80
|
},
|
|
81
81
|
prettier: {
|
|
@@ -272,7 +272,7 @@ export const package_json = {
|
|
|
272
272
|
|
|
273
273
|
export const src_json = {
|
|
274
274
|
name: '@ryanatkn/gro',
|
|
275
|
-
version: '0.
|
|
275
|
+
version: '0.131.0',
|
|
276
276
|
modules: {
|
|
277
277
|
'.': {
|
|
278
278
|
path: 'index.ts',
|
|
@@ -373,13 +373,13 @@ export const src_json = {
|
|
|
373
373
|
{name: 'Gro_Config', kind: 'type'},
|
|
374
374
|
{name: 'Raw_Gro_Config', kind: 'type'},
|
|
375
375
|
{name: 'Create_Gro_Config', kind: 'type'},
|
|
376
|
-
{name: '
|
|
376
|
+
{name: 'create_empty_gro_config', kind: 'function'},
|
|
377
377
|
{name: 'DEFAULT_SEARCH_EXCLUDER', kind: 'variable'},
|
|
378
378
|
{name: 'DEFAULT_EXPORTS_EXCLUDER', kind: 'variable'},
|
|
379
|
-
{name: '
|
|
379
|
+
{name: 'normalize_gro_config', kind: 'function'},
|
|
380
380
|
{name: 'Gro_Config_Module', kind: 'type'},
|
|
381
|
-
{name: '
|
|
382
|
-
{name: '
|
|
381
|
+
{name: 'load_gro_config', kind: 'function'},
|
|
382
|
+
{name: 'validate_gro_config_module', kind: 'function'},
|
|
383
383
|
],
|
|
384
384
|
},
|
|
385
385
|
'./deploy.task.js': {
|
package/src/lib/package_json.ts
CHANGED
|
@@ -12,11 +12,11 @@ import {search_fs} from './search_fs.js';
|
|
|
12
12
|
import {has_sveltekit_library} from './sveltekit_helpers.js';
|
|
13
13
|
import {GITHUB_REPO_MATCHER} from './github.js';
|
|
14
14
|
|
|
15
|
-
// TODO @
|
|
15
|
+
// TODO @many belongs elsewhere
|
|
16
16
|
export const Url = z.string();
|
|
17
17
|
export type Url = Flavored<z.infer<typeof Url>, 'Url'>;
|
|
18
18
|
|
|
19
|
-
// TODO @
|
|
19
|
+
// TODO @many belongs elsewhere
|
|
20
20
|
export const Email = z.string();
|
|
21
21
|
export type Email = Flavored<z.infer<typeof Email>, 'Email'>;
|
|
22
22
|
|
package/src/lib/package_meta.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {strip_start, strip_end} from '@ryanatkn/belt/string.js';
|
|
1
|
+
import {strip_start, strip_end, ensure_end} from '@ryanatkn/belt/string.js';
|
|
2
2
|
|
|
3
3
|
import type {Package_Json, Url} from './package_json.js';
|
|
4
4
|
import type {Src_Json} from './src_json.js';
|
|
@@ -8,15 +8,17 @@ export interface Package_Meta {
|
|
|
8
8
|
url: Url;
|
|
9
9
|
package_json: Package_Json;
|
|
10
10
|
src_json: Src_Json;
|
|
11
|
-
name: string; // '@ryanatkn/fuz_library'
|
|
11
|
+
name: string; // '@ryanatkn/fuz_library'
|
|
12
12
|
repo_name: string; // fuz_library
|
|
13
|
-
repo_url: Url | null; // 'https://github.com/ryanatkn/fuz'
|
|
13
|
+
repo_url: Url | null; // 'https://github.com/ryanatkn/fuz'
|
|
14
14
|
/**
|
|
15
15
|
* the is the github user/org, not npm
|
|
16
16
|
*/
|
|
17
|
-
owner_name: string | null; // 'fuz-dev'
|
|
18
|
-
homepage_url: Url | null; // 'https://www.fuz.dev/'
|
|
19
|
-
|
|
17
|
+
owner_name: string | null; // 'fuz-dev'
|
|
18
|
+
homepage_url: Url | null; // 'https://www.fuz.dev/'
|
|
19
|
+
logo_url: Url | null; // 'https://www.fuz.dev/logo.svg' falling back to 'https://www.fuz.dev/favicon.png'
|
|
20
|
+
logo_alt: string; // 'icon for gro'
|
|
21
|
+
npm_url: Url | null; // 'https://npmjs.com/package/@ryanatkn/fuz_library'
|
|
20
22
|
changelog_url: Url | null;
|
|
21
23
|
published: boolean;
|
|
22
24
|
}
|
|
@@ -56,6 +58,13 @@ export const parse_package_meta = (
|
|
|
56
58
|
|
|
57
59
|
const owner_name = repo_url ? strip_start(repo_url, 'https://github.com/').split('/')[0] : null;
|
|
58
60
|
|
|
61
|
+
const logo_url = homepage_url
|
|
62
|
+
? ensure_end(homepage_url, '/') +
|
|
63
|
+
(package_json.logo ? strip_start(package_json.logo, '/') : 'favicon.png')
|
|
64
|
+
: null;
|
|
65
|
+
|
|
66
|
+
const logo_alt = package_json.logo_alt ?? `logo for ${repo_name}`;
|
|
67
|
+
|
|
59
68
|
return {
|
|
60
69
|
url,
|
|
61
70
|
package_json,
|
|
@@ -65,6 +74,8 @@ export const parse_package_meta = (
|
|
|
65
74
|
repo_url,
|
|
66
75
|
owner_name,
|
|
67
76
|
homepage_url,
|
|
77
|
+
logo_url,
|
|
78
|
+
logo_alt,
|
|
68
79
|
npm_url,
|
|
69
80
|
changelog_url,
|
|
70
81
|
published,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SVELTE_MATCHER = /\.svelte
|
|
2
|
-
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)
|
|
1
|
+
export const SVELTE_MATCHER = /\.svelte$/;
|
|
2
|
+
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type {Parsed_Sveltekit_Config} from './sveltekit_config.js';
|
|
2
2
|
|
|
3
|
-
export const SVELTEKIT_SHIM_APP_PATHS_MATCHER = /\/util\/sveltekit_shim_app_paths\.js
|
|
4
|
-
export const SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER =
|
|
5
|
-
/\/util\/sveltekit_shim_app_environment\.js$/u;
|
|
3
|
+
export const SVELTEKIT_SHIM_APP_PATHS_MATCHER = /\/util\/sveltekit_shim_app_paths\.js$/;
|
|
4
|
+
export const SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER = /\/util\/sveltekit_shim_app_environment\.js$/;
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Maps SvelteKit `$app` specifiers to their Gro shims.
|
package/src/lib/task.ts
CHANGED
|
@@ -206,7 +206,7 @@ export type Load_Tasks_Failure = Load_Modules_Failure<Task_Module_Meta>;
|
|
|
206
206
|
|
|
207
207
|
export const load_tasks = async (
|
|
208
208
|
found_tasks: Found_Tasks,
|
|
209
|
-
root_path: Path_Id = process.cwd(), // TODO @
|
|
209
|
+
root_path: Path_Id = process.cwd(), // TODO @many isn't passed in anywhere, maybe hoist to `invoke_task` and others
|
|
210
210
|
): Promise<Load_Tasks_Result> => {
|
|
211
211
|
const loaded_modules = await load_modules(
|
|
212
212
|
found_tasks.resolved_input_files,
|
package/src/lib/upgrade.task.ts
CHANGED
|
@@ -87,8 +87,8 @@ const to_deps = (package_json: Package_Json): Dep[] => {
|
|
|
87
87
|
return prod_deps.concat(dev_deps);
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
const EXACT_VERSION_MATCHER =
|
|
91
|
-
const CUSTOM_TAG_MATCHER = /^[\^~><=]*.+-(.+)
|
|
90
|
+
const EXACT_VERSION_MATCHER = /^..*@.+/;
|
|
91
|
+
const CUSTOM_TAG_MATCHER = /^[\^~><=]*.+-(.+)/;
|
|
92
92
|
|
|
93
93
|
// TODO hacky and limited
|
|
94
94
|
// TODO probably want to pass through exact deps as well, e.g. @foo/bar@1
|