@stacksjs/defaults 0.70.208 → 0.70.210
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: stacks-desktop
|
|
3
|
-
description: Use when building desktop applications with Stacks —
|
|
3
|
+
description: Use when building or publishing desktop applications with Stacks — Craft native windows, system tray, desktop packaging, or Mac App Store delivery.
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: Bun >= 1.3.0, TypeScript
|
|
6
6
|
allowed-tools: Read Edit Write Bash Grep Glob
|
|
@@ -15,6 +15,17 @@ allowed-tools: Read Edit Write Bash Grep Glob
|
|
|
15
15
|
- System tray layouts: `storage/framework/defaults/resources/layouts/`
|
|
16
16
|
- Package: `@stacksjs/desktop`
|
|
17
17
|
|
|
18
|
+
## Runtime
|
|
19
|
+
|
|
20
|
+
Stacks desktop applications use the native [Craft](https://github.com/home-lang/craft)
|
|
21
|
+
runtime. `buddy dev:desktop` hosts the dashboard/application and opens it in a
|
|
22
|
+
Craft window. `buddy build:desktop` compiles a small Stacks launcher and places
|
|
23
|
+
the launcher, pinned Craft runtime, manifest, provenance, and checksums in
|
|
24
|
+
`storage/framework/desktop-dist`.
|
|
25
|
+
|
|
26
|
+
Set `CRAFT_BIN` to an executable Craft binary in CI or when Craft is not checked
|
|
27
|
+
out at `~/Code/Tools/craft`.
|
|
28
|
+
|
|
18
29
|
## API
|
|
19
30
|
|
|
20
31
|
```typescript
|
|
@@ -35,7 +46,7 @@ interface OpenDevWindowOptions {
|
|
|
35
46
|
async function openDevWindow(port: number, options?: OpenDevWindowOptions): Promise<boolean>
|
|
36
47
|
```
|
|
37
48
|
|
|
38
|
-
### Desktop Interface
|
|
49
|
+
### Desktop Interface
|
|
39
50
|
|
|
40
51
|
```typescript
|
|
41
52
|
interface Desktop {
|
|
@@ -54,25 +65,61 @@ interface Desktop {
|
|
|
54
65
|
}
|
|
55
66
|
```
|
|
56
67
|
|
|
57
|
-
## Current Status
|
|
58
|
-
|
|
59
|
-
**The Tauri integration is currently stubbed.** `openDevWindow()` returns `false` — the actual Tauri API calls are commented out pending implementation.
|
|
60
|
-
|
|
61
68
|
## CLI Commands
|
|
62
69
|
|
|
63
70
|
```bash
|
|
64
|
-
buddy dev:desktop
|
|
65
|
-
buddy build:desktop
|
|
71
|
+
buddy dev:desktop # start the desktop development server
|
|
72
|
+
buddy build:desktop # build the launcher + Craft runtime payload
|
|
73
|
+
buddy desktop:apple:init # generate the reusable GitHub Actions caller
|
|
74
|
+
buddy desktop:apple:doctor # validate Apple tooling, identities, profile, and API key
|
|
75
|
+
buddy desktop:apple:package # build, sandbox, sign, and create a Store .pkg
|
|
76
|
+
buddy desktop:apple:publish # validate or upload the package to App Store Connect
|
|
66
77
|
```
|
|
67
78
|
|
|
68
|
-
##
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
## Mac App Store
|
|
80
|
+
|
|
81
|
+
Run `buddy desktop:apple:init`, then configure the repository variables and
|
|
82
|
+
secrets named by the generated workflow. The reusable Stacks workflow builds
|
|
83
|
+
Craft from an immutable revision, imports signing material into an ephemeral
|
|
84
|
+
keychain, embeds the provisioning profile, applies App Sandbox entitlements,
|
|
85
|
+
signs the helper before the parent app, creates a signed installer package, and
|
|
86
|
+
uses App Store Connect API-key authentication for validation/upload.
|
|
87
|
+
|
|
88
|
+
Start with `validate-only: true`. Upload only after the signed artifact passes
|
|
89
|
+
local launch and UI QA.
|
|
90
|
+
|
|
91
|
+
Human-owned prerequisites that Buddy does not pretend to automate:
|
|
92
|
+
|
|
93
|
+
- Apple Developer Program enrollment and agreement acceptance
|
|
94
|
+
- App Store Connect API access approval and initial key download
|
|
95
|
+
- banking, tax, pricing, privacy, age rating, and export-compliance answers
|
|
96
|
+
- final App Review submission/release policy
|
|
97
|
+
|
|
98
|
+
## Required Apple configuration
|
|
99
|
+
|
|
100
|
+
Repository variables:
|
|
101
|
+
|
|
102
|
+
- `APPLE_APP_NAME`
|
|
103
|
+
- `APPLE_BUNDLE_ID`
|
|
104
|
+
- `APPLE_TEAM_ID`
|
|
105
|
+
- `DESKTOP_URL`
|
|
106
|
+
- `APPLE_APP_SIGNING_IDENTITY`
|
|
107
|
+
- `APPLE_INSTALLER_SIGNING_IDENTITY`
|
|
108
|
+
|
|
109
|
+
Repository secrets:
|
|
110
|
+
|
|
111
|
+
- `APPLE_APP_CERTIFICATE_BASE64`
|
|
112
|
+
- `APPLE_INSTALLER_CERTIFICATE_BASE64`
|
|
113
|
+
- `APPLE_CERTIFICATE_PASSWORD`
|
|
114
|
+
- `APPLE_PROVISIONING_PROFILE_BASE64`
|
|
115
|
+
- `APP_STORE_CONNECT_API_KEY`
|
|
116
|
+
- `APP_STORE_CONNECT_API_KEY_ID`
|
|
117
|
+
- `APP_STORE_CONNECT_API_ISSUER_ID`
|
|
72
118
|
|
|
73
119
|
## Gotchas
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
120
|
+
- App Store packaging runs on macOS with Xcode command-line tools.
|
|
121
|
+
- The embedded Craft runtime must inherit the parent App Sandbox.
|
|
122
|
+
- A Mac App Distribution identity and Mac Installer Distribution identity serve different signing steps.
|
|
123
|
+
- The provisioning profile must match the team ID, bundle ID, and requested entitlements.
|
|
124
|
+
- App Store upload is not notarization. Outside-Store distribution uses Developer ID signing and notarization instead.
|
|
125
|
+
- A Store build number is immutable. Retry upload with the same signed artifact; rebuild with a new number only when the binary changes.
|
package/ide/vscode/package.json
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@stacksjs/defaults",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.70.
|
|
5
|
+
"version": "0.70.210",
|
|
6
6
|
"description": "The complete managed Stacks application scaffold, including runtime defaults, AI guidance, editor metadata, and npm-backed project support files.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"license": "MIT",
|