@minnovate/shadow-publisher 0.11.0 → 0.11.2

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,7 +1,7 @@
1
1
  {
2
2
  "name": "git-publisher",
3
3
  "displayName": "Git Publisher",
4
- "version": "0.11.0",
4
+ "version": "0.11.2",
5
5
  "description": "Publish an app folder's Git history to the serverless Git publishing backend and keep it updated (\"publish my app\", \"update my app\", \"fetch the engineered version\").",
6
6
  "author": { "name": "git-publisher project" },
7
7
  "keywords": ["git", "publish", "deploy", "serverless"]
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: publish-app
3
3
  description: Publish or update the user's app (a folder) with the publisher. Use when the user says "publish my app", "update my app", "save my changes", "push my changes", "save this version online", or asks to resolve an interrupted publication. Handles first-time setup, every later update, interruption recovery and conflicts by running the `publisher` command; never uses git to commit or push.
4
- allowed-tools: Bash(publisher *), Bash(npm install -g @minnovate/shadow-publisher*), Bash(git status *), Bash(git diff *), Bash(git log *)
4
+ allowed-tools: Bash(publisher *), Bash(mkdir -p *), Bash(npm install -g @minnovate/shadow-publisher*), Bash(git status *), Bash(git diff *), Bash(git log *)
5
5
  ---
6
6
 
7
7
  # Publish or update the user's app
@@ -101,16 +101,27 @@ have; when it is not null it is already phrased for them, so pass it on rather t
101
101
  If they name an environment ("publish to dev"), pass `--profile dev` on each command rather than
102
102
  changing their default.
103
103
 
104
- ## 2. First publication of a folder
104
+ ## 2. A new app: make it before you write it
105
105
 
106
- There is no separate first step: run step 3 in the app folder, adding `--name "<app name>"` the
107
- first time. A folder that is not published yet gets its application and repository from that same
108
- `sync` (the portal makes the application first, in one request), and is then published.
106
+ When the person asks for a NEW app, make it before you write a file. Do step 1 first, then:
107
+
108
+ ```bash
109
+ mkdir -p <folder>
110
+ publisher init <folder> --name "<app name>" --json
111
+ ```
112
+
113
+ `init` makes the app and links the folder to it. It publishes nothing and starts no checks. While
114
+ you write the app, the platform prepares its hosting, so the first publication goes live in
115
+ seconds, not in a minute. The folder must exist, and it can be empty. Its output names the app
116
+ under `appId`. Then write the app into that folder, and publish it with step 3, without `--name`.
117
+
118
+ If the app is already written and was never published, `init` gains nothing. Run step 3 in the
119
+ app folder and add `--name "<app name>"`: that one `sync` makes the app, and then publishes it.
109
120
 
110
121
  The first `sync` prepares the folder with an explicit file selection: it excludes `.git`,
111
122
  `node_modules`, build caches, `.env*`, keys/certificates and files larger than 50 MB, and it
112
- respects `.gitignore`. Show the user the `linked` result and the excluded files it reports so they
113
- know what was left out (the exclusion rules are a safety net, not a secret scanner).
123
+ respects `.gitignore`. Show the user the excluded files it reports so they know what was left out
124
+ (the exclusion rules are a safety net, not a secret scanner).
114
125
 
115
126
  ## 3. Every publish, the first one included
116
127
 
@@ -231,7 +242,7 @@ publisher list --json
231
242
 
232
243
  `apps[]` lists what they published, newest first, each with its `name` and a `checkout` command.
233
244
  Ask which one only if the name does not settle it, then run its `checkout` command and work in that
234
- folder. Never `sync` an empty new folder in its place: that makes a second app.
245
+ folder. Never `init` or `sync` an empty new folder in its place: that makes a second app.
235
246
 
236
247
  ## If the service cannot be reached
237
248
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minnovate/shadow-publisher",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "publisher: publish an app's Git history to the serverless Git backend",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -19,6 +19,7 @@
19
19
  },
20
20
  "scripts": {
21
21
  "build": "tsc -b tsconfig.json && pnpm run bundle",
22
+ "typecheck": "tsc -p tsconfig.test.json",
22
23
  "test": "vitest run --project unit --root ../.. packages/cli/",
23
24
  "bundle": "esbuild src/main.ts --bundle --platform=node --target=node22 --format=cjs --outfile=dist/publisher.cjs --banner:js=\"#!/usr/bin/env node\" --log-level=warning && pnpm run skills",
24
25
  "skills": "rm -rf dist/claude && mkdir -p dist/claude && cp -R ../../integrations/claude/.claude-plugin ../../integrations/claude/plugin dist/claude/",