costaff-workspace 0.1.3 → 0.1.4
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/README.md +66 -132
- package/README.zh-TW.md +61 -125
- package/dist/cli-theme.js +275 -0
- package/dist/cli-theme.js.map +1 -0
- package/dist/integration.js +9 -2
- package/dist/integration.js.map +1 -1
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -1
- package/dist/project.js +1 -0
- package/dist/project.js.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/push.js +1 -0
- package/dist/push.js.map +1 -1
- package/dist/stage.js +34 -0
- package/dist/stage.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,182 +1,116 @@
|
|
|
1
1
|
# costaff-workspace
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/costaff-workspace)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
3
6
|
**English** · [繁體中文](README.zh-TW.md)
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
**The command-line tool for [CoStaff Workspace](https://workspace.costaffs.app).**
|
|
9
|
+
Publish a document you built locally and get back a link you can send. Fetch it
|
|
10
|
+
onto another machine, edit, publish again — the link never changes.
|
|
6
11
|
|
|
7
12
|
Works with projects made using [open-doc](https://github.com/simonliu-ai-product/open-doc)
|
|
8
13
|
(documents), open-slide (decks) and open-sheet (workbooks).
|
|
9
14
|
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## 1. Install it
|
|
13
|
-
|
|
14
|
-
You need [Node.js](https://nodejs.org) 20 or newer. Check with `node -v`.
|
|
15
|
-
|
|
16
15
|
```bash
|
|
17
16
|
npm i -g costaff-workspace
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
costaff-workspace --help
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
<details>
|
|
27
|
-
<summary>If the command is not found</summary>
|
|
28
|
-
|
|
29
|
-
Your shell cannot see where npm puts global commands. `npm prefix -g` prints
|
|
30
|
-
that folder; add its `bin` to your `PATH`. With pnpm, run `pnpm setup` once.
|
|
31
|
-
</details>
|
|
32
|
-
|
|
33
|
-
## 2. Build your project
|
|
34
|
-
|
|
35
|
-
Publishing sends the **built** files, so build first.
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
cd my-doc
|
|
39
|
-
pnpm install
|
|
40
|
-
pnpm build
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
You should now have a `dist/` folder. If your project builds somewhere else,
|
|
44
|
-
remember the name — you will pass it in step 3.
|
|
45
|
-
|
|
46
|
-
## 3. Push
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
costaff-workspace push
|
|
50
|
-
```
|
|
19
|
+
## Why
|
|
51
20
|
|
|
52
|
-
|
|
21
|
+
A built document is a folder of files, and sending someone a folder is not
|
|
22
|
+
sending them a document. Static hosting solves the delivery and loses everything
|
|
23
|
+
around it: who may read the file, what it is called, which version they are
|
|
24
|
+
looking at, and the source it was built from.
|
|
53
25
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
open https://workspace.costaffs.app/activate?code=WXYZ-1234
|
|
57
|
-
code WXYZ-1234
|
|
58
|
-
```
|
|
26
|
+
`costaff-workspace push` closes that gap in one command. What comes back is an
|
|
27
|
+
address, not a deployment.
|
|
59
28
|
|
|
60
|
-
|
|
61
|
-
have to approve it. The command waits, then carries on by itself.
|
|
29
|
+
## Highlights
|
|
62
30
|
|
|
63
|
-
|
|
31
|
+
### 📤 One command, no configuration
|
|
64
32
|
|
|
65
|
-
|
|
33
|
+
Run it in a project folder. The slug comes from the folder name, the kind from
|
|
34
|
+
what `package.json` depends on, the bundle from `dist/`, the title from the
|
|
35
|
+
package description. **Every guess is printed**, and a guess it cannot make stops
|
|
36
|
+
the push rather than inventing something.
|
|
66
37
|
|
|
67
38
|
```
|
|
68
|
-
|
|
69
|
-
getting-started → https://workspace.costaffs.app/dcuk0lmf875ctrgxfppa
|
|
70
|
-
q3-numbers → https://workspace.costaffs.app/8fjq2ldk3nx7yrpv0aet
|
|
71
|
-
team-offsite → https://workspace.costaffs.app/pv0aet8fjq2ldk3nx7yr
|
|
72
|
-
budget-2027 → https://workspace.costaffs.app/3nx7yrpv0aet8fjq2ldk
|
|
39
|
+
guessed --slug q3-report --kind deck --source-dir .
|
|
73
40
|
```
|
|
74
41
|
|
|
75
|
-
|
|
42
|
+
### 🔗 Links that survive edits
|
|
76
43
|
|
|
77
|
-
|
|
44
|
+
The address is settled before the build rather than assigned afterwards, and it
|
|
45
|
+
is remembered per file. Publish the same folder a year later and everyone holding
|
|
46
|
+
the old link sees the new version.
|
|
78
47
|
|
|
79
|
-
|
|
80
|
-
and decide who may read each one.
|
|
48
|
+
### ↩️ Editable from anywhere
|
|
81
49
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
50
|
+
A push carries the source. `costaff-workspace pull <token>` hands back a complete
|
|
51
|
+
project on any machine — install, edit, publish, same link. Nothing is tied to
|
|
52
|
+
the computer that published it first.
|
|
85
53
|
|
|
86
|
-
|
|
54
|
+
### 🔒 Private until you say otherwise
|
|
87
55
|
|
|
88
|
-
|
|
56
|
+
A newly published file opens for its owner and nobody else. Readers are invited,
|
|
57
|
+
or the file is made a public link, in the file manager. Sending someone the
|
|
58
|
+
address is not enough on its own.
|
|
89
59
|
|
|
90
|
-
|
|
91
|
-
whoever you sent it to sees the new version.
|
|
60
|
+
### 📦 One bundle per document
|
|
92
61
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
62
|
+
A project holding several documents is built once per document. The alternative —
|
|
63
|
+
a single shared build — lets anyone sent one document reach every other
|
|
64
|
+
document's assets. Isolation is the reason; the extra builds are the price.
|
|
96
65
|
|
|
97
|
-
|
|
98
|
-
last part of the link:
|
|
66
|
+
## Get started
|
|
99
67
|
|
|
100
68
|
```bash
|
|
101
|
-
costaff-workspace pull dcuk0lmf875ctrgxfppa my-doc
|
|
102
69
|
cd my-doc
|
|
103
|
-
pnpm
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
What comes back is a complete project. Edit it, build it, push it, and the same
|
|
107
|
-
link updates.
|
|
108
|
-
|
|
109
|
-
**You want to check before publishing.** This packages everything and reports
|
|
110
|
-
what it would send, without uploading and without needing a network:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
costaff-workspace push --dry-run
|
|
70
|
+
pnpm build # publishing sends the built files
|
|
71
|
+
costaff-workspace push
|
|
114
72
|
```
|
|
115
73
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
## You usually pass no options at all
|
|
119
|
-
|
|
120
|
-
Run in a project folder, `push` works out the rest and **prints every guess**:
|
|
74
|
+
The first push prints a sign-in link with the code already in it. Approve it in a
|
|
75
|
+
browser: the command continues on its own, and the machine stays signed in.
|
|
121
76
|
|
|
122
77
|
```
|
|
123
|
-
|
|
78
|
+
4 documents — one bundle each
|
|
79
|
+
getting-started → https://workspace.costaffs.app/dcuk0lmf875ctrgxfppa
|
|
80
|
+
q3-numbers → https://workspace.costaffs.app/8fjq2ldk3nx7yrpv0aet
|
|
124
81
|
```
|
|
125
82
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
| the file's identity (`--slug`) | the folder's name |
|
|
129
|
-
| document, deck or workbook (`--kind`) | what your `package.json` depends on |
|
|
130
|
-
| the built files (`--site-dir`) | `dist` |
|
|
131
|
-
| the title | your `package.json` description, else the slug |
|
|
83
|
+
Names, folders, and who may read each file are managed at
|
|
84
|
+
[workspace.costaffs.app](https://workspace.costaffs.app).
|
|
132
85
|
|
|
133
|
-
|
|
134
|
-
|
|
86
|
+
> The project's source is uploaded alongside the build, which is what makes
|
|
87
|
+
> `pull` possible later. `node_modules` and dotfiles are never collected, so
|
|
88
|
+
> **`.env` does not travel**. `--no-source` publishes the built files alone.
|
|
135
89
|
|
|
136
|
-
|
|
90
|
+
## Commands
|
|
137
91
|
|
|
138
|
-
|
|
|
92
|
+
| | |
|
|
139
93
|
| --- | --- |
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
| `--dry-run` | you want to check before sending |
|
|
145
|
-
| `--no-source` | you want to publish the built files alone |
|
|
146
|
-
|
|
147
|
-
`costaff-workspace push --help` lists all of them.
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## Worth knowing
|
|
152
|
-
|
|
153
|
-
**Your source goes up too, and that is on purpose.** It is what lets `pull` hand
|
|
154
|
-
you a working project back later, on any machine. `node_modules` and dotfiles are
|
|
155
|
-
never collected — **your `.env` does not travel**. `--no-source` opts out, and
|
|
156
|
-
then nothing can be pulled back out of that file afterwards.
|
|
157
|
-
|
|
158
|
-
**A project with several documents takes longer than one build.** Each document
|
|
159
|
-
is built into a bundle of its own. It has to be: inside one shared build, anyone
|
|
160
|
-
you send a single document to can reach all the others.
|
|
161
|
-
|
|
162
|
-
**A file someone shared with you comes back as a copy.** It carries no link, so
|
|
163
|
-
pushing it publishes it under your own account. The original is untouched.
|
|
94
|
+
| `costaff-workspace push` | publish this folder |
|
|
95
|
+
| `costaff-workspace pull <token> [dir]` | fetch a published file's source |
|
|
96
|
+
| `costaff-workspace login` | sign this machine in |
|
|
97
|
+
| `costaff-workspace logout` | forget this machine's sign-in |
|
|
164
98
|
|
|
165
|
-
|
|
99
|
+
## Options
|
|
166
100
|
|
|
167
|
-
|
|
101
|
+
A normal project needs none of these. Pass one when a guess is wrong.
|
|
168
102
|
|
|
169
|
-
|
|
|
103
|
+
| | |
|
|
170
104
|
| --- | --- |
|
|
171
|
-
|
|
|
172
|
-
| `
|
|
173
|
-
|
|
|
174
|
-
| `
|
|
175
|
-
|
|
|
176
|
-
|
|
|
177
|
-
| `No file at that token.` | Wrong token, or the file is not yours and was not shared with you. |
|
|
105
|
+
| `--title "Q3 report"` | the name shown in the file manager |
|
|
106
|
+
| `--slug q3-report` | the file's identity, and what a re-push updates |
|
|
107
|
+
| `--kind document\|deck\|workbook` | when the kind is guessed wrong |
|
|
108
|
+
| `--site-dir build` | when the build output is not `dist` |
|
|
109
|
+
| `--dry-run` | package and report; uploads nothing, needs no network |
|
|
110
|
+
| `--no-source` | publish the built files without the source |
|
|
178
111
|
|
|
112
|
+
`costaff-workspace push --help` lists every option.
|
|
179
113
|
|
|
180
|
-
##
|
|
114
|
+
## License
|
|
181
115
|
|
|
182
116
|
MIT
|
package/README.zh-TW.md
CHANGED
|
@@ -1,172 +1,108 @@
|
|
|
1
1
|
# costaff-workspace
|
|
2
2
|
|
|
3
|
-
[
|
|
4
|
-
|
|
5
|
-
把你在自己電腦上做好的文件,變成一條可以傳給別人的連結。
|
|
6
|
-
|
|
7
|
-
適用於用 [open-doc](https://github.com/simonliu-ai-product/open-doc)(文件)、
|
|
8
|
-
open-slide(簡報)、open-sheet(試算表)做的專案。
|
|
3
|
+
[](https://www.npmjs.com/package/costaff-workspace)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
5
|
|
|
10
|
-
|
|
6
|
+
[English](README.md) · **繁體中文**
|
|
11
7
|
|
|
12
|
-
|
|
8
|
+
**[CoStaff Workspace](https://workspace.costaffs.app) 的命令列工具。**
|
|
9
|
+
把在本機做好的文件發佈出去,拿回一條可以傳的連結。換一台機器取回、修改、再發佈,
|
|
10
|
+
連結始終不變。
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
適用於用 [open-doc](https://github.com/simonliu-ai-product/open-doc)(文件)、
|
|
13
|
+
open-slide(簡報)、open-sheet(試算表)做的專案。
|
|
15
14
|
|
|
16
15
|
```bash
|
|
17
16
|
npm i -g costaff-workspace
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
## 為什麼
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
建置好的文件是一整包檔案,而把一整包檔案傳給別人,不等於把文件交給他。靜態託管解決了
|
|
22
|
+
傳遞,卻丟掉了周邊的一切:誰可以讀、它叫什麼名字、對方看到的是哪一版,以及它是從什麼
|
|
23
|
+
原始碼建出來的。
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
<summary>如果顯示「找不到指令」</summary>
|
|
25
|
+
`costaff-workspace push` 用一個指令補上這段落差。拿回來的是一個位址,不是一次部署。
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
`bin` 加進 `PATH`。如果你用 pnpm,跑一次 `pnpm setup` 就好。
|
|
31
|
-
</details>
|
|
27
|
+
## 特色
|
|
32
28
|
|
|
33
|
-
|
|
29
|
+
### 📤 一個指令,不用設定
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
在專案資料夾裡執行。slug 取自資料夾名稱、種類取自 `package.json` 的相依套件、
|
|
32
|
+
產物取自 `dist/`、標題取自套件描述。**每一個推斷都會印出來**,而推斷不出來的時候
|
|
33
|
+
它會停下,不會憑空編一個。
|
|
36
34
|
|
|
37
|
-
```bash
|
|
38
|
-
cd my-doc
|
|
39
|
-
pnpm install
|
|
40
|
-
pnpm build
|
|
41
35
|
```
|
|
42
|
-
|
|
43
|
-
跑完應該會出現一個 `dist/` 資料夾。如果你的專案輸出到別的地方,記住那個名字,
|
|
44
|
-
第 3 步會用到。
|
|
45
|
-
|
|
46
|
-
## 3. 推上去
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
costaff-workspace push
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 第一次會請你登入
|
|
53
|
-
|
|
36
|
+
guessed --slug q3-report --kind deck --source-dir .
|
|
54
37
|
```
|
|
55
|
-
Sign in to CoStaff Workspace
|
|
56
|
-
open https://workspace.costaffs.app/activate?code=WXYZ-1234
|
|
57
|
-
code WXYZ-1234
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
用瀏覽器打開那個網址。**驗證碼已經在網址裡**,所以你只要按同意。指令會自己等著,
|
|
61
|
-
授權完就繼續。
|
|
62
|
-
|
|
63
|
-
這台機器之後就記住登入了,不會再問。
|
|
64
38
|
|
|
65
|
-
###
|
|
39
|
+
### 🔗 改了內容,連結不變
|
|
66
40
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
getting-started → https://workspace.costaffs.app/dcuk0lmf875ctrgxfppa
|
|
70
|
-
q3-numbers → https://workspace.costaffs.app/8fjq2ldk3nx7yrpv0aet
|
|
71
|
-
team-offsite → https://workspace.costaffs.app/pv0aet8fjq2ldk3nx7yr
|
|
72
|
-
budget-2027 → https://workspace.costaffs.app/3nx7yrpv0aet8fjq2ldk
|
|
73
|
-
```
|
|
41
|
+
位址在建置之前就決定,不是事後才配發的,而且逐一記在檔案上。一年後重新發佈同一個
|
|
42
|
+
資料夾,所有拿著舊連結的人看到的就是新版本。
|
|
74
43
|
|
|
75
|
-
|
|
44
|
+
### ↩️ 換台機器就能接手
|
|
76
45
|
|
|
77
|
-
|
|
46
|
+
推送會帶著原始碼。`costaff-workspace pull <token>` 會在任何機器上還你一個完整的
|
|
47
|
+
專案——安裝、修改、發佈,同一條連結。沒有任何東西綁在最初發佈的那台電腦上。
|
|
78
48
|
|
|
79
|
-
|
|
49
|
+
### 🔒 預設私人,由你決定開放
|
|
80
50
|
|
|
81
|
-
|
|
82
|
-
|
|
51
|
+
剛發佈的檔案只有擁有者打得開。要讓誰讀,是在檔案管理員裡邀請,或把它改成公開連結。
|
|
52
|
+
**光是把位址傳給別人並不夠。**
|
|
83
53
|
|
|
84
|
-
|
|
54
|
+
### 📦 一份文件一個 bundle
|
|
85
55
|
|
|
86
|
-
|
|
56
|
+
含多份文件的專案會逐份建置。另一種做法——共用一次建置——會讓你只傳一份文件給別人時,
|
|
57
|
+
他就能取得其他每一份的資產。隔離是理由,多出來的建置次數是代價。
|
|
87
58
|
|
|
88
|
-
|
|
59
|
+
## 開始使用
|
|
89
60
|
|
|
90
61
|
```bash
|
|
91
|
-
pnpm build && costaff-workspace push
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**你換了一台電腦。** 用 token(連結的最後一段)把專案取回來:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
costaff-workspace pull dcuk0lmf875ctrgxfppa my-doc
|
|
98
62
|
cd my-doc
|
|
99
|
-
pnpm
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
拿回來的是一個完整的專案。改完、建置、推上去,同一條連結就更新了。
|
|
103
|
-
|
|
104
|
-
**你想在發佈前先確認。** 這會把東西打包好並回報要送出什麼,但不上傳,也不需要網路:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
costaff-workspace push --dry-run
|
|
63
|
+
pnpm build # 發佈送出去的是建置後的檔案
|
|
64
|
+
costaff-workspace push
|
|
108
65
|
```
|
|
109
66
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
## 你通常一個參數都不用打
|
|
113
|
-
|
|
114
|
-
在專案資料夾裡執行,`push` 會自己推斷,而且**每一個猜測都會印出來**:
|
|
67
|
+
第一次推送會印出一條登入連結,驗證碼已經在網址裡。在瀏覽器按下同意,指令會自己繼續,
|
|
68
|
+
之後這台機器就保持登入。
|
|
115
69
|
|
|
116
70
|
```
|
|
117
|
-
|
|
71
|
+
4 documents — one bundle each
|
|
72
|
+
getting-started → https://workspace.costaffs.app/dcuk0lmf875ctrgxfppa
|
|
73
|
+
q3-numbers → https://workspace.costaffs.app/8fjq2ldk3nx7yrpv0aet
|
|
118
74
|
```
|
|
119
75
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
| 檔案的身分(`--slug`) | 資料夾的名字 |
|
|
123
|
-
| 是文件、簡報還是試算表(`--kind`) | 你 `package.json` 裡的相依套件 |
|
|
124
|
-
| 建置產物在哪(`--site-dir`) | `dist` |
|
|
125
|
-
| 標題 | `package.json` 的 description,沒有就用 slug |
|
|
76
|
+
名稱、資料夾,以及每一份誰可以讀,都在
|
|
77
|
+
[workspace.costaffs.app](https://workspace.costaffs.app) 管理。
|
|
126
78
|
|
|
127
|
-
|
|
79
|
+
> 專案的原始碼會和建置產物一起上傳,那正是之後 `pull` 得以成立的原因。
|
|
80
|
+
> `node_modules` 和點開頭的檔案永遠不會被收進去,所以 **`.env` 不會跟著走**。
|
|
81
|
+
> `--no-source` 則只發佈建置後的檔案。
|
|
128
82
|
|
|
129
|
-
|
|
83
|
+
## 指令
|
|
130
84
|
|
|
131
|
-
|
|
|
85
|
+
| | |
|
|
132
86
|
| --- | --- |
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
|
|
|
136
|
-
|
|
|
137
|
-
| `--dry-run` | 想先確認再送出 |
|
|
138
|
-
| `--no-source` | 只想發佈建置後的檔案 |
|
|
139
|
-
|
|
140
|
-
`costaff-workspace push --help` 會列出全部。
|
|
141
|
-
|
|
142
|
-
---
|
|
87
|
+
| `costaff-workspace push` | 發佈這個資料夾 |
|
|
88
|
+
| `costaff-workspace pull <token> [dir]` | 取回某份已發佈檔案的原始碼 |
|
|
89
|
+
| `costaff-workspace login` | 讓這台機器登入 |
|
|
90
|
+
| `costaff-workspace logout` | 忘掉這台機器的登入 |
|
|
143
91
|
|
|
144
|
-
##
|
|
92
|
+
## 參數
|
|
145
93
|
|
|
146
|
-
|
|
147
|
-
可以直接跑的專案的原因。`node_modules` 和點開頭的檔案永遠不會被收進去——
|
|
148
|
-
**你的 `.env` 不會跟著走**。`--no-source` 可以不送,但那之後這份檔案就拉不回來了。
|
|
94
|
+
一般的專案一個都不需要。推斷錯了才補上那一個。
|
|
149
95
|
|
|
150
|
-
|
|
151
|
-
在一份共用的建置產物裡,你只傳一份給別人,他就能拿到其他全部。
|
|
152
|
-
|
|
153
|
-
**別人分享給你的檔案,拉回來是一份副本。** 它不帶連結,所以推上去會發佈在你自己的
|
|
154
|
-
帳號底下,原件不受影響。
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## 出問題的時候
|
|
159
|
-
|
|
160
|
-
| 它說 | 意思,以及怎麼辦 |
|
|
96
|
+
| | |
|
|
161
97
|
| --- | --- |
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
|
|
|
165
|
-
| `
|
|
166
|
-
|
|
|
167
|
-
|
|
|
168
|
-
|
|
169
|
-
|
|
98
|
+
| `--title "第三季報告"` | 檔案管理員裡顯示的名稱 |
|
|
99
|
+
| `--slug q3-report` | 檔案的身分,也決定重推會更新哪一份 |
|
|
100
|
+
| `--kind document\|deck\|workbook` | 種類推斷錯誤時 |
|
|
101
|
+
| `--site-dir build` | 建置產物不在 `dist` 時 |
|
|
102
|
+
| `--dry-run` | 打包並回報;不上傳,也不需要網路 |
|
|
103
|
+
| `--no-source` | 只發佈建置後的檔案,不帶原始碼 |
|
|
104
|
+
|
|
105
|
+
`costaff-workspace push --help` 會列出全部參數。
|
|
170
106
|
|
|
171
107
|
## 授權
|
|
172
108
|
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 主題。
|
|
3
|
+
*
|
|
4
|
+
* open-doc、open-slide 和 open-sheet 都把主題放在專案根目錄的 `themes/`,形狀一樣:
|
|
5
|
+
* `<id>.md` 是規格,`<id>.demo.tsx` 是可選的示範。這裡就是把那個資料夾推上去、
|
|
6
|
+
* 再從別台機器拉回來。
|
|
7
|
+
*
|
|
8
|
+
* 主題屬於帳號,不是屬於某一份文件 —— 所以它不走 push/pull 那條以 token 定址的路,
|
|
9
|
+
* 而是以 (框架, id) 定址。同一個 id 在不同框架是兩份主題:open-doc 和 open-sheet
|
|
10
|
+
* 的示範主題都叫 corporate-neutral。
|
|
11
|
+
*/
|
|
12
|
+
import fs from 'node:fs/promises';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
import { unzipSync, zipSync } from 'fflate';
|
|
15
|
+
import os from 'node:os';
|
|
16
|
+
import { DEFAULT_ENDPOINT, kindFromManifest, readManifest } from "./defaults.js";
|
|
17
|
+
import { SURFACES } from "./integration.js";
|
|
18
|
+
import { ensureBearer } from "./push.js";
|
|
19
|
+
import { buildThemeDemo } from "./stage.js";
|
|
20
|
+
import { tokenFor } from "./state.js";
|
|
21
|
+
const USAGE = `costaff-workspace theme — the themes/ folder, kept in your workspace
|
|
22
|
+
|
|
23
|
+
costaff-workspace theme push push every theme in ./themes
|
|
24
|
+
costaff-workspace theme list what is up there
|
|
25
|
+
costaff-workspace theme pull <id> write one back into ./themes
|
|
26
|
+
costaff-workspace theme rm <id> remove one from the workspace
|
|
27
|
+
|
|
28
|
+
--endpoint <url> receiver (default ${DEFAULT_ENDPOINT})
|
|
29
|
+
--kind <kind> document | deck | workbook — which framework the theme is
|
|
30
|
+
for. Read from package.json; pass it when that is wrong.
|
|
31
|
+
--dir <dir> the themes folder (default themes)
|
|
32
|
+
--bearer <token> auth token instead of a stored login
|
|
33
|
+
--no-demo push the specs only; skip building the demos
|
|
34
|
+
|
|
35
|
+
A theme is <id>.md, and optionally <id>.demo.tsx beside it. The name and
|
|
36
|
+
description in the listing come from the .md's own frontmatter, so editing the
|
|
37
|
+
file and pushing again is all it takes to change them.
|
|
38
|
+
`;
|
|
39
|
+
const KINDS = new Set(['document', 'deck', 'workbook']);
|
|
40
|
+
function parse(argv) {
|
|
41
|
+
const opts = {
|
|
42
|
+
endpoint: process.env.COSTAFF_WORKSPACE_ENDPOINT ?? DEFAULT_ENDPOINT,
|
|
43
|
+
dir: 'themes',
|
|
44
|
+
demo: true,
|
|
45
|
+
};
|
|
46
|
+
const rest = [];
|
|
47
|
+
for (let i = 0; i < argv.length; i++) {
|
|
48
|
+
const arg = argv[i] ?? '';
|
|
49
|
+
const take = () => argv[++i] ?? '';
|
|
50
|
+
if (arg === '--endpoint')
|
|
51
|
+
opts.endpoint = take();
|
|
52
|
+
else if (arg === '--dir')
|
|
53
|
+
opts.dir = take();
|
|
54
|
+
else if (arg === '--bearer')
|
|
55
|
+
opts.bearer = take();
|
|
56
|
+
else if (arg === '--no-demo')
|
|
57
|
+
opts.demo = false;
|
|
58
|
+
else if (arg === '--kind') {
|
|
59
|
+
const value = take();
|
|
60
|
+
if (!KINDS.has(value))
|
|
61
|
+
throw new Error(`--kind must be document, deck or workbook`);
|
|
62
|
+
opts.kind = value;
|
|
63
|
+
}
|
|
64
|
+
else if (arg.startsWith('-'))
|
|
65
|
+
throw new Error(`unknown option '${arg}'`);
|
|
66
|
+
else
|
|
67
|
+
rest.push(arg);
|
|
68
|
+
}
|
|
69
|
+
return { rest, opts };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 主題是給哪個框架用的。
|
|
73
|
+
*
|
|
74
|
+
* `.md` 本身不說 —— open-doc 的 frontmatter 有 pageSize 和 mode,另外兩個沒有,
|
|
75
|
+
* 但那是「有沒有寫」而不是「是哪一個」,拿來推斷會在第一個沒寫 pageSize 的
|
|
76
|
+
* open-doc 主題上出錯。所以看 package.json 的相依,跟 push 認 kind 是同一套。
|
|
77
|
+
*/
|
|
78
|
+
async function resolveKind(root, given) {
|
|
79
|
+
if (given !== undefined)
|
|
80
|
+
return given;
|
|
81
|
+
const kind = kindFromManifest(await readManifest(root));
|
|
82
|
+
if (kind === null) {
|
|
83
|
+
throw new Error('could not tell which framework these themes are for — pass --kind document|deck|workbook');
|
|
84
|
+
}
|
|
85
|
+
return kind;
|
|
86
|
+
}
|
|
87
|
+
async function call(opts, route, init) {
|
|
88
|
+
const { bearer, ...rest } = init;
|
|
89
|
+
const url = new URL(route, opts.endpoint).toString();
|
|
90
|
+
const res = await fetch(url, {
|
|
91
|
+
...rest,
|
|
92
|
+
headers: { ...(rest.headers ?? {}), authorization: `Bearer ${bearer}` },
|
|
93
|
+
});
|
|
94
|
+
if (!res.ok) {
|
|
95
|
+
const message = await res
|
|
96
|
+
.json()
|
|
97
|
+
.then((b) => b.message)
|
|
98
|
+
.catch(() => undefined);
|
|
99
|
+
throw new Error(message ?? `${res.status} from ${url}`);
|
|
100
|
+
}
|
|
101
|
+
return res;
|
|
102
|
+
}
|
|
103
|
+
/** `<id>.md` 或 `<id>.demo.tsx`,同一份主題的兩個檔案。 */
|
|
104
|
+
const THEME_FILE = /^([a-z0-9]+(?:-[a-z0-9]+)*)(\.demo\.tsx|\.md)$/;
|
|
105
|
+
async function runPushThemes(opts, out) {
|
|
106
|
+
const root = process.cwd();
|
|
107
|
+
const dir = path.resolve(root, opts.dir);
|
|
108
|
+
let names;
|
|
109
|
+
try {
|
|
110
|
+
names = await fs.readdir(dir);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
throw new Error(`no ${opts.dir}/ folder here — nothing to push`);
|
|
114
|
+
}
|
|
115
|
+
const wanted = names.filter((n) => THEME_FILE.test(n)).sort();
|
|
116
|
+
if (wanted.length === 0)
|
|
117
|
+
throw new Error(`no themes in ${opts.dir}/`);
|
|
118
|
+
const kind = await resolveKind(root, opts.kind);
|
|
119
|
+
const tree = {};
|
|
120
|
+
for (const name of wanted)
|
|
121
|
+
tree[name] = new Uint8Array(await fs.readFile(path.join(dir, name)));
|
|
122
|
+
const bearer = opts.bearer ?? (await ensureBearer({ endpoint: opts.endpoint, out }));
|
|
123
|
+
const res = await call(opts, `/v1/themes?kind=${kind}`, {
|
|
124
|
+
bearer,
|
|
125
|
+
method: 'POST',
|
|
126
|
+
body: zipSync(tree),
|
|
127
|
+
});
|
|
128
|
+
const body = (await res.json());
|
|
129
|
+
out(` ${body.themes.length} ${body.themes.length === 1 ? 'theme' : 'themes'} — ${kind}`);
|
|
130
|
+
for (const id of body.themes)
|
|
131
|
+
out(` ${id}`);
|
|
132
|
+
/*
|
|
133
|
+
* 示範。這是慢的那一半 —— 每份約兩秒,因為它是一次真的框架建置。所以規格先推完
|
|
134
|
+
* 再做,一份壞掉不會擋住其餘的,也不會擋住已經上去的規格。
|
|
135
|
+
*/
|
|
136
|
+
if (opts.demo) {
|
|
137
|
+
const surface = SURFACES.find((s) => s.kindLabel.toLowerCase() === kindLabelOf(kind));
|
|
138
|
+
for (const id of body.themes) {
|
|
139
|
+
if (!wanted.includes(`${id}.demo.tsx`))
|
|
140
|
+
continue;
|
|
141
|
+
if (surface?.itemConfig === undefined)
|
|
142
|
+
continue;
|
|
143
|
+
try {
|
|
144
|
+
const token = await tokenFor(root, opts.endpoint, `theme-${kind}`, id);
|
|
145
|
+
const outDir = path.join(os.tmpdir(), `costaff-theme-${id}-${Date.now()}`);
|
|
146
|
+
/* 有裸模式就用裸模式,沒有就退回一般的項目設定。 */
|
|
147
|
+
const cfg = surface.demoConfig ?? surface.itemConfig;
|
|
148
|
+
await buildThemeDemo({
|
|
149
|
+
root,
|
|
150
|
+
surface,
|
|
151
|
+
id,
|
|
152
|
+
title: id,
|
|
153
|
+
outDir,
|
|
154
|
+
config: { file: cfg.file, body: cfg.body(token) },
|
|
155
|
+
});
|
|
156
|
+
const tree = {};
|
|
157
|
+
await collect(outDir, '', tree);
|
|
158
|
+
await fs.rm(outDir, { recursive: true, force: true });
|
|
159
|
+
const route = surface.itemRoute(id);
|
|
160
|
+
/*
|
|
161
|
+
* 頁數。示範檔的 `export default [A, B, C]` 是一串識別字,數得出來 ——
|
|
162
|
+
* 用正規式讀而不求值,跟框架自己讀 meta 是同一套做法。數不出來就不送,
|
|
163
|
+
* 頁面上就不顯示總數,而不是顯示一個編出來的數字。
|
|
164
|
+
*/
|
|
165
|
+
const source = await fs.readFile(path.join(dir, `${id}.demo.tsx`), 'utf8');
|
|
166
|
+
const listed = /export\s+default\s+\[([^\]]*)\]/.exec(source)?.[1] ?? '';
|
|
167
|
+
const pages = listed
|
|
168
|
+
.split(',')
|
|
169
|
+
.map((x) => x.trim())
|
|
170
|
+
.filter((x) => /^[A-Za-z_$][\w$]*$/.test(x)).length;
|
|
171
|
+
const q = new URLSearchParams({ token, route });
|
|
172
|
+
if (pages > 0)
|
|
173
|
+
q.set('pages', String(pages));
|
|
174
|
+
await call(opts, `/v1/themes/${kind}/${id}/demo?${q}`, {
|
|
175
|
+
bearer,
|
|
176
|
+
method: 'POST',
|
|
177
|
+
body: zipSync(tree),
|
|
178
|
+
});
|
|
179
|
+
out(` ${id} — demo built`);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
/* 說出來。安靜跳過會讓人以為示範上去了,而詳細頁上就是少一塊。 */
|
|
183
|
+
out(` ${id} — demo skipped: ${String(err instanceof Error ? err.message : err).slice(0, 80)}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/* 被跳過的要說出來。安靜跳過等於讓人以為推上去了。 */
|
|
188
|
+
for (const s of body.skipped) {
|
|
189
|
+
out(` ${s.id} — skipped, ${s.reason === 'no_spec' ? `no ${s.id}.md beside the demo` : s.reason}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/** SURFACES 用 kindLabel 說明自己,push 用 kind;這裡把兩邊接起來。 */
|
|
193
|
+
function kindLabelOf(kind) {
|
|
194
|
+
return kind === 'document' ? 'document' : kind === 'deck' ? 'deck' : 'workbook';
|
|
195
|
+
}
|
|
196
|
+
async function collect(dir, prefix, into) {
|
|
197
|
+
for (const e of await fs.readdir(dir, { withFileTypes: true })) {
|
|
198
|
+
const full = path.join(dir, e.name);
|
|
199
|
+
const name = prefix === '' ? e.name : `${prefix}/${e.name}`;
|
|
200
|
+
if (e.isDirectory())
|
|
201
|
+
await collect(full, name, into);
|
|
202
|
+
else
|
|
203
|
+
into[name] = new Uint8Array(await fs.readFile(full));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
async function runList(opts, out) {
|
|
207
|
+
const bearer = opts.bearer ?? (await ensureBearer({ endpoint: opts.endpoint, out }));
|
|
208
|
+
const res = await call(opts, '/v1/themes', { bearer });
|
|
209
|
+
const { themes } = (await res.json());
|
|
210
|
+
if (themes.length === 0) {
|
|
211
|
+
out(' no themes yet — run `costaff-workspace theme push` in a project that has some');
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const width = Math.max(...themes.map((t) => t.id.length));
|
|
215
|
+
for (const t of themes) {
|
|
216
|
+
out(` ${t.id.padEnd(width)} ${t.kind.padEnd(9)}${t.name}${t.hasDemo ? '' : ' (no demo)'}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async function runPullTheme(opts, id, out) {
|
|
220
|
+
const root = process.cwd();
|
|
221
|
+
const kind = await resolveKind(root, opts.kind);
|
|
222
|
+
const bearer = opts.bearer ?? (await ensureBearer({ endpoint: opts.endpoint, out }));
|
|
223
|
+
const res = await call(opts, `/v1/themes/${kind}/${id}`, { bearer });
|
|
224
|
+
const files = unzipSync(new Uint8Array(await res.arrayBuffer()));
|
|
225
|
+
const dir = path.resolve(root, opts.dir);
|
|
226
|
+
await fs.mkdir(dir, { recursive: true });
|
|
227
|
+
for (const [name, bytes] of Object.entries(files)) {
|
|
228
|
+
/* 伺服器不該送出這種名字,但寫檔的是這裡,所以檢查也在這裡。 */
|
|
229
|
+
if (!THEME_FILE.test(name))
|
|
230
|
+
throw new Error(`refusing to write '${name}'`);
|
|
231
|
+
await fs.writeFile(path.join(dir, name), bytes);
|
|
232
|
+
out(` ${path.join(opts.dir, name)}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async function runRemove(opts, id, out) {
|
|
236
|
+
const kind = await resolveKind(process.cwd(), opts.kind);
|
|
237
|
+
const bearer = opts.bearer ?? (await ensureBearer({ endpoint: opts.endpoint, out }));
|
|
238
|
+
await call(opts, `/v1/themes/${kind}/${id}`, { bearer, method: 'DELETE' });
|
|
239
|
+
out(` removed ${id} (${kind})`);
|
|
240
|
+
}
|
|
241
|
+
export async function runTheme(argv) {
|
|
242
|
+
if (argv[0] === '--help' || argv[0] === '-h' || argv.length === 0) {
|
|
243
|
+
process.stdout.write(USAGE);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const out = (line) => {
|
|
247
|
+
process.stdout.write(`${line}\n`);
|
|
248
|
+
};
|
|
249
|
+
const { rest, opts } = parse(argv.slice(1));
|
|
250
|
+
const action = argv[0];
|
|
251
|
+
switch (action) {
|
|
252
|
+
case 'push':
|
|
253
|
+
return runPushThemes(opts, out);
|
|
254
|
+
case 'list':
|
|
255
|
+
case 'ls':
|
|
256
|
+
return runList(opts, out);
|
|
257
|
+
case 'pull': {
|
|
258
|
+
const id = rest[0];
|
|
259
|
+
if (id === undefined)
|
|
260
|
+
throw new Error('theme pull needs an id — see `theme list`');
|
|
261
|
+
return runPullTheme(opts, id, out);
|
|
262
|
+
}
|
|
263
|
+
case 'rm':
|
|
264
|
+
case 'remove': {
|
|
265
|
+
const id = rest[0];
|
|
266
|
+
if (id === undefined)
|
|
267
|
+
throw new Error('theme rm needs an id — see `theme list`');
|
|
268
|
+
return runRemove(opts, id, out);
|
|
269
|
+
}
|
|
270
|
+
default:
|
|
271
|
+
process.stderr.write(`error: unknown theme action '${action}'\n\n${USAGE}`);
|
|
272
|
+
process.exit(1);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=cli-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-theme.js","sourceRoot":"","sources":["../src/cli-theme.ts"],"names":[],"mappings":"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"}
|
package/dist/integration.js
CHANGED
|
@@ -47,7 +47,7 @@ export const SURFACES = [
|
|
|
47
47
|
},
|
|
48
48
|
/** Where the framework's own router puts the item once mounted at root. */
|
|
49
49
|
itemRoute: (id) => `/d/${id}`,
|
|
50
|
-
metaFields: ['title', 'subtitle', 'pageSize'],
|
|
50
|
+
metaFields: ['title', 'subtitle', 'pageSize', 'theme'],
|
|
51
51
|
/*
|
|
52
52
|
* The receiver's injected bar carries the way back. open-doc does NOT drop
|
|
53
53
|
* its own arrow when the browser is off — showDocBrowser:false swaps `/`
|
|
@@ -78,7 +78,7 @@ export const SURFACES = [
|
|
|
78
78
|
// carry a link back, which would be dead once the file is downloaded.
|
|
79
79
|
buildArgs: (out) => ['build', '--out', out, '--html'],
|
|
80
80
|
itemRoute: () => '/',
|
|
81
|
-
metaFields: ['title', 'description'],
|
|
81
|
+
metaFields: ['title', 'description', 'theme'],
|
|
82
82
|
wrap: true,
|
|
83
83
|
href: (id) => `/s/${id}/`,
|
|
84
84
|
detail: () => 'HTML · xlsx · open-sheet',
|
|
@@ -106,6 +106,13 @@ export const SURFACES = [
|
|
|
106
106
|
` build: { showSlideBrowser: false },\n` +
|
|
107
107
|
`};\n`,
|
|
108
108
|
},
|
|
109
|
+
demoConfig: {
|
|
110
|
+
file: 'open-slide.config.ts',
|
|
111
|
+
body: (token) => `export default {\n` +
|
|
112
|
+
` base: '/${token}/',\n` +
|
|
113
|
+
` build: { showSlideBrowser: false, showSlideUi: false },\n` +
|
|
114
|
+
`};\n`,
|
|
115
|
+
},
|
|
109
116
|
itemRoute: (id) => `/s/${id}`,
|
|
110
117
|
metaFields: ['title'],
|
|
111
118
|
// Not ours to change: the deck viewer's back affordance is tied to its own
|
package/dist/integration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../src/integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../src/integration.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* 還有哪些兄弟指令存在。
|
|
8
8
|
*/
|
|
9
9
|
import { runPull } from "./cli-pull.js";
|
|
10
|
+
import { runTheme } from "./cli-theme.js";
|
|
10
11
|
import { runPush } from "./cli.js";
|
|
11
12
|
import { DEFAULT_ENDPOINT } from "./defaults.js";
|
|
12
13
|
const USAGE = `costaff-workspace — publish to and pull back from CoStaff Workspace
|
|
@@ -15,6 +16,7 @@ const USAGE = `costaff-workspace — publish to and pull back from CoStaff Works
|
|
|
15
16
|
|
|
16
17
|
push push this folder up (run it with nothing else)
|
|
17
18
|
pull <token> fetch a published file's source back out
|
|
19
|
+
theme push, list, pull and remove the themes/ folder
|
|
18
20
|
login sign this machine in
|
|
19
21
|
logout forget this machine's sign-in
|
|
20
22
|
|
|
@@ -30,6 +32,9 @@ async function main() {
|
|
|
30
32
|
return runPush(rest);
|
|
31
33
|
case 'pull':
|
|
32
34
|
return runPull(rest);
|
|
35
|
+
case 'theme':
|
|
36
|
+
case 'themes':
|
|
37
|
+
return runTheme(rest);
|
|
33
38
|
/* login 和 logout 走的是 push 那條路:它們本來就是同一組憑證。 */
|
|
34
39
|
case 'login':
|
|
35
40
|
return runPush([...rest, '--login']);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,KAAK,GAAG;;;;;;;;;;;;uBAYS,gBAAgB;;CAEtC,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,8CAA8C;QAC9C,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACxC,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/project.js
CHANGED
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAmFpE,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ;QACrC,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;QACpC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjE,CAAC"}
|
package/dist/push.js
CHANGED
package/dist/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/dist/stage.js
CHANGED
|
@@ -38,6 +38,40 @@ export async function buildItem({ root, surface, id, outDir, config, }) {
|
|
|
38
38
|
});
|
|
39
39
|
await fs.rm(stage, { recursive: true, force: true });
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* 把一份主題的示範建成 bundle。
|
|
43
|
+
*
|
|
44
|
+
* 示範檔是 `themes/<id>.demo.tsx`,不是一個項目資料夾,所以不能直接餵給 buildItem
|
|
45
|
+
* —— 它被搬到 `<surface.dir>/<id>/index.tsx`,成為一個只有一份東西的專案。
|
|
46
|
+
*
|
|
47
|
+
* 示範檔沒有 `meta`(框架的畫廊不需要),但建置需要一個標題,所以補一個。附加在
|
|
48
|
+
* 檔案尾端而不是插在前面:前面是 import,中間插東西會改到行號,出錯時對不上。
|
|
49
|
+
*/
|
|
50
|
+
export async function buildThemeDemo({ root, surface, id, title, outDir, config, }) {
|
|
51
|
+
const stage = path.join(root, '.build', 'stage', `theme-${id}`);
|
|
52
|
+
await fs.rm(stage, { recursive: true, force: true });
|
|
53
|
+
const item = path.join(stage, surface.dir, id);
|
|
54
|
+
await fs.mkdir(item, { recursive: true });
|
|
55
|
+
const source = await fs.readFile(path.join(root, 'themes', `${id}.demo.tsx`), 'utf8');
|
|
56
|
+
const meta = /export\s+const\s+meta\b/.test(source)
|
|
57
|
+
? ''
|
|
58
|
+
: `\nexport const meta = ${JSON.stringify({ title })};\n`;
|
|
59
|
+
await fs.writeFile(path.join(item, 'index.tsx'), source + meta);
|
|
60
|
+
/* 示範會參照主題自己的資產,themes/ 也要跟著進來。 */
|
|
61
|
+
for (const shared of ['themes', 'assets']) {
|
|
62
|
+
const from = path.join(root, shared);
|
|
63
|
+
if (await exists(from))
|
|
64
|
+
await fs.cp(from, path.join(stage, shared), { recursive: true });
|
|
65
|
+
}
|
|
66
|
+
await fs.symlink(path.join(root, 'node_modules'), path.join(stage, 'node_modules'), 'dir');
|
|
67
|
+
await fs.writeFile(path.join(stage, 'package.json'), `${JSON.stringify({ name: `stage-theme-${id}`, private: true, type: 'module' }, null, 2)}\n`);
|
|
68
|
+
await fs.writeFile(path.join(stage, config.file), config.body);
|
|
69
|
+
execFileSync('npx', [surface.cli, ...surface.buildArgs(path.resolve(outDir))], {
|
|
70
|
+
cwd: stage,
|
|
71
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
72
|
+
});
|
|
73
|
+
await fs.rm(stage, { recursive: true, force: true });
|
|
74
|
+
}
|
|
41
75
|
async function exists(p) {
|
|
42
76
|
try {
|
|
43
77
|
await fs.stat(p);
|
package/dist/stage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"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"}
|