neon 2.47.0 → 3.1.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/README.md +54 -0
- package/dist/_shared/auth_selection.js +76 -79
- package/dist/_shared/credentials.js +166 -187
- package/dist/_shared/env-core/env.js +395 -0
- package/dist/_shared/env-core/reuse-secrets.js +179 -0
- package/dist/_shared/paths.js +129 -126
- package/dist/_shared/profiles.js +192 -242
- package/dist/_shared/secure_file.js +36 -38
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/analytics.js +163 -207
- package/dist/api.js +815 -758
- package/dist/auth.js +121 -141
- package/dist/auth_context.js +39 -53
- package/dist/cli.js +4 -7
- package/dist/commands/api.js +220 -250
- package/dist/commands/api_keys.js +251 -314
- package/dist/commands/auth.js +283 -328
- package/dist/commands/bootstrap.js +372 -437
- package/dist/commands/branches.js +304 -455
- package/dist/commands/bucket.js +374 -514
- package/dist/commands/checkout.js +213 -298
- package/dist/commands/config.js +575 -658
- package/dist/commands/connection_string.js +137 -165
- package/dist/commands/data_api.js +238 -260
- package/dist/commands/databases.js +67 -76
- package/dist/commands/deploy.js +31 -25
- package/dist/commands/dev.js +642 -681
- package/dist/commands/diff.js +156 -200
- package/dist/commands/env.js +243 -303
- package/dist/commands/functions.js +275 -341
- package/dist/commands/index.js +70 -65
- package/dist/commands/init.js +84 -119
- package/dist/commands/inspect.js +55 -55
- package/dist/commands/ip_allow.js +88 -120
- package/dist/commands/link.js +874 -1019
- package/dist/commands/logs.js +291 -0
- package/dist/commands/neon_auth.js +725 -933
- package/dist/commands/operations.js +34 -25
- package/dist/commands/orgs.js +28 -18
- package/dist/commands/profile.js +614 -845
- package/dist/commands/projects.js +313 -373
- package/dist/commands/psql.js +60 -58
- package/dist/commands/roles.js +55 -58
- package/dist/commands/schema_diff.js +87 -131
- package/dist/commands/set_context.js +34 -26
- package/dist/commands/snapshots.js +288 -413
- package/dist/commands/status.js +41 -37
- package/dist/commands/user.js +21 -10
- package/dist/commands/vpc_endpoints.js +85 -113
- package/dist/config.js +7 -6
- package/dist/config_format.js +50 -66
- package/dist/config_template.js +128 -157
- package/dist/context.js +183 -235
- package/dist/current_branch_fast_path.js +40 -49
- package/dist/dev/env.js +313 -394
- package/dist/dev/functions.js +54 -64
- package/dist/dev/inputs.js +46 -58
- package/dist/dev/runtime.js +135 -164
- package/dist/dev/websocket.js +766 -959
- package/dist/env.js +27 -33
- package/dist/env_file.js +118 -132
- package/dist/env_services.js +36 -38
- package/dist/errors.js +57 -68
- package/dist/functions_api.js +45 -43
- package/dist/help.js +189 -140
- package/dist/index.js +182 -257
- package/dist/init/agents.js +137 -118
- package/dist/init/auth.js +58 -68
- package/dist/init/bootstrap.js +325 -396
- package/dist/init/build_config.js +4 -2
- package/dist/init/detect_agent.js +56 -101
- package/dist/init/editors.js +35 -52
- package/dist/init/enrich_output.js +51 -66
- package/dist/init/extension.js +134 -171
- package/dist/init/inspect.js +179 -266
- package/dist/init/interactive.js +510 -622
- package/dist/init/neonctl.js +117 -168
- package/dist/init/orchestrate.js +157 -173
- package/dist/init/phases/auth.js +188 -202
- package/dist/init/phases/cleanup.js +23 -23
- package/dist/init/phases/db.js +251 -277
- package/dist/init/phases/getting_started.js +213 -223
- package/dist/init/phases/mcp.js +174 -224
- package/dist/init/phases/migrations.js +247 -248
- package/dist/init/phases/neon_auth.js +114 -133
- package/dist/init/phases/setup.js +546 -703
- package/dist/init/phases/skills.js +75 -86
- package/dist/init/phases/status.js +72 -67
- package/dist/init/resolve_context.js +102 -99
- package/dist/init/route_command.js +91 -98
- package/dist/init/skills.js +174 -218
- package/dist/init/vsix.js +77 -99
- package/dist/log.js +17 -16
- package/dist/neon_services.js +104 -129
- package/dist/parameters.gen.js +481 -471
- package/dist/pkg.js +17 -19
- package/dist/profile_keys.js +44 -47
- package/dist/psql/cli.js +44 -47
- package/dist/psql/command/cmd_cond.js +231 -406
- package/dist/psql/command/cmd_connect.js +557 -764
- package/dist/psql/command/cmd_copy.js +727 -983
- package/dist/psql/command/cmd_describe.js +1499 -1688
- package/dist/psql/command/cmd_format.js +733 -905
- package/dist/psql/command/cmd_io.js +1293 -2082
- package/dist/psql/command/cmd_lo.js +297 -359
- package/dist/psql/command/cmd_meta.js +727 -878
- package/dist/psql/command/cmd_misc.js +138 -172
- package/dist/psql/command/cmd_pipeline.js +547 -1099
- package/dist/psql/command/cmd_restrict.js +119 -155
- package/dist/psql/command/cmd_show.js +529 -688
- package/dist/psql/command/dispatch.js +261 -325
- package/dist/psql/command/inputQueue.js +35 -33
- package/dist/psql/command/shared.js +49 -63
- package/dist/psql/complete/filenames.js +90 -133
- package/dist/psql/complete/index.js +59 -97
- package/dist/psql/complete/matcher.js +236 -300
- package/dist/psql/complete/psqlVars.js +218 -223
- package/dist/psql/complete/queries.js +159 -177
- package/dist/psql/complete/rules.js +1493 -2299
- package/dist/psql/core/common.js +762 -1180
- package/dist/psql/core/help.js +456 -546
- package/dist/psql/core/mainloop.js +692 -1302
- package/dist/psql/core/prompt.js +391 -408
- package/dist/psql/core/settings.js +429 -644
- package/dist/psql/core/sqlHelp.js +480 -554
- package/dist/psql/core/startup.js +626 -815
- package/dist/psql/core/syncVars.js +67 -110
- package/dist/psql/core/variables.js +156 -278
- package/dist/psql/describe/formatters.js +884 -1285
- package/dist/psql/describe/processNamePattern.js +173 -260
- package/dist/psql/describe/queries.js +1368 -2403
- package/dist/psql/describe/versionGate.js +32 -41
- package/dist/psql/index.js +1414 -1927
- package/dist/psql/io/history.js +232 -271
- package/dist/psql/io/input.js +103 -108
- package/dist/psql/io/lineEditor/buffer.js +238 -319
- package/dist/psql/io/lineEditor/complete.js +135 -213
- package/dist/psql/io/lineEditor/filename.js +139 -148
- package/dist/psql/io/lineEditor/index.js +653 -870
- package/dist/psql/io/lineEditor/keymap.js +544 -702
- package/dist/psql/io/lineEditor/vt100.js +294 -341
- package/dist/psql/io/pgpass.js +158 -187
- package/dist/psql/io/pgservice.js +146 -183
- package/dist/psql/io/psqlrc.js +328 -403
- package/dist/psql/print/aligned.js +1020 -1683
- package/dist/psql/print/asciidoc.js +180 -214
- package/dist/psql/print/crosstab.js +281 -442
- package/dist/psql/print/csv.js +48 -70
- package/dist/psql/print/html.js +195 -226
- package/dist/psql/print/json.js +75 -88
- package/dist/psql/print/latex.js +291 -364
- package/dist/psql/print/pager.js +171 -242
- package/dist/psql/print/troff.js +194 -226
- package/dist/psql/print/unaligned.js +69 -95
- package/dist/psql/print/units.js +167 -169
- package/dist/psql/scanner/slash.js +428 -483
- package/dist/psql/scanner/sql.js +445 -889
- package/dist/psql/scanner/stringutils.js +309 -379
- package/dist/psql/types/index.js +2 -7
- package/dist/psql/types/scanner.js +25 -22
- package/dist/psql/wire/connection.js +2042 -2803
- package/dist/psql/wire/copy.js +84 -100
- package/dist/psql/wire/notify.js +39 -59
- package/dist/psql/wire/pipeline.js +305 -518
- package/dist/psql/wire/protocol.js +349 -417
- package/dist/psql/wire/sasl.js +180 -265
- package/dist/psql/wire/tls.js +400 -561
- package/dist/storage_api.js +115 -129
- package/dist/test_utils/fixtures.js +94 -113
- package/dist/test_utils/oauth_server.js +10 -7
- package/dist/test_utils/project_dir.js +33 -0
- package/dist/utils/ai_gateway_notice.js +131 -162
- package/dist/utils/api_enums.js +21 -28
- package/dist/utils/auth.js +10 -4
- package/dist/utils/branch_notice.js +20 -19
- package/dist/utils/branch_picker.js +83 -89
- package/dist/utils/cli_name.js +15 -12
- package/dist/utils/compute_units.js +20 -27
- package/dist/utils/config_diff.js +127 -158
- package/dist/utils/enrichers.js +95 -148
- package/dist/utils/esbuild.js +133 -147
- package/dist/utils/flags.js +35 -47
- package/dist/utils/formats.js +8 -15
- package/dist/utils/git_diff.js +69 -80
- package/dist/utils/inspect_db.js +101 -143
- package/dist/utils/inspect_queries.js +179 -142
- package/dist/utils/middlewares.js +37 -44
- package/dist/utils/openapi.js +87 -99
- package/dist/utils/package_manager.js +312 -110
- package/dist/utils/point_in_time.js +49 -53
- package/dist/utils/psql.js +89 -106
- package/dist/utils/service_picker.js +55 -58
- package/dist/utils/string.js +5 -5
- package/dist/utils/ui.js +38 -55
- package/dist/utils/write_sync.js +26 -35
- package/dist/utils/zip.js +4 -3
- package/dist/writer.js +67 -87
- package/package.json +9 -7
package/dist/_shared/paths.js
CHANGED
|
@@ -1,148 +1,151 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* # Where the Neon CLIs keep their files on disk
|
|
3
|
-
*
|
|
4
|
-
**Deliberately impure.** It reads environment variables and touches the filesystem, which
|
|
5
|
-
* `@neon/config` — the package this used to be a subpath of — must never do from its root
|
|
6
|
-
* export. It lives here instead of there precisely so that a policy-facing package does not
|
|
7
|
-
* carry implementor-only code.
|
|
8
|
-
*
|
|
9
|
-
* It exists because three separate readers each grew their own answer to "where is the
|
|
10
|
-
* config directory", and all three disagreed: `packages/cli` honoured `XDG_CONFIG_HOME` but
|
|
11
|
-
* not `NEONCTL_CONFIG_DIR`, `packages/env` honoured the env var but not XDG, and the init
|
|
12
|
-
* flow hardcoded `~/.config/neonctl`. With `XDG_CONFIG_HOME` set, the CLI wrote
|
|
13
|
-
* credentials somewhere the other two never looked.
|
|
14
|
-
*
|
|
15
|
-
* ## The directory
|
|
16
|
-
*
|
|
17
|
-
* `neon` is the current name; `neonctl` is the legacy one, kept readable forever. Resolution,
|
|
18
|
-
* each entry winning over the next:
|
|
19
|
-
*
|
|
20
|
-
* 1. An explicit directory (a `--config-dir` flag) — **exact**, no legacy fallback.
|
|
21
|
-
* 2. `NEON_CONFIG_DIR` — exact.
|
|
22
|
-
* 3. `NEONCTL_CONFIG_DIR` (legacy name) — exact.
|
|
23
|
-
* 4. `$XDG_CONFIG_HOME/neon`, else `<home>/.config/neon`.
|
|
24
|
-
*
|
|
25
|
-
* An explicitly chosen directory is never paired with a fallback: `--config-dir /tmp/ci` that
|
|
26
|
-
* quietly read `~/.config/neonctl` would defeat the point of passing it.
|
|
27
|
-
*
|
|
28
|
-
* ## The files
|
|
29
|
-
*
|
|
30
|
-
* {@link resolveConfigFile} answers "which path should I use for this file", and it is the
|
|
31
|
-
* same answer for reading and writing:
|
|
32
|
-
*
|
|
33
|
-
* - Present in `neon/` → use it.
|
|
34
|
-
* - Present only in `neonctl/` → **use it there, in place.** An existing credentials file is
|
|
35
|
-
* never copied or moved, so nothing is left behind to go stale and no other tool starts
|
|
36
|
-
* reading an abandoned token.
|
|
37
|
-
* - Present in neither → the new location. New files only ever appear under `neon/`.
|
|
38
|
-
*/
|
|
39
1
|
import { existsSync } from "node:fs";
|
|
40
2
|
import { join, resolve } from "node:path";
|
|
3
|
+
//#region src/_shared/paths.ts
|
|
4
|
+
/**
|
|
5
|
+
* # Where the Neon CLIs keep their files on disk
|
|
6
|
+
*
|
|
7
|
+
**Deliberately impure.** It reads environment variables and touches the filesystem, which
|
|
8
|
+
* `@neon/config` — the package this used to be a subpath of — must never do from its root
|
|
9
|
+
* export. It lives here instead of there precisely so that a policy-facing package does not
|
|
10
|
+
* carry implementor-only code.
|
|
11
|
+
*
|
|
12
|
+
* It exists because three separate readers each grew their own answer to "where is the
|
|
13
|
+
* config directory", and all three disagreed: `packages/cli` honoured `XDG_CONFIG_HOME` but
|
|
14
|
+
* not `NEONCTL_CONFIG_DIR`, `packages/env` honoured the env var but not XDG, and the init
|
|
15
|
+
* flow hardcoded `~/.config/neonctl`. With `XDG_CONFIG_HOME` set, the CLI wrote
|
|
16
|
+
* credentials somewhere the other two never looked.
|
|
17
|
+
*
|
|
18
|
+
* ## The directory
|
|
19
|
+
*
|
|
20
|
+
* `neon` is the current name; `neonctl` is the legacy one, kept readable forever. Resolution,
|
|
21
|
+
* each entry winning over the next:
|
|
22
|
+
*
|
|
23
|
+
* 1. An explicit directory (a `--config-dir` flag) — **exact**, no legacy fallback.
|
|
24
|
+
* 2. `NEON_CONFIG_DIR` — exact.
|
|
25
|
+
* 3. `NEONCTL_CONFIG_DIR` (legacy name) — exact.
|
|
26
|
+
* 4. `$XDG_CONFIG_HOME/neon`, else `<home>/.config/neon`.
|
|
27
|
+
*
|
|
28
|
+
* An explicitly chosen directory is never paired with a fallback: `--config-dir /tmp/ci` that
|
|
29
|
+
* quietly read `~/.config/neonctl` would defeat the point of passing it.
|
|
30
|
+
*
|
|
31
|
+
* ## The files
|
|
32
|
+
*
|
|
33
|
+
* {@link resolveConfigFile} answers "which path should I use for this file", and it is the
|
|
34
|
+
* same answer for reading and writing:
|
|
35
|
+
*
|
|
36
|
+
* - Present in `neon/` → use it.
|
|
37
|
+
* - Present only in `neonctl/` → **use it there, in place.** An existing credentials file is
|
|
38
|
+
* never copied or moved, so nothing is left behind to go stale and no other tool starts
|
|
39
|
+
* reading an abandoned token.
|
|
40
|
+
* - Present in neither → the new location. New files only ever appear under `neon/`.
|
|
41
|
+
*/
|
|
41
42
|
/** Current directory name. New files are created here. */
|
|
42
|
-
|
|
43
|
+
const CONFIG_DIR_NAME = "neon";
|
|
43
44
|
/** Legacy directory name, read forever so existing installs keep working untouched. */
|
|
44
|
-
|
|
45
|
+
const LEGACY_CONFIG_DIR_NAME = "neonctl";
|
|
45
46
|
/** Where files are created. See the module docs for the precedence. */
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return join(configHome(options.env ?? process.env), CONFIG_DIR_NAME);
|
|
47
|
+
function configDir(options = {}) {
|
|
48
|
+
const explicit = explicitDir(options);
|
|
49
|
+
if (explicit) return explicit;
|
|
50
|
+
return join(configHome(options.env ?? process.env), CONFIG_DIR_NAME);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return join(configHome(options.env ?? process.env), LEGACY_CONFIG_DIR_NAME);
|
|
53
|
+
* The legacy directory, or `undefined` when the location was chosen explicitly (in which
|
|
54
|
+
* case there is no legacy counterpart to fall back to).
|
|
55
|
+
*/
|
|
56
|
+
function legacyConfigDir(options = {}) {
|
|
57
|
+
if (explicitDir(options)) return void 0;
|
|
58
|
+
return join(configHome(options.env ?? process.env), LEGACY_CONFIG_DIR_NAME);
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
* Resolve one file inside the config directory. Prefers the current location, falls back to
|
|
62
|
+
* an existing legacy file **in place**, and otherwise points at the current location so new
|
|
63
|
+
* files are created there.
|
|
64
|
+
*/
|
|
65
|
+
function resolveConfigFile(fileName, options = {}) {
|
|
66
|
+
const dir = configDir(options);
|
|
67
|
+
const current = resolve(dir, fileName);
|
|
68
|
+
if (existsSync(current)) return {
|
|
69
|
+
path: current,
|
|
70
|
+
dir,
|
|
71
|
+
isLegacy: false,
|
|
72
|
+
exists: true
|
|
73
|
+
};
|
|
74
|
+
const legacyDir = legacyConfigDir(options);
|
|
75
|
+
if (legacyDir) {
|
|
76
|
+
const legacy = resolve(legacyDir, fileName);
|
|
77
|
+
if (existsSync(legacy)) return {
|
|
78
|
+
path: legacy,
|
|
79
|
+
dir: legacyDir,
|
|
80
|
+
isLegacy: true,
|
|
81
|
+
exists: true
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
path: current,
|
|
86
|
+
dir,
|
|
87
|
+
isLegacy: false,
|
|
88
|
+
exists: false
|
|
89
|
+
};
|
|
83
90
|
}
|
|
84
91
|
/** `$XDG_CONFIG_HOME`, else `<home>/.config`. Falls back to a relative `.config` with no home. */
|
|
85
92
|
function configHome(env) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return home ? join(home, ".config") : ".config";
|
|
93
|
+
const xdg = nonEmpty(env.XDG_CONFIG_HOME);
|
|
94
|
+
if (xdg) return xdg;
|
|
95
|
+
const home = nonEmpty(env.HOME) ?? nonEmpty(env.USERPROFILE);
|
|
96
|
+
return home ? join(home, ".config") : ".config";
|
|
91
97
|
}
|
|
92
98
|
function explicitDir(options) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
nonEmpty(env.NEON_CONFIG_DIR) ??
|
|
96
|
-
nonEmpty(env.NEONCTL_CONFIG_DIR));
|
|
99
|
+
const env = options.env ?? process.env;
|
|
100
|
+
return nonEmpty(options.dir) ?? nonEmpty(env.NEON_CONFIG_DIR) ?? nonEmpty(env.NEONCTL_CONFIG_DIR);
|
|
97
101
|
}
|
|
98
102
|
function nonEmpty(value) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return trimmed === "" ? undefined : trimmed;
|
|
103
|
+
if (typeof value !== "string") return void 0;
|
|
104
|
+
const trimmed = value.trim();
|
|
105
|
+
return trimmed === "" ? void 0 : trimmed;
|
|
103
106
|
}
|
|
104
|
-
|
|
107
|
+
const CREDENTIALS_FILE = "credentials.json";
|
|
105
108
|
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
* Default for `--config-dir`: `$XDG_CONFIG_HOME/neon`, else `~/.config/neon`.
|
|
110
|
+
*
|
|
111
|
+
* The directory was called `neonctl` until the CLI was renamed. An existing one is still read —
|
|
112
|
+
* see {@link credentialsPath} — but it is never written to, moved, or deleted.
|
|
113
|
+
*/
|
|
114
|
+
const defaultDir = configDir();
|
|
112
115
|
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
* Where this invocation's `credentials.json` lives.
|
|
117
|
+
*
|
|
118
|
+
* When `--config-dir` was left at its default, an existing file in the legacy `neonctl`
|
|
119
|
+
* directory is used **in place**: an install that predates the rename keeps working, and its
|
|
120
|
+
* credentials are never duplicated into a second location where one copy could go stale while
|
|
121
|
+
* another tool still reads it.
|
|
122
|
+
*
|
|
123
|
+
* A `--config-dir` the user actually passed is used exactly as given. Falling back out of an
|
|
124
|
+
* explicitly chosen directory would defeat the reason for choosing it — a CI run pointed at a
|
|
125
|
+
* scratch directory must never pick up a developer's real credentials.
|
|
126
|
+
*/
|
|
127
|
+
const credentialsPath = (dir) => resolveConfigFile(CREDENTIALS_FILE, dir === defaultDir ? {} : { dir }).path;
|
|
125
128
|
/**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
* Whether a credentials file is one the CLI created, rather than a path a profile adopted.
|
|
130
|
+
*
|
|
131
|
+
* Anything that deletes a credential has to ask this first. A profile entry may point anywhere —
|
|
132
|
+
* that is what makes adopting an existing directory a one-line edit — and a file we did not
|
|
133
|
+
* create is not ours to remove.
|
|
134
|
+
*/
|
|
135
|
+
const isInsideConfigDir = (configDirectory, file) => `${resolve(file)}/`.startsWith(`${resolve(configDirectory)}/`);
|
|
133
136
|
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const legacy = legacyConfigDir();
|
|
147
|
-
return legacy !== undefined && isInsideConfigDir(legacy, file);
|
|
137
|
+
* Whether a credentials file is one the CLI owns, counting the legacy `neonctl` directory.
|
|
138
|
+
*
|
|
139
|
+
* {@link credentialsPath} deliberately reads an existing legacy file in place rather than
|
|
140
|
+
* migrating it, so for a default config directory that file is ours even though it sits outside
|
|
141
|
+
* `neon/`. Judging ownership on the current directory alone would call an install that predates
|
|
142
|
+
* the rename "adopted".
|
|
143
|
+
*/
|
|
144
|
+
const isOwnedCredentialPath = (configDirectory, file) => {
|
|
145
|
+
if (isInsideConfigDir(configDirectory, file)) return true;
|
|
146
|
+
if (configDirectory !== defaultDir) return false;
|
|
147
|
+
const legacy = legacyConfigDir();
|
|
148
|
+
return legacy !== void 0 && isInsideConfigDir(legacy, file);
|
|
148
149
|
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { CONFIG_DIR_NAME, CREDENTIALS_FILE, LEGACY_CONFIG_DIR_NAME, configDir, credentialsPath, defaultDir, isInsideConfigDir, isOwnedCredentialPath, legacyConfigDir, resolveConfigFile };
|