costaff-workspace 0.1.0 → 0.1.1

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,5 +1,7 @@
1
1
  # costaff-workspace
2
2
 
3
+ **English** · [繁體中文](README.zh-TW.md)
4
+
3
5
  Publish documents, decks and workbooks to [CoStaff Workspace](https://workspace.costaffs.app),
4
6
  and pull their source back out to keep working on them.
5
7
 
@@ -0,0 +1,85 @@
1
+ # costaff-workspace
2
+
3
+ [English](README.md) · **繁體中文**
4
+
5
+ 把文件、簡報、試算表發佈到 [CoStaff Workspace](https://workspace.costaffs.app),
6
+ 以及把原始碼取回來繼續改。
7
+
8
+ 為 [open-doc](https://github.com/simonliu-ai-product/open-doc)、open-slide、
9
+ open-sheet 做的專案而寫。
10
+
11
+ ```bash
12
+ npm i -g costaff-workspace
13
+
14
+ cd my-doc
15
+ costaff-workspace push
16
+ ```
17
+
18
+ 指令就這一行。在專案資料夾裡它會把其餘的推斷出來:資料夾名字是 slug、`package.json`
19
+ 說出這是文件還是簡報還是試算表、`dist/` 是建置產物,原始碼也跟著走,所以之後拉得回來改。
20
+ **每一個猜測都會印出來**,而猜不出來的時候它會停下來,不會憑空編一個。
21
+
22
+ 第一次推會顯示裝置授權碼,在瀏覽器授權後那台機器就記住登入。
23
+
24
+ ## 指令
25
+
26
+ ```bash
27
+ costaff-workspace push # 推這個資料夾
28
+ costaff-workspace pull <token> [dir] # 把某份已發佈檔案的原始碼取回來
29
+ costaff-workspace login # 這台機器登入
30
+ costaff-workspace logout # 忘掉這台機器的登入
31
+ ```
32
+
33
+ `push` 常用的旗標:
34
+
35
+ | 旗標 | |
36
+ | --- | --- |
37
+ | `--slug`、`--kind`、`--title` | 蓋掉某一個猜測 |
38
+ | `--site-dir <dir>` | 建置產物的位置(預設 `dist`) |
39
+ | `--no-source` | 只推產物——之後就拉不回來改了 |
40
+ | `--dry-run` | 只打包並回報,不上傳,也不需要網路 |
41
+ | `--endpoint <url>` | 指向你自己架的 receiver |
42
+
43
+ ## 一個專案是「一個站台含多份文件」
44
+
45
+ open-doc 專案不是一份檔案,是一個站台底下有好幾份文件(`docs/`),而一次
46
+ `open-doc build` 會把它們的 chunk 全部放進同一個 `assets/`。所以 `push` 會**把每一份
47
+ 各自建置成獨立的 bundle**,再一份一份推。
48
+
49
+ 這不是為了整齊。**分享設定唯一能擋住其餘東西的方式,是其餘的東西根本不在那個 bundle 裡**:
50
+ 共用的建置產物裡,拿到其中一份連結的人就能抓到其他份的 chunk。代價是真的——N 次建置
51
+ 而不是一次,資產也在各個 bundle 之間重複。
52
+
53
+ ## 協定是公開的
54
+
55
+ `src/protocol.ts` 是規格,不是實作細節。任何人都可以架自己的 receiver 並用
56
+ `--endpoint` 指過去;`COSTAFF_WORKSPACE_ENDPOINT` 則是整個 shell 都指過去。
57
+
58
+ **加一個必填欄位,對每一個第三方 receiver 都是破壞性變更**,所以預設一律是選填。
59
+ `source` 是選填的:不帶它的推送依然有效,忽略它的 receiver 依然能提供服務。`pull` 在
60
+ 探索文件裡也是選填——不提供的 receiver 直接不寫這個欄位,而不是對 CLI 以為能用的指令回 404。
61
+
62
+ ## 原始碼會帶走什麼
63
+
64
+ `node_modules` 和點開頭的檔案不會被收進去,`.env` 就在那個範圍裡。
65
+
66
+ 本機的相依規格(`link:`、`file:`、`workspace:`、`portal:`)會被換成**實際安裝的版本**,
67
+ 因為作者硬碟上的那條路徑在任何別的機器上都不存在。解不出版本就**拒絕推送**——把一條
68
+ 沒人解得開的路徑發佈出去,換來的是一個講「找不到某個目錄」的安裝失敗,而不是講
69
+ 「這個相依套件有問題」。
70
+
71
+ ## 拉回來的東西取決於你是誰
72
+
73
+ 伺服器決定,不是客戶端問。
74
+
75
+ | | 拿到 | 推回去會 |
76
+ | --- | --- | --- |
77
+ | 擁有者 | 含 token | 更新同一條連結 |
78
+ | 被分享的人 | 不含 token | 在自己這邊產生新連結,原件不動 |
79
+
80
+ 兩個客戶端如果各自判斷誰是擁有者,遲早會有一個判斷錯,而那個錯就是有人覆蓋掉不屬於
81
+ 自己的文件。
82
+
83
+ ## 授權
84
+
85
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "costaff-workspace",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Publish documents, decks and workbooks to CoStaff Workspace, and pull their source back out",
5
5
  "keywords": [
6
6
  "costaff",
@@ -15,12 +15,12 @@
15
15
  "author": "Simon Liu",
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "git+https://github.com/simonliu-ai-product/costaff-workspace-oss.git",
18
+ "url": "git+https://github.com/costaff-ai/costaff-workspace-oss.git",
19
19
  "directory": "cli"
20
20
  },
21
- "homepage": "https://github.com/simonliu-ai-product/costaff-workspace-oss#readme",
21
+ "homepage": "https://github.com/costaff-ai/costaff-workspace-oss#readme",
22
22
  "bugs": {
23
- "url": "https://github.com/simonliu-ai-product/costaff-workspace-oss/issues"
23
+ "url": "https://github.com/costaff-ai/costaff-workspace-oss/issues"
24
24
  },
25
25
  "engines": {
26
26
  "node": ">=20"
@@ -30,7 +30,8 @@
30
30
  "costaff-workspace": "dist/main.js"
31
31
  },
32
32
  "files": [
33
- "dist"
33
+ "dist",
34
+ "README.zh-TW.md"
34
35
  ],
35
36
  "scripts": {
36
37
  "build": "rm -rf dist && tsc -p tsconfig.build.json",