@stacksjs/buddy 0.70.118 → 0.70.119
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/commands/deploy.js +4 -2
- package/dist/commands/dns.js +3 -2
- package/dist/config.d.ts +2 -0
- package/dist/config.js +8 -0
- package/package.json +41 -41
package/dist/commands/deploy.js
CHANGED
|
@@ -6,6 +6,7 @@ import { runAction } from "@stacksjs/actions";
|
|
|
6
6
|
import { italic, onUnknownSubcommand, outro, prompts, runCommand } from "@stacksjs/cli";
|
|
7
7
|
import { app, dns as dnsConfig, email as emailConfig, cloud as cloudConfig } from "@stacksjs/config";
|
|
8
8
|
import { addDomain, hasUserDomainBeenAddedToCloud, syncDnsConfig } from "@stacksjs/dns";
|
|
9
|
+
import { loadProjectDnsConfig } from "../config";
|
|
9
10
|
import { encryptEnv, env } from "@stacksjs/env";
|
|
10
11
|
import { Action } from "@stacksjs/enums";
|
|
11
12
|
import { path as p } from "@stacksjs/path";
|
|
@@ -1072,7 +1073,8 @@ export async function reconcileMailDns(res, ip, logger) {
|
|
|
1072
1073
|
}
|
|
1073
1074
|
}
|
|
1074
1075
|
async function reconcileConfigDns(sites, logger) {
|
|
1075
|
-
|
|
1076
|
+
const projectDnsConfig = await loadProjectDnsConfig(dnsConfig);
|
|
1077
|
+
if (["a", "aaaa", "cname", "mx", "txt"].reduce((total, key) => total + (Array.isArray(projectDnsConfig?.[key]) ? projectDnsConfig[key].length : 0), 0) === 0)
|
|
1076
1078
|
return;
|
|
1077
1079
|
const domains = new Set;
|
|
1078
1080
|
for (const site of Object.values(sites))
|
|
@@ -1080,7 +1082,7 @@ async function reconcileConfigDns(sites, logger) {
|
|
|
1080
1082
|
domains.add(site.domain.replace(/^www\./, ""));
|
|
1081
1083
|
for (const domain of domains)
|
|
1082
1084
|
try {
|
|
1083
|
-
const result = await syncDnsConfig(domain,
|
|
1085
|
+
const result = await syncDnsConfig(domain, projectDnsConfig);
|
|
1084
1086
|
if (!result.provider)
|
|
1085
1087
|
continue;
|
|
1086
1088
|
if (result.created || result.failed)
|
package/dist/commands/dns.js
CHANGED
|
@@ -3,6 +3,7 @@ import { log, onUnknownSubcommand } from "@stacksjs/cli";
|
|
|
3
3
|
import { config } from "@stacksjs/config";
|
|
4
4
|
import { renderDnsConfig, resolveLiveRecords, syncDnsConfig } from "@stacksjs/dns";
|
|
5
5
|
import { ExitCode } from "@stacksjs/types";
|
|
6
|
+
import { loadProjectDnsConfig } from "../config";
|
|
6
7
|
export function dns(buddy) {
|
|
7
8
|
const descriptions = {
|
|
8
9
|
dns: "Lists the DNS records for a domain",
|
|
@@ -74,7 +75,7 @@ export function dns(buddy) {
|
|
|
74
75
|
buddy.command("dns:diff [domain]", "Show which config/dns.ts records are missing from the live zone").option("--verbose", descriptions.verbose, { default: !1 }).action(async (domain, options) => {
|
|
75
76
|
const target = bareDomain(domain);
|
|
76
77
|
log.debug(`Running \`buddy dns:diff ${target}\` ...`, options);
|
|
77
|
-
const { plan, provider } = await syncDnsConfig(target,
|
|
78
|
+
const dnsConfig = await loadProjectDnsConfig(config.dns), { plan, provider } = await syncDnsConfig(target, dnsConfig, { dryRun: !0 });
|
|
78
79
|
for (const item of plan.items) {
|
|
79
80
|
const detail = item.record.type === "TXT" || item.record.type === "MX" ? ` ${item.record.content}` : ` \u2192 ${item.record.content}`;
|
|
80
81
|
console.log(` ${item.action === "create" ? "+ create" : " keep "} ${item.record.type.padEnd(5)} ${item.record.name}${detail}`);
|
|
@@ -86,7 +87,7 @@ ${plan.create.length} to create, ${plan.keep.length} already present (${provider
|
|
|
86
87
|
buddy.command("dns:sync [domain]", "Additively sync config/dns.ts to the registrar (creates missing records; never deletes or overwrites)").option("--dry-run", "Show the plan without writing any records", { default: !1 }).option("--verbose", descriptions.verbose, { default: !1 }).action(async (domain, options) => {
|
|
87
88
|
const target = bareDomain(domain);
|
|
88
89
|
log.debug(`Running \`buddy dns:sync ${target}\` ...`, options);
|
|
89
|
-
const result = await syncDnsConfig(target,
|
|
90
|
+
const dnsConfig = await loadProjectDnsConfig(config.dns), result = await syncDnsConfig(target, dnsConfig, { dryRun: options.dryRun });
|
|
90
91
|
if (!result.provider && !options.dryRun) {
|
|
91
92
|
log.warn(`No DNS provider credentials found (e.g. PORKBUN_API_KEY / PORKBUN_SECRET_KEY) \u2014 nothing was synced. ${result.plan.create.length} record(s) would be created.`);
|
|
92
93
|
process.exit(ExitCode.Success);
|
package/dist/config.d.ts
CHANGED
package/dist/config.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
2
3
|
import { log } from "@stacksjs/cli";
|
|
3
4
|
import { path as p } from "@stacksjs/path";
|
|
5
|
+
export async function loadProjectDnsConfig(fallback) {
|
|
6
|
+
const configPath = p.projectConfigPath("dns.ts");
|
|
7
|
+
if (!existsSync(configPath))
|
|
8
|
+
return fallback;
|
|
9
|
+
const loaded = await import(`${pathToFileURL(configPath).href}?updated=${Date.now()}`);
|
|
10
|
+
return loaded.default ?? loaded.dns ?? fallback;
|
|
11
|
+
}
|
|
4
12
|
export function validateConfig(config) {
|
|
5
13
|
const errors = [];
|
|
6
14
|
if (typeof config !== "object" || config === null) {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@stacksjs/buddy",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.70.
|
|
5
|
+
"version": "0.70.119",
|
|
6
6
|
"description": "Meet Buddy. The Stacks runtime.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"contributors": [
|
|
@@ -92,51 +92,51 @@
|
|
|
92
92
|
"prepublishOnly": "bun run build"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@stacksjs/actions": "^0.70.
|
|
96
|
-
"@stacksjs/ai": "^0.70.
|
|
97
|
-
"@stacksjs/alias": "^0.70.
|
|
98
|
-
"@stacksjs/arrays": "^0.70.
|
|
99
|
-
"@stacksjs/auth": "^0.70.
|
|
100
|
-
"@stacksjs/build": "^0.70.
|
|
101
|
-
"@stacksjs/cache": "^0.70.
|
|
102
|
-
"@stacksjs/cli": "^0.70.
|
|
95
|
+
"@stacksjs/actions": "^0.70.119",
|
|
96
|
+
"@stacksjs/ai": "^0.70.119",
|
|
97
|
+
"@stacksjs/alias": "^0.70.119",
|
|
98
|
+
"@stacksjs/arrays": "^0.70.119",
|
|
99
|
+
"@stacksjs/auth": "^0.70.119",
|
|
100
|
+
"@stacksjs/build": "^0.70.119",
|
|
101
|
+
"@stacksjs/cache": "^0.70.119",
|
|
102
|
+
"@stacksjs/cli": "^0.70.119",
|
|
103
103
|
"@stacksjs/clapp": "^0.2.10",
|
|
104
|
-
"@stacksjs/cloud": "^0.70.
|
|
105
|
-
"@stacksjs/collections": "^0.70.
|
|
106
|
-
"@stacksjs/config": "^0.70.
|
|
107
|
-
"@stacksjs/database": "^0.70.
|
|
108
|
-
"@stacksjs/desktop": "^0.70.
|
|
109
|
-
"@stacksjs/dns": "^0.70.
|
|
110
|
-
"@stacksjs/email": "^0.70.
|
|
111
|
-
"@stacksjs/enums": "^0.70.
|
|
112
|
-
"@stacksjs/error-handling": "^0.70.
|
|
113
|
-
"@stacksjs/events": "^0.70.
|
|
114
|
-
"@stacksjs/git": "^0.70.
|
|
104
|
+
"@stacksjs/cloud": "^0.70.119",
|
|
105
|
+
"@stacksjs/collections": "^0.70.119",
|
|
106
|
+
"@stacksjs/config": "^0.70.119",
|
|
107
|
+
"@stacksjs/database": "^0.70.119",
|
|
108
|
+
"@stacksjs/desktop": "^0.70.119",
|
|
109
|
+
"@stacksjs/dns": "^0.70.119",
|
|
110
|
+
"@stacksjs/email": "^0.70.119",
|
|
111
|
+
"@stacksjs/enums": "^0.70.119",
|
|
112
|
+
"@stacksjs/error-handling": "^0.70.119",
|
|
113
|
+
"@stacksjs/events": "^0.70.119",
|
|
114
|
+
"@stacksjs/git": "^0.70.119",
|
|
115
115
|
"@stacksjs/gitit": "^0.2.5",
|
|
116
|
-
"@stacksjs/health": "^0.70.
|
|
116
|
+
"@stacksjs/health": "^0.70.119",
|
|
117
117
|
"@stacksjs/dnsx": "^0.2.3",
|
|
118
118
|
"@stacksjs/httx": "^0.1.10",
|
|
119
|
-
"@stacksjs/lint": "^0.70.
|
|
120
|
-
"@stacksjs/logging": "^0.70.
|
|
121
|
-
"@stacksjs/notifications": "^0.70.
|
|
122
|
-
"@stacksjs/objects": "^0.70.
|
|
123
|
-
"@stacksjs/orm": "^0.70.
|
|
124
|
-
"@stacksjs/path": "^0.70.
|
|
125
|
-
"@stacksjs/payments": "^0.70.
|
|
126
|
-
"@stacksjs/realtime": "^0.70.
|
|
127
|
-
"@stacksjs/router": "^0.70.
|
|
119
|
+
"@stacksjs/lint": "^0.70.119",
|
|
120
|
+
"@stacksjs/logging": "^0.70.119",
|
|
121
|
+
"@stacksjs/notifications": "^0.70.119",
|
|
122
|
+
"@stacksjs/objects": "^0.70.119",
|
|
123
|
+
"@stacksjs/orm": "^0.70.119",
|
|
124
|
+
"@stacksjs/path": "^0.70.119",
|
|
125
|
+
"@stacksjs/payments": "^0.70.119",
|
|
126
|
+
"@stacksjs/realtime": "^0.70.119",
|
|
127
|
+
"@stacksjs/router": "^0.70.119",
|
|
128
128
|
"@stacksjs/rpx": "^0.11.29",
|
|
129
|
-
"@stacksjs/search-engine": "^0.70.
|
|
130
|
-
"@stacksjs/security": "^0.70.
|
|
131
|
-
"@stacksjs/server": "^0.70.
|
|
132
|
-
"@stacksjs/storage": "^0.70.
|
|
133
|
-
"@stacksjs/strings": "^0.70.
|
|
134
|
-
"@stacksjs/testing": "^0.70.
|
|
135
|
-
"@stacksjs/tunnel": "^0.70.
|
|
136
|
-
"@stacksjs/types": "^0.70.
|
|
137
|
-
"@stacksjs/ui": "^0.70.
|
|
138
|
-
"@stacksjs/utils": "^0.70.
|
|
139
|
-
"@stacksjs/validation": "^0.70.
|
|
129
|
+
"@stacksjs/search-engine": "^0.70.119",
|
|
130
|
+
"@stacksjs/security": "^0.70.119",
|
|
131
|
+
"@stacksjs/server": "^0.70.119",
|
|
132
|
+
"@stacksjs/storage": "^0.70.119",
|
|
133
|
+
"@stacksjs/strings": "^0.70.119",
|
|
134
|
+
"@stacksjs/testing": "^0.70.119",
|
|
135
|
+
"@stacksjs/tunnel": "^0.70.119",
|
|
136
|
+
"@stacksjs/types": "^0.70.119",
|
|
137
|
+
"@stacksjs/ui": "^0.70.119",
|
|
138
|
+
"@stacksjs/utils": "^0.70.119",
|
|
139
|
+
"@stacksjs/validation": "^0.70.119",
|
|
140
140
|
"@stacksjs/ts-cloud": "^0.7.36"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|