nuxt-site-config-kit 1.6.7 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,122 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ const util = require('./shared/nuxt-site-config-kit.469a004d.cjs');
3
4
  const kit = require('@nuxt/kit');
4
- const pkgTypes = require('pkg-types');
5
- const siteConfigStack = require('site-config-stack');
6
- const stdEnv = require('std-env');
7
- const ufo = require('ufo');
8
-
9
- async function initSiteConfig(nuxt = kit.tryUseNuxt()) {
10
- if (!nuxt)
11
- return;
12
- let siteConfig = nuxt._siteConfig;
13
- if (siteConfig)
14
- return siteConfig;
15
- siteConfig = siteConfigStack.createSiteConfigStack();
16
- siteConfig.push({
17
- _priority: -20,
18
- _context: "defaults",
19
- defaultLocale: "en",
20
- trailingSlash: false
21
- });
22
- const rootDir = nuxt?.options.rootDir || stdEnv.process.cwd?.() || false;
23
- siteConfig.push({
24
- _context: "system",
25
- _priority: -15,
26
- name: rootDir ? rootDir.split("/").pop() : void 0,
27
- env: stdEnv.env.NODE_ENV
28
- });
29
- if (rootDir) {
30
- const pkgJson = await pkgTypes.readPackageJSON(void 0, { startingFrom: rootDir });
31
- if (pkgJson) {
32
- siteConfig.push({
33
- _context: "package.json",
34
- _priority: -10,
35
- name: pkgJson.name,
36
- description: pkgJson.description
37
- });
38
- }
39
- }
40
- siteConfig.push({
41
- _context: "vendorEnv",
42
- _priority: -5,
43
- url: [
44
- // vercel
45
- stdEnv.env.VERCEL_URL,
46
- stdEnv.env.NUXT_ENV_VERCEL_URL,
47
- // netlify
48
- stdEnv.env.URL,
49
- // cloudflare pages
50
- stdEnv.env.CF_PAGES_URL
51
- ].find((k) => Boolean(k)),
52
- name: [
53
- // vercel
54
- stdEnv.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
55
- // netlify
56
- stdEnv.env.SITE_NAME
57
- ].find((k) => Boolean(k))
58
- });
59
- const runtimeConfig = nuxt.options.runtimeConfig;
60
- function getRuntimeConfig(config) {
61
- return runtimeConfig[`site${config}`] || runtimeConfig.public?.[`site${config}`];
62
- }
63
- function getEnv(config) {
64
- const key = config.toUpperCase();
65
- if (stdEnv.env[`NUXT_SITE_${key}`])
66
- return stdEnv.env[`NUXT_SITE_${key}`];
67
- if (stdEnv.env[`NUXT_PUBLIC_SITE_${key}`])
68
- return stdEnv.env[`NUXT_PUBLIC_SITE_${key}`];
69
- }
70
- siteConfig.push({
71
- _priority: -2,
72
- _context: "legacyRuntimeConfig",
73
- env: getRuntimeConfig("Env"),
74
- url: getRuntimeConfig("Url"),
75
- name: getRuntimeConfig("Name"),
76
- description: getRuntimeConfig("Description"),
77
- logo: getRuntimeConfig("Image"),
78
- defaultLocale: getRuntimeConfig("Language"),
79
- indexable: getRuntimeConfig("Indexable"),
80
- ...nuxt?.options.runtimeConfig.public.site || {}
81
- });
82
- siteConfig.push({
83
- _context: "buildEnv",
84
- _priority: -1,
85
- env: getEnv("Env"),
86
- url: getEnv("Url"),
87
- name: getEnv("Name"),
88
- description: getEnv("Description"),
89
- logo: getEnv("Image"),
90
- defaultLocale: getEnv("Language"),
91
- indexable: getEnv("Indexable")
92
- });
93
- nuxt._siteConfig = siteConfig;
94
- return siteConfig;
95
- }
96
- async function installNuxtSiteConfig(nuxt = kit.tryUseNuxt()) {
97
- await kit.installModule(await kit.resolvePath("nuxt-site-config"));
98
- await initSiteConfig(nuxt);
99
- }
100
- function getSiteConfigStack(nuxt = kit.tryUseNuxt()) {
101
- if (!nuxt)
102
- throw new Error("Nuxt context is missing.");
103
- if (!nuxt._siteConfig)
104
- throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
105
- return nuxt._siteConfig;
106
- }
107
- function updateSiteConfig(input, nuxt = kit.tryUseNuxt()) {
108
- const container = getSiteConfigStack(nuxt);
109
- container.push(input);
110
- }
111
- function useSiteConfig(nuxt = kit.tryUseNuxt()) {
112
- const container = getSiteConfigStack(nuxt);
113
- return container.get();
114
- }
5
+ require('pkg-types');
6
+ require('site-config-stack');
7
+ require('ufo');
8
+ require('std-env');
115
9
 
116
10
  function requireSiteConfig() {
117
11
  }
118
12
  function assertSiteConfig(module, requirements, options) {
119
- const siteConfig = useSiteConfig();
13
+ const siteConfig = util.useSiteConfig();
120
14
  let valid = true;
121
15
  const messages = [];
122
16
  const logger = kit.useLogger("nuxt-site-config");
@@ -145,65 +39,11 @@ function assertSiteConfig(module, requirements, options) {
145
39
  };
146
40
  }
147
41
 
148
- function useNitroOrigin() {
149
- const cert = stdEnv.env.NITRO_SSL_CERT;
150
- const key = stdEnv.env.NITRO_SSL_KEY;
151
- let host = stdEnv.env.NITRO_HOST || stdEnv.env.HOST || false;
152
- let port = stdEnv.env.NITRO_PORT || stdEnv.env.PORT || (stdEnv.isDevelopment ? 3e3 : false);
153
- let protocol = cert && key || !stdEnv.isDevelopment ? "https" : "http";
154
- if ((stdEnv.isDevelopment || stdEnv.env.prerender) && stdEnv.env.NUXT_VITE_NODE_OPTIONS) {
155
- const origin = JSON.parse(stdEnv.env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
156
- host = ufo.withoutProtocol(origin);
157
- protocol = origin.includes("https") ? "https" : "http";
158
- }
159
- if (typeof host === "string" && host.includes(":")) {
160
- port = host.split(":").pop();
161
- host = host.split(":")[0];
162
- }
163
- port = port ? `:${port}` : "";
164
- return `${protocol}://${host}${port}/`;
165
- }
166
- function withSiteUrl(path, options = {}) {
167
- const siteConfig = useSiteConfig();
168
- if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
169
- throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
170
- const nuxt = kit.useNuxt();
171
- const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
172
- return siteConfigStack.resolveSitePath(path, {
173
- absolute: true,
174
- siteUrl: siteConfig.url || "",
175
- trailingSlash: siteConfig.trailingSlash,
176
- base,
177
- withBase: options.withBase
178
- });
179
- }
180
- function withSiteTrailingSlash(path) {
181
- const siteConfig = useSiteConfig();
182
- return siteConfigStack.fixSlashes(siteConfig.trailingSlash, path);
183
- }
184
- function createSitePathResolver(options = {}, nuxt = kit.useNuxt()) {
185
- const siteConfig = useSiteConfig();
186
- const nitroOrigin = useNitroOrigin();
187
- const canUseSiteUrl = (options.canonical !== false || stdEnv.env.prerender) && siteConfig.url;
188
- const nuxtBase = nuxt.options.app.baseURL || "/";
189
- return (path) => {
190
- return siteConfigStack.resolveSitePath(path, {
191
- ...options,
192
- siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
193
- trailingSlash: siteConfig.trailingSlash,
194
- base: nuxtBase
195
- });
196
- };
197
- }
198
-
42
+ exports.getSiteConfigStack = util.getSiteConfigStack;
43
+ exports.initSiteConfig = util.initSiteConfig;
44
+ exports.installNuxtSiteConfig = util.installNuxtSiteConfig;
45
+ exports.updateSiteConfig = util.updateSiteConfig;
46
+ exports.useNitroOrigin = util.useNitroOrigin;
47
+ exports.useSiteConfig = util.useSiteConfig;
199
48
  exports.assertSiteConfig = assertSiteConfig;
200
- exports.createSitePathResolver = createSitePathResolver;
201
- exports.getSiteConfigStack = getSiteConfigStack;
202
- exports.initSiteConfig = initSiteConfig;
203
- exports.installNuxtSiteConfig = installNuxtSiteConfig;
204
49
  exports.requireSiteConfig = requireSiteConfig;
205
- exports.updateSiteConfig = updateSiteConfig;
206
- exports.useNitroOrigin = useNitroOrigin;
207
- exports.useSiteConfig = useSiteConfig;
208
- exports.withSiteTrailingSlash = withSiteTrailingSlash;
209
- exports.withSiteUrl = withSiteUrl;
package/dist/index.d.cts CHANGED
@@ -1,7 +1,22 @@
1
- import { SiteConfigInput, SiteConfigStack, SiteConfig } from 'site-config-stack';
2
- export { SiteConfig, SiteConfigInput, SiteConfigStack } from 'site-config-stack';
3
- import * as _nuxt_schema from '@nuxt/schema';
4
1
  import { Nuxt } from '@nuxt/schema';
2
+ import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
3
+
4
+ declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
5
+ declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
6
+ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
7
+ declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
8
+ declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
9
+
10
+ /**
11
+ * @deprecated No longer used
12
+ */
13
+ declare function requireSiteConfig(): void;
14
+ declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
15
+ throwError?: boolean;
16
+ }): {
17
+ valid: boolean;
18
+ messages: string[];
19
+ };
5
20
 
6
21
  type AssertionModes = 'prerender' | 'generate' | 'build';
7
22
  interface ModuleAssertion {
@@ -19,33 +34,6 @@ declare module '@nuxt/schema' {
19
34
  }
20
35
  }
21
36
 
22
- declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
23
- declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
24
- declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
25
- declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
26
- declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfig;
27
-
28
- /**
29
- * @deprecated No longer used
30
- */
31
- declare function requireSiteConfig(): void;
32
- declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfig, string>>, options?: {
33
- throwError?: boolean;
34
- }): {
35
- valid: boolean;
36
- messages: string[];
37
- };
38
-
39
37
  declare function useNitroOrigin(): string;
40
- declare function withSiteUrl(path: string, options?: {
41
- withBase?: boolean;
42
- throwErrorOnMissingSiteUrl?: boolean;
43
- }): string;
44
- declare function withSiteTrailingSlash(path: string): string;
45
- declare function createSitePathResolver(options?: {
46
- canonical?: boolean;
47
- absolute?: boolean;
48
- withBase?: boolean;
49
- }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
50
38
 
51
- export { type AssertionModes, type ModuleAssertion, assertSiteConfig, createSitePathResolver, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig, withSiteTrailingSlash, withSiteUrl };
39
+ export { type AssertionModes, type ModuleAssertion, assertSiteConfig, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,22 @@
1
- import { SiteConfigInput, SiteConfigStack, SiteConfig } from 'site-config-stack';
2
- export { SiteConfig, SiteConfigInput, SiteConfigStack } from 'site-config-stack';
3
- import * as _nuxt_schema from '@nuxt/schema';
4
1
  import { Nuxt } from '@nuxt/schema';
2
+ import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
3
+
4
+ declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
5
+ declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
6
+ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
7
+ declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
8
+ declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
9
+
10
+ /**
11
+ * @deprecated No longer used
12
+ */
13
+ declare function requireSiteConfig(): void;
14
+ declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
15
+ throwError?: boolean;
16
+ }): {
17
+ valid: boolean;
18
+ messages: string[];
19
+ };
5
20
 
6
21
  type AssertionModes = 'prerender' | 'generate' | 'build';
7
22
  interface ModuleAssertion {
@@ -19,33 +34,6 @@ declare module '@nuxt/schema' {
19
34
  }
20
35
  }
21
36
 
22
- declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
23
- declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
24
- declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
25
- declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
26
- declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfig;
27
-
28
- /**
29
- * @deprecated No longer used
30
- */
31
- declare function requireSiteConfig(): void;
32
- declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfig, string>>, options?: {
33
- throwError?: boolean;
34
- }): {
35
- valid: boolean;
36
- messages: string[];
37
- };
38
-
39
37
  declare function useNitroOrigin(): string;
40
- declare function withSiteUrl(path: string, options?: {
41
- withBase?: boolean;
42
- throwErrorOnMissingSiteUrl?: boolean;
43
- }): string;
44
- declare function withSiteTrailingSlash(path: string): string;
45
- declare function createSitePathResolver(options?: {
46
- canonical?: boolean;
47
- absolute?: boolean;
48
- withBase?: boolean;
49
- }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
50
38
 
51
- export { type AssertionModes, type ModuleAssertion, assertSiteConfig, createSitePathResolver, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig, withSiteTrailingSlash, withSiteUrl };
39
+ export { type AssertionModes, type ModuleAssertion, assertSiteConfig, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,22 @@
1
- import { SiteConfigInput, SiteConfigStack, SiteConfig } from 'site-config-stack';
2
- export { SiteConfig, SiteConfigInput, SiteConfigStack } from 'site-config-stack';
3
- import * as _nuxt_schema from '@nuxt/schema';
4
1
  import { Nuxt } from '@nuxt/schema';
2
+ import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
3
+
4
+ declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
5
+ declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
6
+ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
7
+ declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
8
+ declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
9
+
10
+ /**
11
+ * @deprecated No longer used
12
+ */
13
+ declare function requireSiteConfig(): void;
14
+ declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
15
+ throwError?: boolean;
16
+ }): {
17
+ valid: boolean;
18
+ messages: string[];
19
+ };
5
20
 
6
21
  type AssertionModes = 'prerender' | 'generate' | 'build';
7
22
  interface ModuleAssertion {
@@ -19,33 +34,6 @@ declare module '@nuxt/schema' {
19
34
  }
20
35
  }
21
36
 
22
- declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
23
- declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
24
- declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
25
- declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
26
- declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfig;
27
-
28
- /**
29
- * @deprecated No longer used
30
- */
31
- declare function requireSiteConfig(): void;
32
- declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfig, string>>, options?: {
33
- throwError?: boolean;
34
- }): {
35
- valid: boolean;
36
- messages: string[];
37
- };
38
-
39
37
  declare function useNitroOrigin(): string;
40
- declare function withSiteUrl(path: string, options?: {
41
- withBase?: boolean;
42
- throwErrorOnMissingSiteUrl?: boolean;
43
- }): string;
44
- declare function withSiteTrailingSlash(path: string): string;
45
- declare function createSitePathResolver(options?: {
46
- canonical?: boolean;
47
- absolute?: boolean;
48
- withBase?: boolean;
49
- }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
50
38
 
51
- export { type AssertionModes, type ModuleAssertion, assertSiteConfig, createSitePathResolver, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig, withSiteTrailingSlash, withSiteUrl };
39
+ export { type AssertionModes, type ModuleAssertion, assertSiteConfig, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
package/dist/index.mjs CHANGED
@@ -1,115 +1,10 @@
1
- import { tryUseNuxt, installModule, resolvePath, useLogger, useNuxt } from '@nuxt/kit';
2
- import { readPackageJSON } from 'pkg-types';
3
- import { createSiteConfigStack, resolveSitePath, fixSlashes } from 'site-config-stack';
4
- import { process, env, isDevelopment } from 'std-env';
5
- import { withoutProtocol } from 'ufo';
6
-
7
- async function initSiteConfig(nuxt = tryUseNuxt()) {
8
- if (!nuxt)
9
- return;
10
- let siteConfig = nuxt._siteConfig;
11
- if (siteConfig)
12
- return siteConfig;
13
- siteConfig = createSiteConfigStack();
14
- siteConfig.push({
15
- _priority: -20,
16
- _context: "defaults",
17
- defaultLocale: "en",
18
- trailingSlash: false
19
- });
20
- const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
21
- siteConfig.push({
22
- _context: "system",
23
- _priority: -15,
24
- name: rootDir ? rootDir.split("/").pop() : void 0,
25
- env: env.NODE_ENV
26
- });
27
- if (rootDir) {
28
- const pkgJson = await readPackageJSON(void 0, { startingFrom: rootDir });
29
- if (pkgJson) {
30
- siteConfig.push({
31
- _context: "package.json",
32
- _priority: -10,
33
- name: pkgJson.name,
34
- description: pkgJson.description
35
- });
36
- }
37
- }
38
- siteConfig.push({
39
- _context: "vendorEnv",
40
- _priority: -5,
41
- url: [
42
- // vercel
43
- env.VERCEL_URL,
44
- env.NUXT_ENV_VERCEL_URL,
45
- // netlify
46
- env.URL,
47
- // cloudflare pages
48
- env.CF_PAGES_URL
49
- ].find((k) => Boolean(k)),
50
- name: [
51
- // vercel
52
- env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
53
- // netlify
54
- env.SITE_NAME
55
- ].find((k) => Boolean(k))
56
- });
57
- const runtimeConfig = nuxt.options.runtimeConfig;
58
- function getRuntimeConfig(config) {
59
- return runtimeConfig[`site${config}`] || runtimeConfig.public?.[`site${config}`];
60
- }
61
- function getEnv(config) {
62
- const key = config.toUpperCase();
63
- if (env[`NUXT_SITE_${key}`])
64
- return env[`NUXT_SITE_${key}`];
65
- if (env[`NUXT_PUBLIC_SITE_${key}`])
66
- return env[`NUXT_PUBLIC_SITE_${key}`];
67
- }
68
- siteConfig.push({
69
- _priority: -2,
70
- _context: "legacyRuntimeConfig",
71
- env: getRuntimeConfig("Env"),
72
- url: getRuntimeConfig("Url"),
73
- name: getRuntimeConfig("Name"),
74
- description: getRuntimeConfig("Description"),
75
- logo: getRuntimeConfig("Image"),
76
- defaultLocale: getRuntimeConfig("Language"),
77
- indexable: getRuntimeConfig("Indexable"),
78
- ...nuxt?.options.runtimeConfig.public.site || {}
79
- });
80
- siteConfig.push({
81
- _context: "buildEnv",
82
- _priority: -1,
83
- env: getEnv("Env"),
84
- url: getEnv("Url"),
85
- name: getEnv("Name"),
86
- description: getEnv("Description"),
87
- logo: getEnv("Image"),
88
- defaultLocale: getEnv("Language"),
89
- indexable: getEnv("Indexable")
90
- });
91
- nuxt._siteConfig = siteConfig;
92
- return siteConfig;
93
- }
94
- async function installNuxtSiteConfig(nuxt = tryUseNuxt()) {
95
- await installModule(await resolvePath("nuxt-site-config"));
96
- await initSiteConfig(nuxt);
97
- }
98
- function getSiteConfigStack(nuxt = tryUseNuxt()) {
99
- if (!nuxt)
100
- throw new Error("Nuxt context is missing.");
101
- if (!nuxt._siteConfig)
102
- throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
103
- return nuxt._siteConfig;
104
- }
105
- function updateSiteConfig(input, nuxt = tryUseNuxt()) {
106
- const container = getSiteConfigStack(nuxt);
107
- container.push(input);
108
- }
109
- function useSiteConfig(nuxt = tryUseNuxt()) {
110
- const container = getSiteConfigStack(nuxt);
111
- return container.get();
112
- }
1
+ import { u as useSiteConfig } from './shared/nuxt-site-config-kit.8664a57b.mjs';
2
+ export { g as getSiteConfigStack, i as initSiteConfig, a as installNuxtSiteConfig, b as updateSiteConfig, c as useNitroOrigin } from './shared/nuxt-site-config-kit.8664a57b.mjs';
3
+ import { useLogger } from '@nuxt/kit';
4
+ import 'pkg-types';
5
+ import 'site-config-stack';
6
+ import 'ufo';
7
+ import 'std-env';
113
8
 
114
9
  function requireSiteConfig() {
115
10
  }
@@ -143,55 +38,4 @@ function assertSiteConfig(module, requirements, options) {
143
38
  };
144
39
  }
145
40
 
146
- function useNitroOrigin() {
147
- const cert = env.NITRO_SSL_CERT;
148
- const key = env.NITRO_SSL_KEY;
149
- let host = env.NITRO_HOST || env.HOST || false;
150
- let port = env.NITRO_PORT || env.PORT || (isDevelopment ? 3e3 : false);
151
- let protocol = cert && key || !isDevelopment ? "https" : "http";
152
- if ((isDevelopment || env.prerender) && env.NUXT_VITE_NODE_OPTIONS) {
153
- const origin = JSON.parse(env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
154
- host = withoutProtocol(origin);
155
- protocol = origin.includes("https") ? "https" : "http";
156
- }
157
- if (typeof host === "string" && host.includes(":")) {
158
- port = host.split(":").pop();
159
- host = host.split(":")[0];
160
- }
161
- port = port ? `:${port}` : "";
162
- return `${protocol}://${host}${port}/`;
163
- }
164
- function withSiteUrl(path, options = {}) {
165
- const siteConfig = useSiteConfig();
166
- if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
167
- throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
168
- const nuxt = useNuxt();
169
- const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
170
- return resolveSitePath(path, {
171
- absolute: true,
172
- siteUrl: siteConfig.url || "",
173
- trailingSlash: siteConfig.trailingSlash,
174
- base,
175
- withBase: options.withBase
176
- });
177
- }
178
- function withSiteTrailingSlash(path) {
179
- const siteConfig = useSiteConfig();
180
- return fixSlashes(siteConfig.trailingSlash, path);
181
- }
182
- function createSitePathResolver(options = {}, nuxt = useNuxt()) {
183
- const siteConfig = useSiteConfig();
184
- const nitroOrigin = useNitroOrigin();
185
- const canUseSiteUrl = (options.canonical !== false || env.prerender) && siteConfig.url;
186
- const nuxtBase = nuxt.options.app.baseURL || "/";
187
- return (path) => {
188
- return resolveSitePath(path, {
189
- ...options,
190
- siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
191
- trailingSlash: siteConfig.trailingSlash,
192
- base: nuxtBase
193
- });
194
- };
195
- }
196
-
197
- export { assertSiteConfig, createSitePathResolver, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, requireSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig, withSiteTrailingSlash, withSiteUrl };
41
+ export { assertSiteConfig, requireSiteConfig, useSiteConfig };
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ const kit = require('@nuxt/kit');
4
+ const pkgTypes = require('pkg-types');
5
+ const siteConfigStack = require('site-config-stack');
6
+ const ufo = require('ufo');
7
+ const stdEnv = require('std-env');
8
+
9
+ async function initSiteConfig(nuxt = kit.tryUseNuxt()) {
10
+ if (!nuxt)
11
+ return;
12
+ let siteConfig = nuxt._siteConfig;
13
+ if (siteConfig)
14
+ return siteConfig;
15
+ siteConfig = siteConfigStack.createSiteConfigStack();
16
+ const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
17
+ siteConfig.push({
18
+ _context: "system",
19
+ _priority: -15,
20
+ name: rootDir ? rootDir.split("/").pop() : void 0,
21
+ env: process.env.NODE_ENV
22
+ });
23
+ if (rootDir) {
24
+ const pkgJson = await pkgTypes.readPackageJSON(void 0, { startingFrom: rootDir });
25
+ if (pkgJson) {
26
+ siteConfig.push({
27
+ _context: "package.json",
28
+ _priority: -10,
29
+ name: pkgJson.name,
30
+ description: pkgJson.description
31
+ });
32
+ }
33
+ }
34
+ siteConfig.push({
35
+ _context: "vendorEnv",
36
+ _priority: -5,
37
+ url: [
38
+ // vercel
39
+ process.env.VERCEL_URL,
40
+ process.env.NUXT_ENV_VERCEL_URL,
41
+ // netlify
42
+ process.env.URL,
43
+ // cloudflare pages
44
+ process.env.CF_PAGES_URL
45
+ ].find((k) => Boolean(k)),
46
+ name: [
47
+ // vercel
48
+ process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
49
+ // netlify
50
+ process.env.SITE_NAME
51
+ ].find((k) => Boolean(k))
52
+ });
53
+ const runtimeConfig = nuxt.options.runtimeConfig;
54
+ const runtimeConfigEnvKeys = [
55
+ ...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
56
+ ...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
57
+ ];
58
+ siteConfig.push({
59
+ _priority: -2,
60
+ _context: "legacyRuntimeConfig",
61
+ ...Object.fromEntries(runtimeConfigEnvKeys)
62
+ });
63
+ siteConfig.push({
64
+ _context: "buildEnv",
65
+ _priority: -1,
66
+ ...siteConfigStack.envSiteConfig(process.env)
67
+ });
68
+ nuxt._siteConfig = siteConfig;
69
+ return siteConfig;
70
+ }
71
+ async function installNuxtSiteConfig(nuxt = kit.tryUseNuxt()) {
72
+ await kit.installModule(await kit.resolvePath("nuxt-site-config"));
73
+ await initSiteConfig(nuxt);
74
+ }
75
+ function getSiteConfigStack(nuxt = kit.tryUseNuxt()) {
76
+ if (!nuxt)
77
+ throw new Error("Nuxt context is missing.");
78
+ if (!nuxt._siteConfig)
79
+ throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
80
+ return nuxt._siteConfig;
81
+ }
82
+ function updateSiteConfig(input, nuxt = kit.tryUseNuxt()) {
83
+ const container = getSiteConfigStack(nuxt);
84
+ container.push(input);
85
+ }
86
+ function useSiteConfig(nuxt = kit.tryUseNuxt()) {
87
+ const container = getSiteConfigStack(nuxt);
88
+ return container.get();
89
+ }
90
+
91
+ function useNitroOrigin() {
92
+ const cert = stdEnv.env.NITRO_SSL_CERT;
93
+ const key = stdEnv.env.NITRO_SSL_KEY;
94
+ let host = stdEnv.env.NITRO_HOST || stdEnv.env.HOST || false;
95
+ let port = stdEnv.env.NITRO_PORT || stdEnv.env.PORT || (stdEnv.isDevelopment ? 3e3 : false);
96
+ let protocol = cert && key || !stdEnv.isDevelopment ? "https" : "http";
97
+ if ((stdEnv.isDevelopment || stdEnv.env.prerender) && stdEnv.env.NUXT_VITE_NODE_OPTIONS) {
98
+ const origin = JSON.parse(stdEnv.env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
99
+ host = ufo.withoutProtocol(origin);
100
+ protocol = origin.includes("https") ? "https" : "http";
101
+ }
102
+ if (typeof host === "string" && host.includes(":")) {
103
+ port = host.split(":").pop();
104
+ host = host.split(":")[0];
105
+ }
106
+ port = port ? `:${port}` : "";
107
+ return `${protocol}://${host}${port}/`;
108
+ }
109
+
110
+ exports.getSiteConfigStack = getSiteConfigStack;
111
+ exports.initSiteConfig = initSiteConfig;
112
+ exports.installNuxtSiteConfig = installNuxtSiteConfig;
113
+ exports.updateSiteConfig = updateSiteConfig;
114
+ exports.useNitroOrigin = useNitroOrigin;
115
+ exports.useSiteConfig = useSiteConfig;
@@ -0,0 +1,108 @@
1
+ import { tryUseNuxt, installModule, resolvePath } from '@nuxt/kit';
2
+ import { readPackageJSON } from 'pkg-types';
3
+ import { createSiteConfigStack, envSiteConfig } from 'site-config-stack';
4
+ import { withoutProtocol } from 'ufo';
5
+ import { env, isDevelopment } from 'std-env';
6
+
7
+ async function initSiteConfig(nuxt = tryUseNuxt()) {
8
+ if (!nuxt)
9
+ return;
10
+ let siteConfig = nuxt._siteConfig;
11
+ if (siteConfig)
12
+ return siteConfig;
13
+ siteConfig = createSiteConfigStack();
14
+ const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
15
+ siteConfig.push({
16
+ _context: "system",
17
+ _priority: -15,
18
+ name: rootDir ? rootDir.split("/").pop() : void 0,
19
+ env: process.env.NODE_ENV
20
+ });
21
+ if (rootDir) {
22
+ const pkgJson = await readPackageJSON(void 0, { startingFrom: rootDir });
23
+ if (pkgJson) {
24
+ siteConfig.push({
25
+ _context: "package.json",
26
+ _priority: -10,
27
+ name: pkgJson.name,
28
+ description: pkgJson.description
29
+ });
30
+ }
31
+ }
32
+ siteConfig.push({
33
+ _context: "vendorEnv",
34
+ _priority: -5,
35
+ url: [
36
+ // vercel
37
+ process.env.VERCEL_URL,
38
+ process.env.NUXT_ENV_VERCEL_URL,
39
+ // netlify
40
+ process.env.URL,
41
+ // cloudflare pages
42
+ process.env.CF_PAGES_URL
43
+ ].find((k) => Boolean(k)),
44
+ name: [
45
+ // vercel
46
+ process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
47
+ // netlify
48
+ process.env.SITE_NAME
49
+ ].find((k) => Boolean(k))
50
+ });
51
+ const runtimeConfig = nuxt.options.runtimeConfig;
52
+ const runtimeConfigEnvKeys = [
53
+ ...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
54
+ ...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
55
+ ];
56
+ siteConfig.push({
57
+ _priority: -2,
58
+ _context: "legacyRuntimeConfig",
59
+ ...Object.fromEntries(runtimeConfigEnvKeys)
60
+ });
61
+ siteConfig.push({
62
+ _context: "buildEnv",
63
+ _priority: -1,
64
+ ...envSiteConfig(process.env)
65
+ });
66
+ nuxt._siteConfig = siteConfig;
67
+ return siteConfig;
68
+ }
69
+ async function installNuxtSiteConfig(nuxt = tryUseNuxt()) {
70
+ await installModule(await resolvePath("nuxt-site-config"));
71
+ await initSiteConfig(nuxt);
72
+ }
73
+ function getSiteConfigStack(nuxt = tryUseNuxt()) {
74
+ if (!nuxt)
75
+ throw new Error("Nuxt context is missing.");
76
+ if (!nuxt._siteConfig)
77
+ throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
78
+ return nuxt._siteConfig;
79
+ }
80
+ function updateSiteConfig(input, nuxt = tryUseNuxt()) {
81
+ const container = getSiteConfigStack(nuxt);
82
+ container.push(input);
83
+ }
84
+ function useSiteConfig(nuxt = tryUseNuxt()) {
85
+ const container = getSiteConfigStack(nuxt);
86
+ return container.get();
87
+ }
88
+
89
+ function useNitroOrigin() {
90
+ const cert = env.NITRO_SSL_CERT;
91
+ const key = env.NITRO_SSL_KEY;
92
+ let host = env.NITRO_HOST || env.HOST || false;
93
+ let port = env.NITRO_PORT || env.PORT || (isDevelopment ? 3e3 : false);
94
+ let protocol = cert && key || !isDevelopment ? "https" : "http";
95
+ if ((isDevelopment || env.prerender) && env.NUXT_VITE_NODE_OPTIONS) {
96
+ const origin = JSON.parse(env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
97
+ host = withoutProtocol(origin);
98
+ protocol = origin.includes("https") ? "https" : "http";
99
+ }
100
+ if (typeof host === "string" && host.includes(":")) {
101
+ port = host.split(":").pop();
102
+ host = host.split(":")[0];
103
+ }
104
+ port = port ? `:${port}` : "";
105
+ return `${protocol}://${host}${port}/`;
106
+ }
107
+
108
+ export { installNuxtSiteConfig as a, updateSiteConfig as b, useNitroOrigin as c, getSiteConfigStack as g, initSiteConfig as i, useSiteConfig as u };
package/dist/urls.cjs ADDED
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ const urls = require('site-config-stack/urls');
4
+ const kit = require('@nuxt/kit');
5
+ const stdEnv = require('std-env');
6
+ const util = require('./shared/nuxt-site-config-kit.469a004d.cjs');
7
+ require('pkg-types');
8
+ require('site-config-stack');
9
+ require('ufo');
10
+
11
+ function withSiteTrailingSlash(path) {
12
+ const siteConfig = util.useSiteConfig();
13
+ return urls.fixSlashes(siteConfig.trailingSlash, path);
14
+ }
15
+ function createSitePathResolver(options = {}, nuxt = kit.useNuxt()) {
16
+ const siteConfig = util.useSiteConfig();
17
+ const nitroOrigin = util.useNitroOrigin();
18
+ const canUseSiteUrl = (options.canonical !== false || stdEnv.env.prerender) && siteConfig.url;
19
+ const nuxtBase = nuxt.options.app.baseURL || "/";
20
+ return (path) => {
21
+ return urls.resolveSitePath(path, {
22
+ ...options,
23
+ siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
24
+ trailingSlash: siteConfig.trailingSlash,
25
+ base: nuxtBase
26
+ });
27
+ };
28
+ }
29
+ function withSiteUrl(path, options = {}) {
30
+ const siteConfig = util.useSiteConfig();
31
+ if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
32
+ throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
33
+ const nuxt = kit.useNuxt();
34
+ const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
35
+ return urls.resolveSitePath(path, {
36
+ absolute: true,
37
+ siteUrl: siteConfig.url || "",
38
+ trailingSlash: siteConfig.trailingSlash,
39
+ base,
40
+ withBase: options.withBase
41
+ });
42
+ }
43
+
44
+ exports.createSitePathResolver = createSitePathResolver;
45
+ exports.withSiteTrailingSlash = withSiteTrailingSlash;
46
+ exports.withSiteUrl = withSiteUrl;
@@ -0,0 +1,14 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ declare function withSiteTrailingSlash(path: string): string;
4
+ declare function createSitePathResolver(options?: {
5
+ canonical?: boolean;
6
+ absolute?: boolean;
7
+ withBase?: boolean;
8
+ }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
9
+ declare function withSiteUrl(path: string, options?: {
10
+ withBase?: boolean;
11
+ throwErrorOnMissingSiteUrl?: boolean;
12
+ }): string;
13
+
14
+ export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl };
@@ -0,0 +1,14 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ declare function withSiteTrailingSlash(path: string): string;
4
+ declare function createSitePathResolver(options?: {
5
+ canonical?: boolean;
6
+ absolute?: boolean;
7
+ withBase?: boolean;
8
+ }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
9
+ declare function withSiteUrl(path: string, options?: {
10
+ withBase?: boolean;
11
+ throwErrorOnMissingSiteUrl?: boolean;
12
+ }): string;
13
+
14
+ export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl };
package/dist/urls.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ declare function withSiteTrailingSlash(path: string): string;
4
+ declare function createSitePathResolver(options?: {
5
+ canonical?: boolean;
6
+ absolute?: boolean;
7
+ withBase?: boolean;
8
+ }, nuxt?: _nuxt_schema.Nuxt): (path: string) => string;
9
+ declare function withSiteUrl(path: string, options?: {
10
+ withBase?: boolean;
11
+ throwErrorOnMissingSiteUrl?: boolean;
12
+ }): string;
13
+
14
+ export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl };
package/dist/urls.mjs ADDED
@@ -0,0 +1,42 @@
1
+ import { fixSlashes, resolveSitePath } from 'site-config-stack/urls';
2
+ import { useNuxt } from '@nuxt/kit';
3
+ import { env } from 'std-env';
4
+ import { u as useSiteConfig, c as useNitroOrigin } from './shared/nuxt-site-config-kit.8664a57b.mjs';
5
+ import 'pkg-types';
6
+ import 'site-config-stack';
7
+ import 'ufo';
8
+
9
+ function withSiteTrailingSlash(path) {
10
+ const siteConfig = useSiteConfig();
11
+ return fixSlashes(siteConfig.trailingSlash, path);
12
+ }
13
+ function createSitePathResolver(options = {}, nuxt = useNuxt()) {
14
+ const siteConfig = useSiteConfig();
15
+ const nitroOrigin = useNitroOrigin();
16
+ const canUseSiteUrl = (options.canonical !== false || env.prerender) && siteConfig.url;
17
+ const nuxtBase = nuxt.options.app.baseURL || "/";
18
+ return (path) => {
19
+ return resolveSitePath(path, {
20
+ ...options,
21
+ siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
22
+ trailingSlash: siteConfig.trailingSlash,
23
+ base: nuxtBase
24
+ });
25
+ };
26
+ }
27
+ function withSiteUrl(path, options = {}) {
28
+ const siteConfig = useSiteConfig();
29
+ if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
30
+ throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
31
+ const nuxt = useNuxt();
32
+ const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
33
+ return resolveSitePath(path, {
34
+ absolute: true,
35
+ siteUrl: siteConfig.url || "",
36
+ trailingSlash: siteConfig.trailingSlash,
37
+ base,
38
+ withBase: options.withBase
39
+ });
40
+ }
41
+
42
+ export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-site-config-kit",
3
3
  "type": "module",
4
- "version": "1.6.7",
4
+ "version": "2.0.1",
5
5
  "description": "Shared site configuration build-time utilities for Nuxt 3 modules.",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",
@@ -32,7 +32,7 @@
32
32
  "pkg-types": "^1.0.3",
33
33
  "std-env": "^3.6.0",
34
34
  "ufo": "^1.3.2",
35
- "site-config-stack": "1.6.7"
35
+ "site-config-stack": "2.0.1"
36
36
  },
37
37
  "scripts": {
38
38
  "lint": "eslint . --fix",