@stacksjs/buddy 0.70.147 → 0.70.149
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/extension.js +34 -49
- package/dist/commands/serve.js +2 -2
- package/package.json +41 -41
|
@@ -29,53 +29,25 @@ export function extension(buddy) {
|
|
|
29
29
|
log.success(`Built ${config.name} ${v} for ${(config.targets ?? ["chrome", "firefox"]).join(", ")}`);
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
buddy.command("extension:init", "Scaffold a
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{ entry: 'src/content/index.ts', matches: ['<all_urls>'], runAt: 'document_start' },
|
|
52
|
-
],
|
|
53
|
-
pages: {
|
|
54
|
-
popup: { template: 'pages/popup.stx', script: 'src/ui/popup.ts' },
|
|
55
|
-
},
|
|
56
|
-
icons: { 16: 'icons/icon-16.png', 48: 'icons/icon-48.png', 128: 'icons/icon-128.png' },
|
|
57
|
-
public: 'public',
|
|
58
|
-
manifest: {
|
|
59
|
-
permissions: ['storage', 'tabs'],
|
|
60
|
-
},
|
|
61
|
-
})
|
|
62
|
-
`);
|
|
63
|
-
await write("src/background/index.ts", `// Background service worker (MV3).
|
|
64
|
-
console.log('[${name}] background ready')
|
|
65
|
-
`);
|
|
66
|
-
await write("src/content/index.ts", `// Content script \u2014 runs on matched pages.
|
|
67
|
-
console.log('[${name}] content script loaded')
|
|
68
|
-
`);
|
|
69
|
-
await write("src/ui/popup.ts", `// Popup script.
|
|
70
|
-
console.log('[${name}] popup')
|
|
71
|
-
`);
|
|
72
|
-
await write("pages/popup.stx", `<div class="popup">
|
|
73
|
-
<h1>${name}</h1>
|
|
74
|
-
<p>Edit pages/popup.stx to build your popup.</p>
|
|
75
|
-
<script src="/popup.js"></script>
|
|
76
|
-
</div>
|
|
77
|
-
`);
|
|
78
|
-
log.info("Next: add icons under public/icons, then `buddy extension:build`.");
|
|
32
|
+
buddy.command("extension:init", "Scaffold a Chrome, Firefox, or Safari extension, including the Safari Xcode app").option("--name <name>", "Extension display name").option("--target <target>", "Scaffold chrome, firefox, safari, or all (default all)").option("--bundle-id <id>", "Safari container bundle identifier").option("--team-id <id>", "Apple Developer team used for Safari signing").option("--platform <platform>", "Safari platform: macos, ios, or all (default all)").option("--force", "Overwrite existing starter and Safari scaffold files").action(async (options) => {
|
|
33
|
+
const target = options.target ?? "all";
|
|
34
|
+
if (!["chrome", "firefox", "safari", "all"].includes(target))
|
|
35
|
+
throw Error(`Invalid extension target ${target}; use chrome, firefox, safari, or all`);
|
|
36
|
+
const { scaffoldExtensionProject } = await import("@stacksjs/browser-extension"), result = await scaffoldExtensionProject({
|
|
37
|
+
name: options.name,
|
|
38
|
+
target,
|
|
39
|
+
bundleId: options.bundleId,
|
|
40
|
+
teamId: options.teamId,
|
|
41
|
+
platforms: parseSafariPlatforms(options.platform) ?? ["macos", "ios"],
|
|
42
|
+
force: Boolean(options.force)
|
|
43
|
+
});
|
|
44
|
+
for (const file of result.written)
|
|
45
|
+
log.success(`created ${file}`);
|
|
46
|
+
for (const file of result.skipped)
|
|
47
|
+
log.info(`skip (exists): ${file}`);
|
|
48
|
+
if (result.safari)
|
|
49
|
+
log.success(`Scaffolded the Safari container app \u2192 ${result.safari.dir}`);
|
|
50
|
+
log.info("Next: add icons under public/icons, then run `buddy extension:build`.");
|
|
79
51
|
});
|
|
80
52
|
buddy.command("extension:package", "Build + zip the browser extension into store-ready archives").option("--target <target>", "Package a single target (chrome | firefox | safari); omit to package all").option("--version <version>", "Override the extension version (defaults to package.json)").action(async (options) => {
|
|
81
53
|
const { packageExtension } = await import("@stacksjs/browser-extension"), { config, version } = await load(), v = options.version ?? version, targets = options.target ? [options.target] : config.targets ?? ["chrome", "firefox"];
|
|
@@ -105,7 +77,15 @@ console.log('[${name}] popup')
|
|
|
105
77
|
uploadOnly: Boolean(options.uploadOnly),
|
|
106
78
|
blockOnWarnings: !options.allowWarnings
|
|
107
79
|
});
|
|
108
|
-
|
|
80
|
+
if (result.deferred) {
|
|
81
|
+
log.warn(`${result.deferred.reason}. Version ${options.version ?? version} remains queued for the next automated retry.`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (result.alreadyPublished) {
|
|
85
|
+
log.success(result.alreadyPublished.reason);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
log.success(`Uploaded Chrome package ${result.packagePath} (${result.upload?.crxVersion ?? "processing complete"})`);
|
|
109
89
|
if (result.publish)
|
|
110
90
|
log.success(`Submitted Chrome Web Store item ${result.publish.itemId}: ${result.publish.state}`);
|
|
111
91
|
});
|
|
@@ -203,7 +183,12 @@ console.log('[${name}] popup')
|
|
|
203
183
|
validateOnly: Boolean(options.validateOnly),
|
|
204
184
|
platforms: parseSafariPlatforms(options.platform)
|
|
205
185
|
});
|
|
206
|
-
|
|
186
|
+
for (const deferred of result.deferred)
|
|
187
|
+
log.warn(`${deferred.reason}. Version ${deferred.version} remains queued for the next automated retry.`);
|
|
188
|
+
for (const published of result.alreadyPublished)
|
|
189
|
+
log.success(`Safari ${published.platform} version ${published.version} is already published${published.state ? ` (${published.state})` : ""}`);
|
|
190
|
+
if (result.artifacts.length)
|
|
191
|
+
log.success(options.validateOnly ? `Validated Safari ${result.artifacts.map((artifact) => artifact.platform).join(" + ")} archives (build ${result.buildNumber})` : `Uploaded and selected Safari ${result.attachments.map((attachment) => attachment.platform).join(" + ")} build ${result.buildNumber} in App Store Connect`);
|
|
207
192
|
if (result.appStoreSubmission?.reviewSubmissionIds.length)
|
|
208
193
|
log.success(`Submitted ${result.appStoreSubmission.reviewSubmissionIds.length} Safari version(s) to App Review`);
|
|
209
194
|
});
|
package/dist/commands/serve.js
CHANGED
|
@@ -53,7 +53,7 @@ export function serve(buddy) {
|
|
|
53
53
|
} catch {}
|
|
54
54
|
if (!stxServe)
|
|
55
55
|
({ serve: stxServe } = await import("bun-plugin-stx/serve"));
|
|
56
|
-
const stxModule = await resolveVendoredStxModule(), { site: siteConfig, i18n: i18nConfig } = await loadStxSiteConfig(), userViewsPath = "resources/views", defaultsResources = resolveDefaultsResources(), defaultViewsPath = join(defaultsResources, "views"), userLayoutsPath = existsSync("resources/views/layouts") ? "resources/views/layouts" : "resources/layouts",
|
|
56
|
+
const stxModule = await resolveVendoredStxModule(), { site: siteConfig, i18n: i18nConfig } = await loadStxSiteConfig(), userViewsPath = "resources/views", defaultsResources = resolveDefaultsResources(), defaultViewsPath = join(defaultsResources, "views"), userLayoutsPath = existsSync("resources/views/layouts") ? "resources/views/layouts" : "resources/layouts", userPartialsPath = existsSync("resources/partials") ? "resources/partials" : existsSync("resources/views/partials") ? "resources/views/partials" : existsSync("partials") ? "partials" : "resources/partials", apiBase = process.env.API_URL || `http://127.0.0.1:${Number(process.env.PORT_API) || config.ports?.api || 3008}`;
|
|
57
57
|
log.info(`Starting production server on port ${port}...`);
|
|
58
58
|
await stxServe({
|
|
59
59
|
patterns: [userViewsPath, defaultViewsPath],
|
|
@@ -62,7 +62,7 @@ export function serve(buddy) {
|
|
|
62
62
|
reusePort: ["production", "staging", "development"].includes((process.env.APP_ENV || "").toLowerCase()),
|
|
63
63
|
componentsDir: join(defaultsResources, "components"),
|
|
64
64
|
layoutsDir: userLayoutsPath,
|
|
65
|
-
partialsDir:
|
|
65
|
+
partialsDir: userPartialsPath,
|
|
66
66
|
fallbackLayoutsDir: join(defaultsResources, "layouts"),
|
|
67
67
|
fallbackPartialsDir: defaultViewsPath,
|
|
68
68
|
quiet: options?.verbose !== !0,
|
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.149",
|
|
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.149",
|
|
96
|
+
"@stacksjs/ai": "^0.70.149",
|
|
97
|
+
"@stacksjs/alias": "^0.70.149",
|
|
98
|
+
"@stacksjs/arrays": "^0.70.149",
|
|
99
|
+
"@stacksjs/auth": "^0.70.149",
|
|
100
|
+
"@stacksjs/build": "^0.70.149",
|
|
101
|
+
"@stacksjs/cache": "^0.70.149",
|
|
102
|
+
"@stacksjs/cli": "^0.70.149",
|
|
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.149",
|
|
105
|
+
"@stacksjs/collections": "^0.70.149",
|
|
106
|
+
"@stacksjs/config": "^0.70.149",
|
|
107
|
+
"@stacksjs/database": "^0.70.149",
|
|
108
|
+
"@stacksjs/desktop": "^0.70.149",
|
|
109
|
+
"@stacksjs/dns": "^0.70.149",
|
|
110
|
+
"@stacksjs/email": "^0.70.149",
|
|
111
|
+
"@stacksjs/enums": "^0.70.149",
|
|
112
|
+
"@stacksjs/error-handling": "^0.70.149",
|
|
113
|
+
"@stacksjs/events": "^0.70.149",
|
|
114
|
+
"@stacksjs/git": "^0.70.149",
|
|
115
115
|
"@stacksjs/gitit": "^0.2.5",
|
|
116
|
-
"@stacksjs/health": "^0.70.
|
|
116
|
+
"@stacksjs/health": "^0.70.149",
|
|
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.149",
|
|
120
|
+
"@stacksjs/logging": "^0.70.149",
|
|
121
|
+
"@stacksjs/notifications": "^0.70.149",
|
|
122
|
+
"@stacksjs/objects": "^0.70.149",
|
|
123
|
+
"@stacksjs/orm": "^0.70.149",
|
|
124
|
+
"@stacksjs/path": "^0.70.149",
|
|
125
|
+
"@stacksjs/payments": "^0.70.149",
|
|
126
|
+
"@stacksjs/realtime": "^0.70.149",
|
|
127
|
+
"@stacksjs/router": "^0.70.149",
|
|
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.149",
|
|
130
|
+
"@stacksjs/security": "^0.70.149",
|
|
131
|
+
"@stacksjs/server": "^0.70.149",
|
|
132
|
+
"@stacksjs/storage": "^0.70.149",
|
|
133
|
+
"@stacksjs/strings": "^0.70.149",
|
|
134
|
+
"@stacksjs/testing": "^0.70.149",
|
|
135
|
+
"@stacksjs/tunnel": "^0.70.149",
|
|
136
|
+
"@stacksjs/types": "^0.70.149",
|
|
137
|
+
"@stacksjs/ui": "^0.70.149",
|
|
138
|
+
"@stacksjs/utils": "^0.70.149",
|
|
139
|
+
"@stacksjs/validation": "^0.70.149",
|
|
140
140
|
"@stacksjs/ts-cloud": "^0.7.47"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|