labull-framework 0.1.19 → 0.1.21

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.
@@ -98,6 +98,9 @@ export interface DirInventory {
98
98
  *
99
99
  * 🔴 只走 `rules.maxDepth` 层:确认框要的是"大概有多少东西",为此把一个巨大的目录爬到底
100
100
  * (依赖目录动辄几万个文件)只会让"导出"按钮按下去半天没反应。
101
+ * 🔴 **同一层的子目录并发走下去**(原来是一个一个 `await`:20 个块的开发目录就是串行好几趟树)。
102
+ * 要的只是几个数,所以不计较"先数哪一支";但**顶层项**照名字排序填 `items`,
103
+ * 确认框里那一列每次打开都是同一个顺序。
101
104
  */
102
105
  export declare function inspectDirectory(dir: LocalDir, rules: ScanRules): Promise<DirInventory>;
103
106
  /**
@@ -106,7 +109,9 @@ export declare function inspectDirectory(dir: LocalDir, rules: ScanRules): Promi
106
109
  * 🔴 判据只有一条:**只删 `dir` 的子项**。用 `handle.removeEntry(name, { recursive: true })` 按名字删,
107
110
  * 路径**拼不出来**(不是"拼一个路径再删")—— 这样"删到别处去"在实现上就不可能发生。
108
111
  * 🔴 删除是**不可逆**的,所以它只能由用户在确认框里点过"清空并导出"之后走到这里(见控制台)。
109
- * ⚠️ 删完再铺:并发写的时候如果和删除同时跑,`getDirectoryHandle(create: true)` 可能建出马上又被删掉的目录。
112
+ * 🔴 **并发删**(一次 8 个):20 个块的开发目录就是 20 多个顶层项,一个个等太慢。
113
+ * ⚠️ 删完再铺:并发写的时候如果和删除同时跑,`getDirectoryHandle(create: true)` 可能建出马上又被删掉的目录。
114
+ * ⚠️ 一个删不掉就照原样抛(**与串行一样**):已经删掉的那些留在那儿,"删了几项"由调用方自己看到。
110
115
  */
111
116
  export declare function clearChildren(dir: LocalDir): Promise<number>;
112
117
  /**
@@ -122,5 +127,7 @@ export declare function assertNotBlocksDir(dir: LocalDir, rules: ScanRules): voi
122
127
  *
123
128
  * 🔴 超过正文上限**当场说清**:后端那边回的是"请求正文太大",而用户看到那句话时并不知道
124
129
  * 自己能做什么(这一句里带着"多大 / 上限多少")。
130
+ * 🔴 形状与顺序**一个字都没变**:并发只影响快慢,`folders` / `failures` 仍与后端那套判据
131
+ * 逐条对齐(见 `walk` / `readFiles` 那两段)。
125
132
  */
126
133
  export declare function scanDirectory(dir: LocalDir, rules: ScanRules): Promise<ScanUpload>;
@@ -18,6 +18,18 @@ export declare const BLOCK_ID_PATTERN: RegExp;
18
18
  export declare const MODULE_PATTERN: RegExp;
19
19
  /** 清单里的键名形状。 */
20
20
  export declare const MANIFEST_KEY_PATTERN: RegExp;
21
+ /**
22
+ * 「你自己的地盘」:路径里任何一段以 `_` 开头的东西(推荐放进块内的 `excluded/`)。
23
+ *
24
+ * ⚠️ 与后端 `sdk.EXCLUDED_PREFIX` / `sdk.is_excluded()` **同一套判据**(有对拍用例盯着,
25
+ * 见 `tools/manifest-parity.mjs`):这些文件**照样进库**,但**执行时被忽略** ——
26
+ * 不加载、不扫路由、不试加载、不深检、也不给页面(见 `preview.ts` 里 `pick()` 那一段)。
27
+ */
28
+ export declare const EXCLUDED_PREFIX = "_";
29
+ /** 推荐把这些东西放进去的目录名(只是建议:判据是上面那条前缀)。 */
30
+ export declare const EXCLUDED_DIR = "excluded";
31
+ /** 这段**包内相对路径**算不算"你自己的东西"(每一段都看:`excluded/_test.py` ⇒ 算)。 */
32
+ export declare function isExcluded(name: string): boolean;
21
33
  /** 清单里 `name` 的形状(🔴 这里**不能只判长度**:`' '` 长度合法但它是空的)。 */
22
34
  export declare function validName(value: string): boolean;
23
35
  /** 清单解析出来的字段(缺的 / 空的**不会**出现在这里)。 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "labull-framework",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Labull 前端 SDK:主题 CSS + 登录态 / 外壳组件 / magic block(四块合一,一个包)",