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/config.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
2
4
  import { z } from "zod";
3
5
  export class ConfigError extends Error {
4
6
  constructor(message) {
@@ -116,17 +118,47 @@ export function requireOAuth(config) {
116
118
  return { baseUrl: config.baseUrl, ...config.auth };
117
119
  }
118
120
  /**
119
- * .env をプロセス環境に読み込む。
121
+ * 認証情報を書いたファイルの置き場所を、探す順に返す。
122
+ *
123
+ * cwd だけを見ていると、案件のディレクトリから叩くたびに
124
+ * `node --env-file=...` を書くことになる。かといって上へ遡ると、
125
+ * どれを読んだのか分からなくなる。**明示 → cwd → 設定ディレクトリ**の 3 つに絞る。
126
+ */
127
+ export function dotEnvCandidates(env = process.env) {
128
+ const configDir = env["FIELDSMITH_CONFIG_DIR"] ??
129
+ join(env["XDG_CONFIG_HOME"] ?? join(homedir(), ".config"), "fieldsmith");
130
+ return [
131
+ // 明示指定。どれを読むかを完全に決めたいとき。
132
+ env["FIELDSMITH_ENV"],
133
+ // リポジトリ直下で作業しているとき。これまでの挙動。
134
+ ".env",
135
+ // どのディレクトリから叩いても効く置き場所。
136
+ join(configDir, "default.env"),
137
+ ].filter((path) => path !== undefined && path !== "");
138
+ }
139
+ /**
140
+ * .env をプロセス環境に読み込む。**最初に見つかった 1 つだけを読む。**
141
+ * 複数を重ねると、どの値がどこから来たのか追えなくなる。
142
+ *
120
143
  * dotenv を足すほどの要件ではないため、`KEY=VALUE` 形式だけを素直に解釈する。
121
144
  * すでに設定済みの環境変数は上書きしない (CI での注入を優先するため)。
145
+ *
146
+ * 読んだファイルのパスを返す。どれも無ければ null。
122
147
  */
123
- export function loadDotEnv(path = ".env", env = process.env) {
148
+ export function loadDotEnv(paths = dotEnvCandidates(), env = process.env) {
149
+ for (const path of paths) {
150
+ if (readDotEnvFile(path, env))
151
+ return path;
152
+ }
153
+ return null;
154
+ }
155
+ function readDotEnvFile(path, env) {
124
156
  let content;
125
157
  try {
126
158
  content = readFileSync(path, "utf-8");
127
159
  }
128
160
  catch {
129
- return;
161
+ return false;
130
162
  }
131
163
  for (const line of content.split("\n")) {
132
164
  const trimmed = line.trim();
@@ -145,5 +177,6 @@ export function loadDotEnv(path = ".env", env = process.env) {
145
177
  }
146
178
  env[key] = value;
147
179
  }
180
+ return true;
148
181
  }
149
182
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/csv.js ADDED
@@ -0,0 +1,119 @@
1
+ /**
2
+ * CSV の読み取り。
3
+ *
4
+ * cli-kintone が読み書きする形に合わせる。依存を増やさずに済む程度の仕様なので自前で持つ。
5
+ *
6
+ * **引用符の中の改行を扱えることが必須。** チェックボックスや複数選択の値は
7
+ * 1 つのセルの中に改行区切りで入るため、行単位で切ると壊れる。
8
+ * @see https://cli.kintone.dev/guide/formats/csv/
9
+ */
10
+ export class CsvError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "CsvError";
14
+ }
15
+ }
16
+ /** CSV を行の配列に切り分ける。空行は落とす。 */
17
+ export function parseCsv(text) {
18
+ // BOM は値の一部ではない。付いたままだと先頭列のフィールドコードが一致しなくなる。
19
+ const source = text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;
20
+ const rows = [];
21
+ let row = [];
22
+ let cell = "";
23
+ let quoted = false;
24
+ let started = false;
25
+ const endCell = () => {
26
+ row.push(cell);
27
+ cell = "";
28
+ started = false;
29
+ };
30
+ const endRow = () => {
31
+ endCell();
32
+ // 空行 (セル 1 つで中身なし) は読み飛ばす。末尾の改行で毎回作られるため。
33
+ if (row.length > 1 || row[0] !== "")
34
+ rows.push(row);
35
+ row = [];
36
+ };
37
+ for (let i = 0; i < source.length; i += 1) {
38
+ const char = source[i];
39
+ if (quoted) {
40
+ if (char !== '"') {
41
+ cell += char;
42
+ continue;
43
+ }
44
+ // "" は引用符そのもの。それ以外は引用の終わり。
45
+ if (source[i + 1] === '"') {
46
+ cell += '"';
47
+ i += 1;
48
+ continue;
49
+ }
50
+ quoted = false;
51
+ continue;
52
+ }
53
+ if (char === '"' && !started) {
54
+ quoted = true;
55
+ started = true;
56
+ continue;
57
+ }
58
+ if (char === ",") {
59
+ endCell();
60
+ continue;
61
+ }
62
+ if (char === "\r")
63
+ continue;
64
+ if (char === "\n") {
65
+ endRow();
66
+ continue;
67
+ }
68
+ cell += char;
69
+ started = true;
70
+ }
71
+ if (quoted) {
72
+ throw new CsvError("引用符が閉じられていません。CSV の末尾を確認してください。");
73
+ }
74
+ if (cell !== "" || row.length > 0)
75
+ endRow();
76
+ return rows;
77
+ }
78
+ /** cli-kintone がレコードの先頭行に付ける印。テーブルを含むときだけ現れる。 */
79
+ export const PRIMARY_MARK_COLUMN = "*";
80
+ /**
81
+ * 切り分けた CSV を、レコードの列に組み直す。
82
+ *
83
+ * `*` 列があれば、印の付いた行から次の印までを 1 件とみなす。
84
+ * 無ければ 1 行が 1 件。
85
+ */
86
+ export function toCsvTable(rows) {
87
+ const [header, ...body] = rows;
88
+ if (header === undefined) {
89
+ throw new CsvError("CSV が空です。1 行目にフィールドコードが要ります。");
90
+ }
91
+ const duplicated = header.filter((name, index) => name !== "" && header.indexOf(name) !== index);
92
+ if (duplicated.length > 0) {
93
+ throw new CsvError(`CSV の見出しに同じ列が 2 つ以上あります: ${[...new Set(duplicated)].join(", ")}`);
94
+ }
95
+ const hasPrimaryMark = header.includes(PRIMARY_MARK_COLUMN);
96
+ const toValues = (cells) => {
97
+ const values = {};
98
+ header.forEach((name, index) => {
99
+ if (name !== "" && name !== PRIMARY_MARK_COLUMN)
100
+ values[name] = cells[index] ?? "";
101
+ });
102
+ return values;
103
+ };
104
+ const records = [];
105
+ body.forEach((cells, index) => {
106
+ const line = index + 2;
107
+ const row = { line, values: toValues(cells) };
108
+ const starts = !hasPrimaryMark || cells[header.indexOf(PRIMARY_MARK_COLUMN)]?.trim() === PRIMARY_MARK_COLUMN;
109
+ const previous = records[records.length - 1];
110
+ if (starts || previous === undefined) {
111
+ records.push({ line, values: row.values, rows: [row] });
112
+ return;
113
+ }
114
+ // 続きの行。テーブルの外の値は先頭行のものが効くので、行だけ足す。
115
+ previous.rows.push(row);
116
+ });
117
+ return { header, records };
118
+ }
119
+ //# sourceMappingURL=csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../src/csv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * アイコン画像のファイル名。
3
+ *
4
+ * 画像そのものを読む必要が無いので、resvg を引き込まないよう render.ts と分けてある。
5
+ * `pull` (spec 層) からも使う。
6
+ */
7
+ /**
8
+ * アップロードするアイコン画像のファイル名。
9
+ *
10
+ * **何を描いたかをファイル名に残す。** kintone はアプリアイコンを画像として持つので、
11
+ * 画像そのものからは「🏢 を描いた」ことも「背景色に何を使った」ことも読み取れない。
12
+ * `getAppSettings` は `icon.file.name` を返すので、ここに書いておけば `pull` で戻せる。
13
+ *
14
+ * 人が kintone の画面で差し替えた画像はこの形にならず、その場合は
15
+ * これまで通り「AppSpec には含められません」と伝えることになる。
16
+ */
17
+ export function iconFileName(glyph, background) {
18
+ return `fieldsmith-icon-${glyph}-${background.replace("#", "")}.png`;
19
+ }
20
+ /** `iconFileName` が付けた名前を読み戻す。fieldsmith が作ったものでなければ null。 */
21
+ export function parseIconFileName(name) {
22
+ const matched = /^fieldsmith-icon-(.+)-([0-9a-fA-F]{6})\.png$/.exec(name);
23
+ if (matched === null)
24
+ return null;
25
+ return { glyph: matched[1], background: `#${matched[2].toLowerCase()}` };
26
+ }
27
+ const PALETTE = [
28
+ "#2563eb",
29
+ "#059669",
30
+ "#dc2626",
31
+ "#7c3aed",
32
+ "#ea580c",
33
+ "#0891b2",
34
+ "#c026d3",
35
+ "#65a30d",
36
+ ];
37
+ /**
38
+ * アプリ名から背景色を決める。
39
+ * 同じ名前なら常に同じ色になるので、作り直しても見た目が変わらない。
40
+ */
41
+ export function backgroundFor(name) {
42
+ let hash = 0;
43
+ for (const char of name) {
44
+ hash = (hash * 31 + char.codePointAt(0)) >>> 0;
45
+ }
46
+ return PALETTE[hash % PALETTE.length];
47
+ }
48
+ //# sourceMappingURL=name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.js","sourceRoot":"","sources":["../../src/icon/name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,UAAkB;IAC5D,OAAO,mBAAmB,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC;AACvE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAC/B,IAAY;IAEZ,MAAM,OAAO,GAAG,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,OAAO,GAAG;IACd,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACD,CAAC;AAEX;;;GAGG;AAEH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAE,CAAC;AACzC,CAAC"}
@@ -41,27 +41,6 @@ export function stripEmojiModifiers(glyph) {
41
41
  .replace(/[\u{1F3FB}-\u{1F3FF}]/gu, "");
42
42
  return [...cleaned][0] ?? "";
43
43
  }
44
- /**
45
- * アプリ名から背景色を決める。
46
- * 同じ名前なら常に同じ色になるので、作り直しても見た目が変わらない。
47
- */
48
- const PALETTE = [
49
- "#2563eb",
50
- "#059669",
51
- "#dc2626",
52
- "#7c3aed",
53
- "#ea580c",
54
- "#0891b2",
55
- "#c026d3",
56
- "#65a30d",
57
- ];
58
- export function backgroundFor(name) {
59
- let hash = 0;
60
- for (const char of name) {
61
- hash = (hash * 31 + char.codePointAt(0)) >>> 0;
62
- }
63
- return PALETTE[hash % PALETTE.length];
64
- }
65
44
  /** アプリ名の先頭 1〜2 文字を頭文字として使う。 */
66
45
  export function initialsFor(name) {
67
46
  const chars = [...name.trim()].filter((char) => !/\s/u.test(char));
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/icon/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/icon/render.ts"],"names":[],"mappings":"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"}
@@ -136,7 +136,12 @@ const USER_AGENT = "fieldsmith";
136
136
  async function rawRequest(authHeaders, baseUrl, method, path, body, timeoutMs, fetchImpl) {
137
137
  const response = await fetchImpl(`${baseUrl}${path}`, {
138
138
  method,
139
- headers: { ...authHeaders, "Content-Type": "application/json" },
139
+ headers: {
140
+ ...authHeaders,
141
+ // 本文が無いのに Content-Type を送ると kintone が 400 (CB_IL02) を返す。
142
+ // GET でこの経路を使うと必ず失敗していた。
143
+ ...(body === undefined ? {} : { "Content-Type": "application/json" }),
144
+ },
140
145
  ...(body === undefined ? {} : { body: JSON.stringify(body) }),
141
146
  signal: AbortSignal.timeout(timeoutMs),
142
147
  });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/kintone/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAkBpF,wBAAwB;AACxB,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAGjC;IACA;IAHX,YACE,OAAe,EACN,MAAc,EACd,IAAwB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAoB;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAahD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA4B;IACrE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;QAC5C,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC7B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,OAA4B;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAA4D,CAAC;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAE7C,MAAM,MAAM,GACV,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;QAC3B,IAAI,oBAAoB,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC1D,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;YACrF,aAAa,EAAE,OAAO,CAAC,eAAe,IAAI,yBAAyB;YACnE,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;IAEL,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExF,OAAO;QACL,KAAK,CAAC,IAAI,CAAI,SAAuD;YACnE,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,mBAAmB,CAC3B,GAAG,MAAM,CAAC,OAAO,cAAc;wBAC7B,iDAAiD,CACpD,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAI,MAA8B,EAAE,IAAY,EAAE,IAAc;YAC3E,OAAO,MAAM,UAAU,CACrB,EAAE,wBAAwB,EAAE,WAAW,EAAE,EACzC,MAAM,CAAC,OAAO,EACd,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,eAAe,IAAI,yBAAyB,EACpD,SAAS,CACV,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAA4B;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,mBAAmB,CAC3B,GAAG,MAAM,CAAC,OAAO,gDAAgD,CAClE,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,wCAAwC;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe;YACjD,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAgB,MAAM,CAAC;IAEhC,MAAM,OAAO,GACX,OAAO,CAAC,aAAa;QACrB,CAAC,CAAC,WAAmB,EAAE,EAAE,CACvB,IAAI,oBAAoB,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;YACjC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;YACrF,aAAa,EAAE,OAAO,CAAC,eAAe,IAAI,yBAAyB;YACnE,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC,CAAC;IAER,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACvE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,IAAI,CAAI,SAAuD;YACnE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACxC,wCAAwC;gBACxC,MAAM,OAAO,EAAE,CAAC;gBAChB,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAI,MAA8B,EAAE,IAAY,EAAE,IAAc;YAC3E,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YAED,MAAM,IAAI,GAAG,GAAe,EAAE,CAC5B,UAAU,CACR,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,WAAW,EAAE,EAAE,EAChD,MAAM,CAAC,OAAO,EACd,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,eAAe,IAAI,yBAAyB,EACpD,SAAS,CACV,CAAC;YAEJ,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;oBAAE,MAAM,KAAK,CAAC;gBACjF,MAAM,OAAO,EAAE,CAAC;gBAChB,OAAO,MAAM,IAAI,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,qCAAqC;AACrC,KAAK,UAAU,UAAU,CACvB,WAAmC,EACnC,OAAe,EACf,MAA8B,EAC9B,IAAY,EACZ,IAAa,EACb,SAAiB,EACjB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;QACpD,MAAM;QACN,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/D,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;IAEhF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,mBAAmB,CAC3B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,EACrF,QAAQ,CAAC,MAAM,EACf,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,aAAa,CAAC,YAA8B;IAC1D,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,YAAY,KAAK,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,mBAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/kintone/client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { toAppSpecFromKintone } from "../spec/fromKintone.js";
2
- import { buildUpdatedLayout, collectLayoutFields, describeRows, ORPHAN_GROUP_CODE, ORPHAN_GROUP_LABEL, regroupLayout, } from "../spec/layout.js";
2
+ import { buildUpdatedLayout, collectLayoutFields, describeLayout, ORPHAN_GROUP_CODE, ORPHAN_GROUP_LABEL, regroupLayout, sectionCodeOf, } from "../spec/layout.js";
3
3
  import { diffAppSpec } from "../spec/diff.js";
4
- import { fieldGroups, parseAppSpec, resolveFieldCode, resolveLayout, } from "../spec/appSpec.js";
5
- import { toAppSettings, toFieldProperties, toKintonePayloads, toViews, } from "../spec/toKintone.js";
6
- import { backgroundFor, renderIcon } from "../icon/render.js";
4
+ import { appliesLayout, fieldGroups, fieldTables, parseAppSpec, resolveFieldCode, resolveLayout, sectionNames, } from "../spec/appSpec.js";
5
+ import { toAppSettings, toFieldProperties, toKintonePayloads, toSectionProperties, toViews, } from "../spec/toKintone.js";
6
+ import { renderIcon } from "../icon/render.js";
7
+ import { backgroundFor, iconFileName } from "../icon/name.js";
7
8
  import { apiPathPrefix, KintoneRequestError } from "./client.js";
8
9
  /** フィールド追加 API 1 回あたりに送るフィールド数の上限。kintone の上限より十分小さく取る。 */
9
10
  export const FIELD_CHUNK_SIZE = 100;
@@ -68,7 +69,7 @@ export async function deployAppSpec(spec, kintone, options = {}) {
68
69
  revision = result.revision;
69
70
  }
70
71
  const layout = resolveLayout(spec);
71
- if (layout.mode === "grouped") {
72
+ if (appliesLayout(layout.mode)) {
72
73
  step = "updateLayout";
73
74
  report({ step: "updateLayout", message: "フォームの並びを整えています" });
74
75
  // 推測で組み立てず、kintone が実際に置いたレイアウトを取得して並べ替える。
@@ -79,6 +80,8 @@ export async function deployAppSpec(spec, kintone, options = {}) {
79
80
  maxPerRow: layout.maxPerRow,
80
81
  // kintone のレイアウトには group が無いので、AppSpec 側の対応表を渡す。
81
82
  groups: fieldGroups(spec),
83
+ tables: fieldTables(spec),
84
+ sections: layout.mode === "sections",
82
85
  });
83
86
  const result = await kintone.call((client) => client.app.updateFormLayout({
84
87
  app: appId,
@@ -88,9 +91,8 @@ export async function deployAppSpec(spec, kintone, options = {}) {
88
91
  report({
89
92
  step: "updateLayout",
90
93
  message: `フォームを ${regrouped.length} 行に整えました`,
91
- detail: describeRows(regrouped
92
- .filter((row) => row.type === "ROW")
93
- .map((row) => row.fields)).join(" / ") + ` / revision ${revision} → ${result.revision}`,
94
+ // テーブルやグループも含めて、実際に送った形をそのまま見せる。
95
+ detail: describeLayout(regrouped).join(" / ") + ` / revision ${revision} → ${result.revision}`,
94
96
  });
95
97
  revision = result.revision;
96
98
  }
@@ -105,7 +107,9 @@ export async function deployAppSpec(spec, kintone, options = {}) {
105
107
  detail: `背景色 ${background}`,
106
108
  });
107
109
  const icon = renderIcon({ glyph: spec.icon, background });
108
- const { fileKey } = await kintone.call((client) => client.file.uploadFile({ file: { name: "app-icon.png", data: icon.png } }));
110
+ const { fileKey } = await kintone.call((client) => client.file.uploadFile({
111
+ file: { name: iconFileName(spec.icon, background), data: icon.png },
112
+ }));
109
113
  report({
110
114
  step: "uploadIcon",
111
115
  message: `アイコンをアップロードしました (${icon.mode === "emoji" ? "絵文字" : "文字"})`,
@@ -307,6 +311,28 @@ export async function pullApp(appId, kintone, options = {}) {
307
311
  appName: settings.name,
308
312
  hasOrphanGroup: Object.hasOwn(form.properties, ORPHAN_GROUP_CODE),
309
313
  parkedCodes: parkedFieldCodes(layout.layout),
314
+ groupCodes: Object.entries(form.properties)
315
+ .filter(([, property]) => property.type === "GROUP")
316
+ .map(([code]) => code),
317
+ };
318
+ }
319
+ /**
320
+ * フォームの構造だけを読む。**読み取りしかしない。**
321
+ *
322
+ * `pullApp` と違って AppSpec には変換しない。AppSpec が表現しない型や飾りも
323
+ * そのまま見たいので、kintone が返す形のまま渡す。
324
+ */
325
+ export async function fetchForm(appId, kintone, options = {}) {
326
+ const preview = options.preview === true;
327
+ const [settings, form, layout] = await Promise.all([
328
+ kintone.call((client) => client.app.getAppSettings({ app: appId, preview })),
329
+ kintone.call((client) => client.app.getFormFields({ app: appId, preview })),
330
+ kintone.call((client) => client.app.getFormLayout({ app: appId, preview })),
331
+ ]);
332
+ return {
333
+ appName: settings.name,
334
+ layout: layout.layout,
335
+ properties: form.properties,
310
336
  };
311
337
  }
312
338
  /** 削除候補グループの中に居るフィールドコード。 */
@@ -370,6 +396,28 @@ export async function updateApp(appId, desired, kintone, options = {}) {
370
396
  " 別のフィールドコードで新しいフィールドを作り、古い方は AppSpec から外してください" +
371
397
  " (外したフィールドは削除候補に移ります。データは残ります)。", diff);
372
398
  }
399
+ // 目標から消えたセクション。中身は spec の並びに置き直すが、
400
+ // グループフィールド自体は削除しない (フィールドを消さないのと同じ理由)。
401
+ const warnings = [...pulled.warnings];
402
+ if (resolveLayout(desired).mode === "sections") {
403
+ const wanted = new Set(sectionNames(desired).map(sectionCodeOf));
404
+ const leftover = pulled.groupCodes.filter((code) => code !== ORPHAN_GROUP_CODE && !wanted.has(code));
405
+ if (leftover.length > 0) {
406
+ warnings.push(`グループ「${leftover.join("」「")}」は AppSpec に無くなりました。` +
407
+ " 中身は spec の並びに置き直しますが、空のグループはフォームに残ります" +
408
+ " (不要なら kintone の画面で削除してください)。");
409
+ }
410
+ }
411
+ if (diff.tableChanges.length > 0) {
412
+ // テーブルには列の退避先が無い。中途半端に適用せず、まとめて止める。
413
+ const detail = diff.tableChanges
414
+ .map((change) => ` ${change.code} (テーブル「${change.table}」)`)
415
+ .join("\n");
416
+ throw new UnsupportedUpdateError("テーブルの変更は update では反映できません。\n" +
417
+ `${detail}\n` +
418
+ " kintone はテーブルの列を外へ出せず、出すと作り直しになってデータが失われます。\n" +
419
+ " テーブルの変更は kintone の画面で行い、そのあと pull で spec を取り直してください。", diff);
420
+ }
373
421
  // 既に削除候補へ移してあるものは、もう動かす必要がない。
374
422
  const parked = new Set(pulled.parkedCodes);
375
423
  const orphanCodes = diff.orphaned
@@ -390,7 +438,7 @@ export async function updateApp(appId, desired, kintone, options = {}) {
390
438
  diff,
391
439
  revision: "-1",
392
440
  deployed: false,
393
- warnings: pulled.warnings,
441
+ warnings,
394
442
  pendingOrphans: [],
395
443
  };
396
444
  }
@@ -398,6 +446,13 @@ export async function updateApp(appId, desired, kintone, options = {}) {
398
446
  const needsOrphanGroup = orphanCodes.length > 0 && !pulled.hasOrphanGroup;
399
447
  // 追加するフィールド。削除候補グループもフィールドなので、無ければここで作る。
400
448
  const additions = toFieldProperties(diff.added.map((entry) => entry.field));
449
+ // セクションもフィールドなので、レイアウトを書く前に作っておく必要がある。
450
+ // 同じ group からは毎回同じコードが出るので、既に在るものは作らない。
451
+ const existingGroups = new Set(pulled.groupCodes);
452
+ for (const [code, property] of Object.entries(toSectionProperties(desired))) {
453
+ if (!existingGroups.has(code))
454
+ additions[code] = property;
455
+ }
401
456
  if (needsOrphanGroup) {
402
457
  additions[ORPHAN_GROUP_CODE] = {
403
458
  type: "GROUP",
@@ -428,7 +483,27 @@ export async function updateApp(appId, desired, kintone, options = {}) {
428
483
  revision = result.revision;
429
484
  }
430
485
  if (diff.app.length > 0) {
431
- const settings = toAppSettings(desired);
486
+ let settings = toAppSettings(desired);
487
+ // アイコンは fileKey を先に取る必要があるので、一般設定を送る前に上げる。
488
+ const iconChanged = diff.app.some((change) => change.key === "icon" || change.key === "iconBackground");
489
+ if (iconChanged && desired.icon !== undefined) {
490
+ const background = desired.iconBackground ?? backgroundFor(desired.name);
491
+ report({
492
+ step: "uploadIcon",
493
+ message: `アイコンを生成しています (${desired.icon})`,
494
+ detail: `背景色 ${background}`,
495
+ });
496
+ const icon = renderIcon({ glyph: desired.icon, background });
497
+ const { fileKey } = await kintone.call((client) => client.file.uploadFile({
498
+ file: { name: iconFileName(desired.icon, background), data: icon.png },
499
+ }));
500
+ report({
501
+ step: "uploadIcon",
502
+ message: `アイコンをアップロードしました (${icon.mode === "emoji" ? "絵文字" : "文字"})`,
503
+ detail: `${Math.round(icon.png.length / 1024)}KB, fileKey=${fileKey}`,
504
+ });
505
+ settings = { ...(settings ?? {}), icon: { type: "FILE", file: { fileKey } } };
506
+ }
432
507
  if (settings !== null) {
433
508
  report({
434
509
  step: "updateSettings",
@@ -475,8 +550,10 @@ export async function updateApp(appId, desired, kintone, options = {}) {
475
550
  })),
476
551
  orphans: orphanCodes,
477
552
  regroup: diff.layout.willApply,
553
+ sections: resolveLayout(desired).mode === "sections",
478
554
  maxPerRow: resolveLayout(desired).maxPerRow,
479
555
  groups: fieldGroups(desired),
556
+ tables: fieldTables(desired),
480
557
  });
481
558
  const result = await kintone.call((client) => client.app.updateFormLayout({
482
559
  app: appId,
@@ -498,7 +575,7 @@ export async function updateApp(appId, desired, kintone, options = {}) {
498
575
  diff,
499
576
  revision,
500
577
  deployed: false,
501
- warnings: pulled.warnings,
578
+ warnings,
502
579
  pendingOrphans: orphanCodes,
503
580
  };
504
581
  }
@@ -512,7 +589,7 @@ export async function updateApp(appId, desired, kintone, options = {}) {
512
589
  diff,
513
590
  revision,
514
591
  deployed: true,
515
- warnings: pulled.warnings,
592
+ warnings,
516
593
  pendingOrphans: orphanCodes,
517
594
  };
518
595
  }