fieldsmith 0.1.0 → 0.2.0

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.
Files changed (42) hide show
  1. package/README.md +499 -7
  2. package/dist/cli/index.js +238 -14
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/schema.js +43 -3
  5. package/dist/cli/schema.js.map +1 -1
  6. package/dist/config.js +36 -3
  7. package/dist/config.js.map +1 -1
  8. package/dist/csv.js +119 -0
  9. package/dist/csv.js.map +1 -0
  10. package/dist/icon/name.js +48 -0
  11. package/dist/icon/name.js.map +1 -0
  12. package/dist/icon/render.js +0 -21
  13. package/dist/icon/render.js.map +1 -1
  14. package/dist/kintone/client.js +6 -1
  15. package/dist/kintone/client.js.map +1 -1
  16. package/dist/kintone/deploy.js +90 -13
  17. package/dist/kintone/deploy.js.map +1 -1
  18. package/dist/kintone/link.js +408 -0
  19. package/dist/kintone/link.js.map +1 -0
  20. package/dist/llm/generate.js +20 -4
  21. package/dist/llm/generate.js.map +1 -1
  22. package/dist/llm/prompt.js +3 -1
  23. package/dist/llm/prompt.js.map +1 -1
  24. package/dist/spec/appSpec.js +189 -3
  25. package/dist/spec/appSpec.js.map +1 -1
  26. package/dist/spec/checkRecords.js +191 -0
  27. package/dist/spec/checkRecords.js.map +1 -0
  28. package/dist/spec/describeForm.js +65 -0
  29. package/dist/spec/describeForm.js.map +1 -0
  30. package/dist/spec/diff.js +133 -6
  31. package/dist/spec/diff.js.map +1 -1
  32. package/dist/spec/fieldSpec.js +60 -8
  33. package/dist/spec/fieldSpec.js.map +1 -1
  34. package/dist/spec/fromKintone.js +127 -15
  35. package/dist/spec/fromKintone.js.map +1 -1
  36. package/dist/spec/layout.js +333 -30
  37. package/dist/spec/layout.js.map +1 -1
  38. package/dist/spec/linkSpec.js +0 -0
  39. package/dist/spec/linkSpec.js.map +1 -0
  40. package/dist/spec/toKintone.js +38 -3
  41. package/dist/spec/toKintone.js.map +1 -1
  42. package/package.json +2 -2
package/dist/spec/diff.js CHANGED
@@ -1,10 +1,62 @@
1
- import { fieldGroups, resolveFieldCode, resolveLayout } from "./appSpec.js";
1
+ import { appliesLayout, fieldGroups, fieldTables, resolveFieldCode, resolveLayout, } from "./appSpec.js";
2
+ import { tableCodeOf } from "./layout.js";
3
+ /**
4
+ * spec から外したのに kintone 側に残る設定を拾う。
5
+ *
6
+ * 「書かれていない項目は現状維持」という仕様どおりだが、**キーを消す=設定を外す**と
7
+ * 読むほうが自然で、しかも差分に出ないので「差分なし=変わっていない」と読めてしまう。
8
+ * 変更としては扱わず、外し方を添えて警告にする。
9
+ *
10
+ * 外し方を示せるものだけを対象にする (真偽値なら `false`、それ以外は空文字)。
11
+ * テーマやタイトルフィールドのように「空にする」書き方が無いものは黙って見送る。
12
+ */
13
+ function staleSettings(label, current, desired, keep) {
14
+ const warnings = [];
15
+ for (const key of Object.keys(current).sort()) {
16
+ if (keep !== undefined && !keep.has(key))
17
+ continue;
18
+ const from = current[key];
19
+ if (from === undefined || unset(from))
20
+ continue;
21
+ if (desired[key] !== undefined)
22
+ continue;
23
+ const cleared = typeof from === "boolean" ? "false" : '""';
24
+ warnings.push(`${label}: ${key} を spec から外しましたが、kintone 側の ${JSON.stringify(from)} は` +
25
+ `据え置かれます (外すには "${key}": ${cleared} と書きます)。`);
26
+ }
27
+ return warnings;
28
+ }
29
+ /** フィールドのうち、外し方を示せる設定。 */
30
+ const FIELD_KEYS_TO_KEEP = new Set([
31
+ "required",
32
+ "unique",
33
+ "noLabel",
34
+ "defaultValue",
35
+ "minValue",
36
+ "maxValue",
37
+ "minLength",
38
+ "maxLength",
39
+ "unit",
40
+ "digit",
41
+ "thumbnailSize",
42
+ "expression",
43
+ "hideExpression",
44
+ ]);
45
+ /** アプリ全体のうち、外し方を示せる設定。 */
46
+ const APP_KEYS_TO_KEEP = new Set(["description"]);
47
+ const TABLE_CHANGE_LABEL = {
48
+ added: "列を追加",
49
+ updated: "列の設定を変更",
50
+ removed: "列を削除",
51
+ moved: "出入り",
52
+ };
2
53
  /** 変更が 1 つも無いか。 */
3
54
  export function isEmptyDiff(diff) {
4
55
  return (diff.added.length === 0 &&
5
56
  diff.updated.length === 0 &&
6
57
  diff.retyped.length === 0 &&
7
58
  diff.orphaned.length === 0 &&
59
+ diff.tableChanges.length === 0 &&
8
60
  diff.app.length === 0 &&
9
61
  diff.views.added.length === 0 &&
10
62
  diff.views.updated.length === 0 &&
@@ -23,6 +75,7 @@ export function diffAppSpec(current, desired) {
23
75
  const updated = [];
24
76
  const retyped = [];
25
77
  const orphaned = [];
78
+ const warnings = [];
26
79
  for (const [code, field] of desiredFields) {
27
80
  const existing = currentFields.get(code);
28
81
  if (existing === undefined) {
@@ -38,7 +91,9 @@ export function diffAppSpec(current, desired) {
38
91
  if (changes.length > 0) {
39
92
  updated.push({ code, field, changes });
40
93
  }
94
+ warnings.push(...staleSettings(code, existing, field, FIELD_KEYS_TO_KEEP));
41
95
  }
96
+ warnings.push(...staleSettings("(アプリ)", current, desired, APP_KEYS_TO_KEEP), ...staleSettings("(アプリ設定)", (current.settings ?? {}), (desired.settings ?? {})));
42
97
  for (const [code, field] of currentFields) {
43
98
  if (!desiredFields.has(code)) {
44
99
  orphaned.push({ code, type: field.type, label: field.label });
@@ -49,15 +104,59 @@ export function diffAppSpec(current, desired) {
49
104
  updated,
50
105
  retyped,
51
106
  orphaned,
107
+ tableChanges: compareTables(current, desired, { added, updated, orphaned }),
108
+ warnings,
52
109
  app: compareAppSettings(current, desired),
53
110
  views: compareViews(current.views ?? [], desired.views ?? []),
54
111
  layout: compareLayout(current, desired),
55
112
  };
56
113
  }
114
+ /**
115
+ * テーブルに関わる変更を拾う。
116
+ *
117
+ * 列の増減・設定変更はもちろん、フィールドがテーブルを出入りしたことも見る。
118
+ * 出入りは kintone では作り直しになり、**データが引き継がれない**ため。
119
+ */
120
+ function compareTables(current, desired, changes) {
121
+ const currentTables = fieldTables(current);
122
+ const desiredTables = fieldTables(desired);
123
+ const result = [];
124
+ for (const entry of changes.added) {
125
+ const table = desiredTables[entry.code];
126
+ if (table !== undefined)
127
+ result.push({ code: entry.code, table, kind: "added" });
128
+ }
129
+ for (const entry of changes.updated) {
130
+ const table = desiredTables[entry.code] ?? currentTables[entry.code];
131
+ if (table !== undefined)
132
+ result.push({ code: entry.code, table, kind: "updated" });
133
+ }
134
+ for (const entry of changes.orphaned) {
135
+ const table = currentTables[entry.code];
136
+ if (table !== undefined)
137
+ result.push({ code: entry.code, table, kind: "removed" });
138
+ }
139
+ // 両方に在るフィールドが、テーブルを出入りしていないか。
140
+ // 名前ではなくコードで比べる (名前だけ変えても同じテーブル)。
141
+ const codeOf = (name) => name === undefined ? undefined : tableCodeOf(name);
142
+ const seen = new Set(result.map((change) => change.code));
143
+ for (const field of desired.fields) {
144
+ const code = resolveFieldCode(field);
145
+ if (seen.has(code))
146
+ continue;
147
+ const from = codeOf(currentTables[code]);
148
+ const to = codeOf(desiredTables[code]);
149
+ if (from === to)
150
+ continue;
151
+ const table = desiredTables[code] ?? currentTables[code];
152
+ result.push({ code, table, kind: "moved" });
153
+ }
154
+ return result;
155
+ }
57
156
  function compareLayout(current, desired) {
58
157
  const currentLayout = resolveLayout(current);
59
158
  const desiredLayout = resolveLayout(desired);
60
- const describe = (layout) => layout.mode === "grouped" ? `grouped (最大 ${layout.maxPerRow} 列)` : "stacked";
159
+ const describe = (layout) => layout.mode === "stacked" ? "stacked" : `${layout.mode} (最大 ${layout.maxPerRow} 列)`;
61
160
  const currentCodes = current.fields.map(resolveFieldCode);
62
161
  const desiredCodes = desired.fields.map(resolveFieldCode);
63
162
  const shared = new Set(currentCodes.filter((code) => desiredCodes.includes(code)));
@@ -67,14 +166,21 @@ function compareLayout(current, desired) {
67
166
  const desiredGroups = fieldGroups(desired);
68
167
  const groupsChanged = [...shared].some((code) => currentGroups[code] !== desiredGroups[code]);
69
168
  const modeChanged = currentLayout.mode !== desiredLayout.mode || currentLayout.maxPerRow !== desiredLayout.maxPerRow;
169
+ // grouped は modeChanged が常に立つ (pull が stacked を返すため) ので、
170
+ // 顔ぶれの変化は結果的にいつも拾えている。sections は同じ指定どうしを比べるので、
171
+ // ここで明示しないと「足したフィールドがセクションの外に出る」ことになる。
172
+ const membersChanged = desiredLayout.mode === "sections" &&
173
+ (currentCodes.length !== desiredCodes.length || shared.size !== desiredCodes.length);
70
174
  return {
71
175
  from: describe(currentLayout),
72
176
  to: describe(desiredLayout),
73
177
  modeChanged,
74
178
  orderChanged,
75
179
  groupsChanged,
180
+ membersChanged,
76
181
  // stacked は「既存の並びに手を触れない」指定なので、違いがあっても組み直さない。
77
- willApply: desiredLayout.mode === "grouped" && (modeChanged || orderChanged || groupsChanged),
182
+ willApply: appliesLayout(desiredLayout.mode) &&
183
+ (modeChanged || orderChanged || groupsChanged || membersChanged),
78
184
  };
79
185
  }
80
186
  function byCode(fields) {
@@ -91,7 +197,12 @@ function byCode(fields) {
91
197
  * 実際には何も起きないのに差分が永遠に消えないことになる。
92
198
  * 値を変えたいときは、明示的に書く (例: `"required": false`)。
93
199
  */
94
- const FIELD_KEYS_TO_IGNORE = new Set(["code", "type", "group"]);
200
+ /**
201
+ * フィールド設定としては比べないキー。
202
+ * `code` と `type` は同一性そのもの、`group` と `table` は kintone に送らない
203
+ * fieldsmith 側の情報で、レイアウト差分とテーブル差分がそれぞれ見ている。
204
+ */
205
+ const FIELD_KEYS_TO_IGNORE = new Set(["code", "type", "group", "table"]);
95
206
  function compareFields(current, desired) {
96
207
  const keys = new Set([
97
208
  ...Object.keys(current).filter((key) => !FIELD_KEYS_TO_IGNORE.has(key)),
@@ -165,15 +276,26 @@ function compareViews(current, desired) {
165
276
  * ここを分けると「required を書いていないフィールド」と
166
277
  * 「required: false と書いたフィールド」が毎回差分になり、無意味な変更が出続ける。
167
278
  */
279
+ /**
280
+ * 2 つの設定値が同じ意味か。
281
+ *
282
+ * 「未指定」は `false` とも空文字とも同じ意味になる。
283
+ * kintone は未設定の上限などを空文字で返し、`pull` はそれを落とすので、
284
+ * 区別すると「制限を外した spec」が毎回差分に出続ける。
285
+ */
168
286
  function same(a, b) {
169
287
  if (a === b)
170
288
  return true;
171
289
  if (a === undefined)
172
- return b === false;
290
+ return unset(b);
173
291
  if (b === undefined)
174
- return a === false;
292
+ return unset(a);
175
293
  return JSON.stringify(a) === JSON.stringify(b);
176
294
  }
295
+ /** 未指定と同じ意味を持つ値。 */
296
+ function unset(value) {
297
+ return value === false || value === "";
298
+ }
177
299
  /** 差分を人が読める行にする。 */
178
300
  export function describeDiff(diff) {
179
301
  const lines = [];
@@ -193,6 +315,10 @@ export function describeDiff(diff) {
193
315
  for (const retype of diff.retyped) {
194
316
  lines.push(` ! ${retype.code}: 型を ${retype.from} → ${retype.to} に変更 (kintone では不可)`);
195
317
  }
318
+ for (const change of diff.tableChanges) {
319
+ lines.push(` ! ${change.code}: テーブル「${change.table}」の${TABLE_CHANGE_LABEL[change.kind]}` +
320
+ " (update では反映できない)");
321
+ }
196
322
  for (const orphan of diff.orphaned) {
197
323
  lines.push(` - ${orphan.code} (${orphan.type}) を削除候補へ`);
198
324
  }
@@ -201,6 +327,7 @@ export function describeDiff(diff) {
201
327
  diff.layout.modeChanged ? `指定: ${diff.layout.from} → ${diff.layout.to}` : null,
202
328
  diff.layout.orderChanged ? "並び順" : null,
203
329
  diff.layout.groupsChanged ? "group" : null,
330
+ diff.layout.membersChanged ? "フィールドの増減" : null,
204
331
  ].filter((reason) => reason !== null);
205
332
  lines.push(` ~ フォームの並びを組み直す (${reasons.join(", ")})`);
206
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/spec/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/spec/diff.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,33 @@ export const UNADDABLE_FIELD_TYPES = {
42
42
  CREATED_TIME: "アプリ作成時に自動生成されるフィールドのため、追加できません",
43
43
  MODIFIER: "アプリ作成時に自動生成されるフィールドのため、追加できません",
44
44
  UPDATED_TIME: "アプリ作成時に自動生成されるフィールドのため、追加できません",
45
- SUBTABLE: "テーブルは v1 では未対応です",
45
+ // テーブルも fields に書くものではない。列になるフィールドに table を付けると、
46
+ // fieldsmith が SUBTABLE に組み立てる。入れ子を書かせないのは group と同じ理由。
47
+ SUBTABLE: "テーブルは fields に書かず、列になるフィールドに table を付けてください",
48
+ // 関連レコード一覧も相手アプリに依存する。加えて condition と displayFields が
49
+ // 相手アプリのフィールドコードなので、--dry-run では実在を確かめようがない。
50
+ // 値を持たない表示専用のフィールドなので、外してもレコードのデータは失われない。
51
+ // @see README.md「関連レコード一覧を対象外にしている理由」
46
52
  REFERENCE_TABLE: "関連レコード一覧は v1 では未対応です",
47
- GROUP: "グループ (フィールドのグループ化) は v1 では未対応です",
53
+ // グループは fields に書くものではなく、layout: "sections" と field.group から
54
+ // fieldsmith が組み立てる。中に何が入るかはレイアウトの話なので、
55
+ // フィールドの列挙とは別の場所で表現したほうが読みやすい。
56
+ GROUP: 'グループは fields に書かず、layout: "sections" と各フィールドの group で指定してください',
57
+ // ルックアップと関連レコード一覧は、外している理由が他と違う。
58
+ // テーブルやグループがアプリ内で完結するのに対し、この 2 つは他のアプリに依存する。
59
+ //
60
+ // 1. 設定に相手アプリの指定が要る。spec に書くと特定の kintone 環境に縛られ、
61
+ // 「同じ spec を別の環境にもう 1 つ」ができなくなる。
62
+ // space を examples/ の spec に持たせていないのと同じ理由。
63
+ // (アプリコードで書けば ID 依存は避けられるが、相手アプリがどの環境でも
64
+ // 同じアプリコードで在ることが前提になり、fieldsmith には保証できない)
65
+ // 2. 相手アプリが先に存在している必要があるため、deploy の
66
+ // 「AppSpec 1 つ → アプリ 1 つ」という決定性が保てない。加えて
67
+ // --dry-run は kintone に接続しないので相手アプリを検証できず、
68
+ // 「検証は通ったのにデプロイ中に落ちる」型の失敗になる。
69
+ //
70
+ // アプリ間の参照は AppSpec の外に置き、kintone 上で人が繋ぐ前提。
71
+ // @see README.md「ルックアップを対象外にしている理由」
48
72
  LOOKUP: "ルックアップは v1 では未対応です",
49
73
  };
50
74
  /**
@@ -128,10 +152,25 @@ const baseFieldShape = {
128
152
  noLabel: z.boolean().optional(),
129
153
  /**
130
154
  * 意味のまとまりの名前 (「書誌情報」「貸出」など)。
131
- * フォームのレイアウトで、同じ名前のフィールドを横に並べるのに使う。
132
- * kintone には送らない、fieldsmith の中だけの情報。
155
+ *
156
+ * `layout` の指定で扱いが変わる。
157
+ * - `grouped` : 同じ名前のフィールドを横に並べる (kintone には送らない)
158
+ * - `sections` : 同じ名前のフィールドを 1 つの**グループフィールド**に入れる
159
+ *
160
+ * `sections` ではこの名前がグループのフィールドコードの元になるため、
161
+ * 上限はフィールドコードに合わせる。
133
162
  */
134
- group: z.string().min(1).max(32).optional(),
163
+ group: z.string().min(1).max(128).optional(),
164
+ /**
165
+ * テーブルの名前 (「明細」「担当者履歴」など)。
166
+ * 同じ名前を書いたフィールドが、1 つのテーブルの列になる。
167
+ *
168
+ * `group` と同時には指定できない。kintone はテーブルの中にグループを置けないため、
169
+ * 両方に属することがそもそも有り得ない。
170
+ *
171
+ * この名前がテーブルのフィールドコードの元になるので、上限はフィールドコードに合わせる。
172
+ */
173
+ table: z.string().min(1).max(128).optional(),
135
174
  };
136
175
  const optionsSchema = z
137
176
  .array(z.string().min(1).max(128), {
@@ -152,6 +191,19 @@ const optionsSchema = z
152
191
  seen.add(option);
153
192
  }
154
193
  });
194
+ /**
195
+ * 数値の設定 (上限・下限・初期値)。
196
+ *
197
+ * **kintone は文字列で返す** (`"31"`)。spec には数値でも書けるので、
198
+ * どちらで書いても同じものとして扱えるよう、文字列に寄せておく。
199
+ * 寄せないと「pull した `"0"`」と「手書きの `0`」が別物になり、
200
+ * 中身が同じなのに毎回の差分に出続ける。
201
+ *
202
+ * 空文字は「制限なし」を表す kintone の書き方なので、そのまま通す。
203
+ */
204
+ const numericSetting = z
205
+ .union([z.string(), z.number()])
206
+ .transform((value) => (typeof value === "number" ? String(value) : value));
155
207
  const plainField = (type) => z.object({ ...baseFieldShape, type: z.literal(type) }).strict();
156
208
  const optionField = (type) => z
157
209
  .object({
@@ -206,9 +258,9 @@ const fieldSpecObjectSchema = z.discriminatedUnion("type", [
206
258
  .object({
207
259
  ...baseFieldShape,
208
260
  type: z.literal("NUMBER"),
209
- defaultValue: z.union([z.string(), z.number()]).optional(),
210
- minValue: z.union([z.string(), z.number()]).optional(),
211
- maxValue: z.union([z.string(), z.number()]).optional(),
261
+ defaultValue: numericSetting.optional(),
262
+ minValue: numericSetting.optional(),
263
+ maxValue: numericSetting.optional(),
212
264
  /** 桁区切りを表示するか。 */
213
265
  digit: z.boolean().optional(),
214
266
  /** 小数点以下の表示桁数。 */
@@ -1 +1 @@
1
- {"version":3,"file":"fieldSpec.js","sourceRoot":"","sources":["../../src/spec/fieldSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fieldSpec.js","sourceRoot":"","sources":["../../src/spec/fieldSpec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { SUPPORTED_FIELD_TYPES } from "./fieldSpec.js";
1
+ import { deriveFieldCode, SUPPORTED_FIELD_TYPES } from "./fieldSpec.js";
2
+ import { ORPHAN_GROUP_CODE } from "./layout.js";
3
+ import { parseIconFileName } from "../icon/name.js";
2
4
  /** アプリ作成時に自動で用意されるので、AppSpec には書かないフィールド型。 */
3
5
  const AUTO_FIELD_TYPES = new Set([
4
6
  "RECORD_NUMBER",
@@ -11,40 +13,106 @@ const AUTO_FIELD_TYPES = new Set([
11
13
  "CATEGORY",
12
14
  ]);
13
15
  const SUPPORTED = new Set(SUPPORTED_FIELD_TYPES);
16
+ /**
17
+ * グループはフィールドとしては書き出さない。
18
+ * `layout: "sections"` と各フィールドの `group` として表現するので、
19
+ * 「表現できなかった」わけではない。警告も出さない。
20
+ */
21
+ const LAYOUT_FIELD_TYPES = new Set(["GROUP"]);
14
22
  export function toAppSpecFromKintone(input) {
15
23
  const warnings = [];
16
24
  const order = fieldOrderFromLayout(input.layout ?? []);
17
- const entries = Object.entries(input.properties)
18
- .filter(([, property]) => {
25
+ const sections = sectionsFromLayout(input.layout ?? [], input.properties);
26
+ const named = (property) => property["label"] ?? property["code"];
27
+ /** その 1 フィールドを AppSpec に持ち込めるか。持ち込めない事情は warnings に残す。 */
28
+ const keep = (property) => {
19
29
  const type = String(property["type"]);
20
30
  if (AUTO_FIELD_TYPES.has(type))
21
31
  return false;
32
+ if (LAYOUT_FIELD_TYPES.has(type))
33
+ return false;
22
34
  if (!SUPPORTED.has(type)) {
23
- warnings.push(`フィールド「${property["label"] ?? property["code"]}」(${type}) は AppSpec で表現できないため除きました。` +
24
- " デプロイし直しても、このフィールドは作られません。");
35
+ warnings.push(`フィールド「${named(property)}」(${type}) は AppSpec で表現できないため除きました。` +
36
+ " デプロイし直しても、このフィールドは作られません" +
37
+ " (既存アプリの update では、フォーム上のこのフィールドはそのまま残ります)。");
25
38
  return false;
26
39
  }
40
+ // ルックアップは独立した型ではなく、SINGLE_LINE_TEXT / NUMBER / LINK に
41
+ // 設定を付けたもの。型の検査だけでは素通りしてしまう。
42
+ //
43
+ // フィールドごと落とすのではなく、ただの文字列などとして残す。そこには
44
+ // 実際にデータが入っているし、AppSpec の側でもアプリ間の参照は
45
+ // 「人が kintone 上で繋ぐ」前提にしているため。
46
+ // @see README.md「ルックアップを対象外にしている理由」
47
+ if (property["lookup"] !== undefined) {
48
+ warnings.push(`フィールド「${named(property)}」のルックアップ設定は` +
49
+ " AppSpec に含められないため落としました。フィールド自体は残しています" +
50
+ " (この spec をデプロイすると、ルックアップではないフィールドになります)。");
51
+ }
27
52
  return true;
28
- })
29
- // レイアウト上の位置で並べる。レイアウトに無いものは末尾へ。
30
- .sort(([codeA], [codeB]) => {
53
+ };
54
+ // テーブルは入れ子だが、AppSpec では列を平らに並べて `table` で結ぶ。
55
+ // ここで入れ子をほどいて、外のフィールドと同じ土俵に乗せる。
56
+ const entries = [];
57
+ for (const [code, property] of Object.entries(input.properties)) {
58
+ if (String(property["type"]) !== "SUBTABLE") {
59
+ if (keep(property))
60
+ entries.push([code, property, undefined]);
61
+ continue;
62
+ }
63
+ // テーブル名は `table` に書く値なので、そこからコードに戻せる必要がある。
64
+ const label = property["label"];
65
+ const name = typeof label === "string" && deriveFieldCode(label) === code ? label : code;
66
+ const columns = (property["fields"] ?? {});
67
+ for (const [columnCode, column] of Object.entries(columns)) {
68
+ if (keep(column))
69
+ entries.push([columnCode, column, name]);
70
+ }
71
+ }
72
+ // レイアウト上の位置で並べる。レイアウトに無いものは末尾へ。
73
+ entries.sort(([codeA], [codeB]) => {
31
74
  const a = order.get(codeA) ?? Number.MAX_SAFE_INTEGER;
32
75
  const b = order.get(codeB) ?? Number.MAX_SAFE_INTEGER;
33
76
  return a - b;
34
77
  });
35
78
  const spec = {
36
79
  name: input.name,
37
- // レイアウトは AppSpec では再現しきれないため、既存の並びには手を触れない。
38
- layout: "stacked",
39
- fields: entries.map(([, property]) => toFieldSpec(property)),
80
+ /*
81
+ * 横並びは読み取れない。1 行に 3 つ並んでいても、fieldsmith が並べたのか
82
+ * 人が画面で並べたのか区別が付かないので、`stacked` (既存の並びに触れない) と言う。
83
+ *
84
+ * グループは読み取れる。レイアウトに GROUP があれば、それは疑いなくセクションなので、
85
+ * `sections` と名乗って往復できるようにする。
86
+ */
87
+ layout: sections.size > 0 ? "sections" : "stacked",
88
+ fields: entries.map(([code, property, table]) => {
89
+ const field = toFieldSpec(property);
90
+ if (table !== undefined)
91
+ field["table"] = table;
92
+ const section = sections.get(code);
93
+ if (section !== undefined)
94
+ field["group"] = section;
95
+ return field;
96
+ }),
40
97
  };
41
98
  assign(spec, "description", input.description);
42
99
  assign(spec, "theme", input.theme);
43
- // アイコンは kintone からは画像として返るので、絵文字や頭文字には戻せない。
44
- // 既定の組込みアイコンは指定していないのと同じなので、画像のときだけ知らせる。
100
+ // アイコンは kintone からは画像として返る。fieldsmith が上げたものなら
101
+ // ファイル名に何を描いたかが残っているので、そこから戻す。
102
+ // 既定の組込みアイコンは指定していないのと同じなので、画像のときだけ見る。
45
103
  if (input.icon?.type === "FILE") {
46
- warnings.push("アプリアイコンに画像が設定されていますが、AppSpec には含められません。" +
47
- ' 必要なら icon に絵文字か頭文字を書いてください (例: "icon": "💼")。');
104
+ const fileName = input.icon.file?.name;
105
+ const parsed = fileName === undefined ? null : parseIconFileName(fileName);
106
+ if (parsed === null) {
107
+ warnings.push("アプリアイコンに画像が設定されていますが、AppSpec には含められません。" +
108
+ ' 必要なら icon に絵文字か頭文字を書いてください (例: "icon": "💼")。');
109
+ }
110
+ else {
111
+ spec["icon"] = parsed.glyph;
112
+ // 背景色は既定と同じでも書き出す。書かないと「spec に無い = 現状維持」と
113
+ // 「既定値と同じ」が見分けられず、書いた人の側で偽の差分になる。
114
+ spec["iconBackground"] = parsed.background;
115
+ }
48
116
  }
49
117
  const views = input.views === undefined ? [] : toViewSpecs(input.views, warnings);
50
118
  if (views.length > 0)
@@ -75,6 +143,50 @@ function fieldOrderFromLayout(layout) {
75
143
  walk(layout);
76
144
  return order;
77
145
  }
146
+ /**
147
+ * レイアウトのグループを辿って、フィールドコード → セクション名を作る。
148
+ *
149
+ * セクション名は `group` に書く値なので、**そこからグループのフィールドコードに
150
+ * 戻せる**必要がある。ラベルから導出したコードが実物と一致するならラベルを使い、
151
+ * 一致しないならコードをそのまま名前にする (往復で別のグループを作らないため)。
152
+ */
153
+ function sectionsFromLayout(layout, properties) {
154
+ const sections = new Map();
155
+ for (const row of layout) {
156
+ if (row["type"] !== "GROUP")
157
+ continue;
158
+ const code = String(row["code"] ?? "");
159
+ // 削除候補は fieldsmith の退避先であって、人が意図したセクションではない。
160
+ if (code === "" || code === ORPHAN_GROUP_CODE)
161
+ continue;
162
+ const label = properties[code]?.["label"];
163
+ const name = typeof label === "string" && deriveFieldCode(label) === code ? label : code;
164
+ const nested = row["layout"];
165
+ if (!Array.isArray(nested))
166
+ continue;
167
+ for (const field of collectFieldCodes(nested)) {
168
+ sections.set(field, name);
169
+ }
170
+ }
171
+ return sections;
172
+ }
173
+ /** 入れ子も含めて、行に載っているフィールドコードを集める。 */
174
+ function collectFieldCodes(rows) {
175
+ const codes = [];
176
+ for (const row of rows) {
177
+ const fields = row["fields"];
178
+ if (Array.isArray(fields)) {
179
+ for (const field of fields) {
180
+ if (typeof field.code === "string")
181
+ codes.push(field.code);
182
+ }
183
+ }
184
+ const nested = row["layout"];
185
+ if (Array.isArray(nested))
186
+ codes.push(...collectFieldCodes(nested));
187
+ }
188
+ return codes;
189
+ }
78
190
  function toFieldSpec(property) {
79
191
  const type = String(property["type"]);
80
192
  const field = {