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 CHANGED
@@ -1,182 +1,116 @@
1
1
  # costaff-workspace
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/costaff-workspace?style=for-the-badge)](https://www.npmjs.com/package/costaff-workspace)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
5
+
3
6
  **English** · [繁體中文](README.zh-TW.md)
4
7
 
5
- Turn a document you built on your own machine into a link you can send someone.
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
- Confirm it is there:
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
- ### The first time, it asks you to sign in
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
- Sign in to CoStaff Workspace
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
- Open that address in a browser. **The code is already in the link**, so you only
61
- have to approve it. The command waits, then carries on by itself.
29
+ ## Highlights
62
30
 
63
- This machine stays signed in. You will not see this again.
31
+ ### 📤 One command, no configuration
64
32
 
65
- ### Then it publishes
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
- 4 documents one bundle each
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
- Those links are the files. Send one to someone and they can read it.
42
+ ### 🔗 Links that survive edits
76
43
 
77
- ## 4. Manage what you published
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
- Go to **<https://workspace.costaffs.app>** to rename files, put them in folders,
80
- and decide who may read each one.
48
+ ### ↩️ Editable from anywhere
81
49
 
82
- > **A newly pushed file is private.** Only you can open it until you say
83
- > otherwise in the file manager. Sending someone the link is not enough — you
84
- > invite them, or you turn the file into a public link, there.
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
- ## Doing it again
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
- **You changed something.** Build and push again. **The link stays the same** —
91
- whoever you sent it to sees the new version.
60
+ ### 📦 One bundle per document
92
61
 
93
- ```bash
94
- pnpm build && costaff-workspace push
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
- **You are on a different computer.** Fetch the project back with the token — the
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 install
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
- guessed --slug my-report --kind deck --source-dir .
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
- | It guesses | From |
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
- If a guess is wrong, pass that one option. If it cannot guess at all it stops and
134
- says so, rather than inventing something.
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
- ### Options
90
+ ## Commands
137
91
 
138
- | Option | Use it when |
92
+ | | |
139
93
  | --- | --- |
140
- | `--title "Q3 report"` | you want a different name in the file manager |
141
- | `--slug q3-report` | the folder name is not the identity you want |
142
- | `--kind document\|deck\|workbook` | it guessed the wrong kind |
143
- | `--site-dir build` | your build output is not in `dist` |
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
- ## When something goes wrong
101
+ A normal project needs none of these. Pass one when a guess is wrong.
168
102
 
169
- | It says | What it means, and what to do |
103
+ | | |
170
104
  | --- | --- |
171
- | `No site at dist — build it first.` | There is nothing built to publish. Run your project's build. |
172
- | `dist has no index.html it is not a publishable site.` | The build ran but produced no page. Check your build settings. |
173
- | `cannot make a slug out of the folder name` | The folder's name has no letters or digits usable as an identity — a folder named in Chinese, for example. Pass `--slug my-report`. |
174
- | `Sign in first run with --login.` | Run `costaff-workspace login`. |
175
- | `Sign-in code expired.` / `Sign-in timed out.` | The code only lasts a few minutes. Just push again for a new one. |
176
- | `… is not a CoStaff Workspace endpoint` | The service could not be reached check your connection, then try again. |
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
- ## Licence
114
+ ## License
181
115
 
182
116
  MIT
package/README.zh-TW.md CHANGED
@@ -1,172 +1,108 @@
1
1
  # costaff-workspace
2
2
 
3
- [English](README.md) · **繁體中文**
4
-
5
- 把你在自己電腦上做好的文件,變成一條可以傳給別人的連結。
6
-
7
- 適用於用 [open-doc](https://github.com/simonliu-ai-product/open-doc)(文件)、
8
- open-slide(簡報)、open-sheet(試算表)做的專案。
3
+ [![npm](https://img.shields.io/npm/v/costaff-workspace?style=for-the-badge)](https://www.npmjs.com/package/costaff-workspace)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
9
5
 
10
- ---
6
+ [English](README.md) · **繁體中文**
11
7
 
12
- ## 1. 安裝
8
+ **[CoStaff Workspace](https://workspace.costaffs.app) 的命令列工具。**
9
+ 把在本機做好的文件發佈出去,拿回一條可以傳的連結。換一台機器取回、修改、再發佈,
10
+ 連結始終不變。
13
11
 
14
- 需要 [Node.js](https://nodejs.org) 20 以上。用 `node -v` 確認。
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
- ```bash
23
- costaff-workspace --help
24
- ```
21
+ 建置好的文件是一整包檔案,而把一整包檔案傳給別人,不等於把文件交給他。靜態託管解決了
22
+ 傳遞,卻丟掉了周邊的一切:誰可以讀、它叫什麼名字、對方看到的是哪一版,以及它是從什麼
23
+ 原始碼建出來的。
25
24
 
26
- <details>
27
- <summary>如果顯示「找不到指令」</summary>
25
+ `costaff-workspace push` 用一個指令補上這段落差。拿回來的是一個位址,不是一次部署。
28
26
 
29
- 你的 shell 看不到 npm 放全域指令的地方。`npm prefix -g` 會印出那個資料夾,把它底下的
30
- `bin` 加進 `PATH`。如果你用 pnpm,跑一次 `pnpm setup` 就好。
31
- </details>
27
+ ## 特色
32
28
 
33
- ## 2. 先建置你的專案
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
- 4 documents — one bundle each
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
- ## 4. 管理你發佈的東西
46
+ 推送會帶著原始碼。`costaff-workspace pull <token>` 會在任何機器上還你一個完整的
47
+ 專案——安裝、修改、發佈,同一條連結。沒有任何東西綁在最初發佈的那台電腦上。
78
48
 
79
- **<https://workspace.costaffs.app>** 改名字、分資料夾,以及決定每一份誰可以看。
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 install
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
- guessed --slug my-report --kind deck --source-dir .
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
- | `--title "第三季報告"` | 你想在檔案管理員裡顯示別的名字 |
134
- | `--slug q3-report` | 資料夾名字不是你要的身分 |
135
- | `--kind document\|deck\|workbook` | 它猜錯種類了 |
136
- | `--site-dir build` | 你的建置產物不在 `dist` |
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
- **原始碼也會一起上去,那是刻意的。** 那正是之後 `pull` 能在任何機器上還你一個
147
- 可以直接跑的專案的原因。`node_modules` 和點開頭的檔案永遠不會被收進去——
148
- **你的 `.env` 不會跟著走**。`--no-source` 可以不送,但那之後這份檔案就拉不回來了。
94
+ 一般的專案一個都不需要。推斷錯了才補上那一個。
149
95
 
150
- **多份文件的專案會比單次建置久。** 每一份文件都會被建成獨立的 bundle。這是必要的:
151
- 在一份共用的建置產物裡,你只傳一份給別人,他就能拿到其他全部。
152
-
153
- **別人分享給你的檔案,拉回來是一份副本。** 它不帶連結,所以推上去會發佈在你自己的
154
- 帳號底下,原件不受影響。
155
-
156
- ---
157
-
158
- ## 出問題的時候
159
-
160
- | 它說 | 意思,以及怎麼辦 |
96
+ | | |
161
97
  | --- | --- |
162
- | `No site at dist — build it first.` | 沒有建置產物可以發佈。先跑專案的建置指令。 |
163
- | `dist has no index.html — it is not a publishable site.` | 建置有跑,但沒有產出頁面。檢查建置設定。 |
164
- | `cannot make a slug out of the folder name` | 資料夾名字裡沒有可以當身分的英數字——例如中文資料夾名。加上 `--slug my-report`。 |
165
- | `Sign in first — run with --login.` | 執行 `costaff-workspace login`。 |
166
- | `Sign-in code expired.` / `Sign-in timed out.` | 驗證碼只有幾分鐘有效。再推一次就會拿到新的。 |
167
- | `… is not a CoStaff Workspace endpoint` | 連不上服務 —— 檢查一下網路再試一次。 |
168
- | `No file at that token.` | token 不對,或這份檔案不是你的、也沒有分享給你。 |
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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"}
@@ -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
@@ -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;AAsClC,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC;QACvD,0EAA0E;QAC1E,UAAU,EAAE;YACV,IAAI,EAAE,oBAAoB;YAC1B;;;;;;;;;;;eAWG;YACH,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,oBAAoB;gBACpB,aAAa,KAAK,OAAO;gBACzB,uCAAuC;gBACvC,MAAM;SACT;QACD,2EAA2E;QAC3E,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QACrC,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;QAC7C;;;;;;;;WAQG;QACH,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;QAClC,MAAM,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,aAAa;QACxD,+EAA+E;QAC/E,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;QACf,0EAA0E;QAC1E,wEAAwE;QACxE,4EAA4E;QAC5E,sEAAsE;QACtE,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC;QAC7D,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG;QACpB,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;QACpC,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B;KACzC;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,MAAM;QACjB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC;QACvD,UAAU,EAAE;YACV,IAAI,EAAE,sBAAsB;YAC5B;;;;;eAKG;YACH,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,oBAAoB;gBACpB,aAAa,KAAK,OAAO;gBACzB,yCAAyC;gBACzC,MAAM;SACT;QACD,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QACrC,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,2EAA2E;QAC3E,wEAAwE;QACxE,qEAAqE;QACrE,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;QAClC,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB;KAClC;CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,OAAO;IACP,kBAAkB;IAClB,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE;QACL,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,kBAAkB;QACzB,kBAAkB,EAAE,gBAAgB;QACpC,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,gBAAgB;KACzB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,gBAAgB;QACvB,kBAAkB,EAAE,gBAAgB;QACpC,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;KACzB;CACF,CAAC;AAEF,SAAS,SAAS,CAAC,GAAW,EAAE,QAAgB;IAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAA2B,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAEhE,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,KAAe;IAC3D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,iDAAiD,OAAO,CAAC,KAAK,cAAc,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,iEAAiE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,qDAAqD,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,SAAiB;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,GAAG,OAAO,CAAC,GAAG,uCAAuC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACrF,aAAa,OAAO,CAAC,KAAK,oDAAoD;SACjF,CAAC;AACR,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;;;;;;;;;;;uBAWS,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,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"}
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
@@ -95,6 +95,7 @@ export async function pushProject(opts) {
95
95
  kind,
96
96
  title: entry.title ?? entry.id,
97
97
  subtitle: entry.subtitle ?? entry.description,
98
+ theme: entry.theme,
98
99
  route: surface.itemRoute(entry.id),
99
100
  siteDir: dir,
100
101
  /* 原始碼跟著走,否則推上去的只有產物,沒有人能在上面繼續工作。 */
@@ -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":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAc,QAAQ,EAAgB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAoB,IAAI,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gDAAgD;AAChD,SAAS,SAAS,CAAC,KAAY,EAAE,KAAa;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CACjC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;IACtC,OAAO;4EACmE,GAAG,CAAC,KAAK,CAAC;;;;;;;;;;;cAWxE,GAAG,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;sBAC1D,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC;eAC7D,CAAC;AAChB,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAQjC;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD;;;;OAIG;IACH,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3G,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAc,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;oBAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACtC,MAAM,SAAS,CAAC;gBACd,IAAI;gBACJ,OAAO;gBACP,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,MAAM,EAAE,GAAG;gBACX,MAAM,EACJ,UAAU,KAAK,SAAS;oBACtB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC;YACT,GAAG,IAAI,CAAC,IAAI;YACZ,MAAM;YACN,QAAQ;YACR,IAAI,EAAE,KAAK,CAAC,EAAE;YACd,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW;YAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,GAAG;YACZ,oCAAoC;YACpC,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;SACd,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAc,KAAK,EAAE,CAAC,EAAE,EAAE;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC"}
@@ -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;AAiFpE,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"}
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
@@ -95,6 +95,7 @@ export async function push(opts) {
95
95
  token,
96
96
  title: opts.title,
97
97
  subtitle: opts.subtitle,
98
+ theme: opts.theme,
98
99
  folder: opts.folder,
99
100
  route: opts.route,
100
101
  entry: opts.entry ?? 'index.html',
package/dist/push.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "costaff-workspace",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Publish documents, decks and workbooks to CoStaff Workspace, and pull their source back out",
5
5
  "keywords": [
6
6
  "costaff",