@orizm/cli 3.2.0 → 3.3.0-beta.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.
Files changed (71) hide show
  1. package/dist/{agent-Bd30EhQC.mjs → agent-Kf8iuW2I.mjs} +2 -2
  2. package/dist/{agent-Bd30EhQC.mjs.map → agent-Kf8iuW2I.mjs.map} +1 -1
  3. package/dist/{agent-vC2-9rjt.cjs → agent-UZZtdOZS.cjs} +2 -2
  4. package/dist/{agent-vC2-9rjt.cjs.map → agent-UZZtdOZS.cjs.map} +1 -1
  5. package/dist/cli/main.cjs +4 -4
  6. package/dist/cli/main.mjs +4 -4
  7. package/dist/{cms-DLOypcw8.mjs → cms-8XZhxwsM.mjs} +5 -2
  8. package/dist/{cms-DLOypcw8.mjs.map → cms-8XZhxwsM.mjs.map} +1 -1
  9. package/dist/{cms-CId7jg5l.cjs → cms-C4zEtppZ.cjs} +5 -2
  10. package/dist/{cms-CId7jg5l.cjs.map → cms-C4zEtppZ.cjs.map} +1 -1
  11. package/dist/{codegen-kbbIwPbb.cjs → codegen-Cypg4O3L.cjs} +3 -3
  12. package/dist/{codegen-kbbIwPbb.cjs.map → codegen-Cypg4O3L.cjs.map} +1 -1
  13. package/dist/{codegen-BKE_IYoM.mjs → codegen-Dnjv7zfm.mjs} +3 -3
  14. package/dist/{codegen-BKE_IYoM.mjs.map → codegen-Dnjv7zfm.mjs.map} +1 -1
  15. package/dist/config/index.cjs +4 -2
  16. package/dist/config/index.cjs.map +1 -1
  17. package/dist/config/index.d.mts +8 -1
  18. package/dist/config/index.d.mts.map +1 -1
  19. package/dist/config/index.mjs +4 -2
  20. package/dist/config/index.mjs.map +1 -1
  21. package/dist/{config-loader-D8x32gEU.cjs → config-loader-CZfANHBf.cjs} +2 -2
  22. package/dist/config-loader-CZfANHBf.cjs.map +1 -0
  23. package/dist/{config-loader-BEgS869e.mjs → config-loader-CtbZOGjc.mjs} +3 -3
  24. package/dist/config-loader-CtbZOGjc.mjs.map +1 -0
  25. package/dist/{consumer-OG6IEJun.cjs → consumer-BSgriLn0.cjs} +2 -2
  26. package/dist/{consumer-OG6IEJun.cjs.map → consumer-BSgriLn0.cjs.map} +1 -1
  27. package/dist/{consumer-CqyZdG9v.mjs → consumer-s8LnLw4e.mjs} +2 -2
  28. package/dist/{consumer-CqyZdG9v.mjs.map → consumer-s8LnLw4e.mjs.map} +1 -1
  29. package/dist/docs/features/cli/commands/schema.md +3 -2
  30. package/dist/docs/features/cms-sdk/install.md +1 -1
  31. package/dist/docs/features/console/audit-logs.md +3 -0
  32. package/dist/docs/features/consumer-sdk/install.md +1 -1
  33. package/dist/docs/features/dictionary.md +268 -0
  34. package/dist/docs/features/full-text-search/local-development.md +145 -0
  35. package/dist/docs/features/full-text-search.md +146 -0
  36. package/dist/docs/features/schema/database.md +9 -8
  37. package/dist/docs/index.md +3 -1
  38. package/dist/docs/manifest.json +3 -3
  39. package/dist/{erd-BNv5Th6z.mjs → erd-BihhEfZ_.mjs} +2 -2
  40. package/dist/{erd-BNv5Th6z.mjs.map → erd-BihhEfZ_.mjs.map} +1 -1
  41. package/dist/{erd-ByuVMQ5n.cjs → erd-DmnB1v2c.cjs} +2 -2
  42. package/dist/{erd-ByuVMQ5n.cjs.map → erd-DmnB1v2c.cjs.map} +1 -1
  43. package/dist/{init-CPfpVlUN.mjs → init-BpKpTQ0z.mjs} +66 -13
  44. package/dist/init-BpKpTQ0z.mjs.map +1 -0
  45. package/dist/{init-NaL2N3Go.cjs → init-BrZCChEG.cjs} +66 -13
  46. package/dist/init-BrZCChEG.cjs.map +1 -0
  47. package/dist/{push-9fPpd4U8.cjs → push-BggkrD0g.cjs} +28 -10
  48. package/dist/push-BggkrD0g.cjs.map +1 -0
  49. package/dist/{push-54rmb0T0.mjs → push-xWnD9oov.mjs} +28 -10
  50. package/dist/push-xWnD9oov.mjs.map +1 -0
  51. package/dist/{run-codegen-mclysZuT.cjs → run-codegen-B-90rvjk.cjs} +2 -2
  52. package/dist/run-codegen-B-90rvjk.cjs.map +1 -0
  53. package/dist/{run-codegen-DjnV60bE.mjs → run-codegen-CrO08jJT.mjs} +2 -2
  54. package/dist/run-codegen-CrO08jJT.mjs.map +1 -0
  55. package/dist/{schema-CNSTXsVa.cjs → schema-CUVTXrHk.cjs} +4 -4
  56. package/dist/{schema-CNSTXsVa.cjs.map → schema-CUVTXrHk.cjs.map} +1 -1
  57. package/dist/{schema-BL6SlLtH.mjs → schema-DlUWHV_t.mjs} +4 -4
  58. package/dist/{schema-BL6SlLtH.mjs.map → schema-DlUWHV_t.mjs.map} +1 -1
  59. package/dist/{validate-BpxZ8LTl.cjs → validate-BH8jqdqq.cjs} +2 -2
  60. package/dist/{validate-BpxZ8LTl.cjs.map → validate-BH8jqdqq.cjs.map} +1 -1
  61. package/dist/{validate-Ca0CRo16.mjs → validate-COS4bfr0.mjs} +2 -2
  62. package/dist/{validate-Ca0CRo16.mjs.map → validate-COS4bfr0.mjs.map} +1 -1
  63. package/package.json +8 -8
  64. package/dist/config-loader-BEgS869e.mjs.map +0 -1
  65. package/dist/config-loader-D8x32gEU.cjs.map +0 -1
  66. package/dist/init-CPfpVlUN.mjs.map +0 -1
  67. package/dist/init-NaL2N3Go.cjs.map +0 -1
  68. package/dist/push-54rmb0T0.mjs.map +0 -1
  69. package/dist/push-9fPpd4U8.cjs.map +0 -1
  70. package/dist/run-codegen-DjnV60bE.mjs.map +0 -1
  71. package/dist/run-codegen-mclysZuT.cjs.map +0 -1
@@ -6,9 +6,9 @@ var agent_default = defineCommand({
6
6
  name: "agent",
7
7
  description: "Set up AI coding agents to use the bundled Orizm docs"
8
8
  },
9
- subCommands: { init: () => import("./init-CPfpVlUN.mjs").then((m) => m.default) }
9
+ subCommands: { init: () => import("./init-BpKpTQ0z.mjs").then((m) => m.default) }
10
10
  });
11
11
 
12
12
  //#endregion
13
13
  export { agent_default as default };
14
- //# sourceMappingURL=agent-Bd30EhQC.mjs.map
14
+ //# sourceMappingURL=agent-Kf8iuW2I.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-Bd30EhQC.mjs","names":[],"sources":["../src/cli/commands/agent/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"agent\",\n description: \"Set up AI coding agents to use the bundled Orizm docs\",\n },\n subCommands: {\n init: () => import(\"./init.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,oBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa,EACX,YAAY,OAAO,sBAAY,CAAC,MAAM,MAAM,EAAE,OAAO,EACvD;AACF,CAAC"}
1
+ {"version":3,"file":"agent-Kf8iuW2I.mjs","names":[],"sources":["../src/cli/commands/agent/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"agent\",\n description: \"Set up AI coding agents to use the bundled Orizm docs\",\n },\n subCommands: {\n init: () => import(\"./init.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,oBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa,EACX,YAAY,OAAO,sBAAY,CAAC,MAAM,MAAM,EAAE,OAAO,EACvD;AACF,CAAC"}
@@ -6,9 +6,9 @@ var agent_default = require_cli_main.defineCommand({
6
6
  name: "agent",
7
7
  description: "Set up AI coding agents to use the bundled Orizm docs"
8
8
  },
9
- subCommands: { init: () => Promise.resolve().then(() => require("./init-NaL2N3Go.cjs")).then((m) => m.default) }
9
+ subCommands: { init: () => Promise.resolve().then(() => require("./init-BrZCChEG.cjs")).then((m) => m.default) }
10
10
  });
11
11
 
12
12
  //#endregion
13
13
  exports.default = agent_default;
14
- //# sourceMappingURL=agent-vC2-9rjt.cjs.map
14
+ //# sourceMappingURL=agent-UZZtdOZS.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-vC2-9rjt.cjs","names":["defineCommand"],"sources":["../src/cli/commands/agent/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"agent\",\n description: \"Set up AI coding agents to use the bundled Orizm docs\",\n },\n subCommands: {\n init: () => import(\"./init.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,oBAAeA,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa,EACX,iDAAY,wBAAoB,MAAM,MAAM,EAAE,OAAO,EACvD;AACF,CAAC"}
1
+ {"version":3,"file":"agent-UZZtdOZS.cjs","names":["defineCommand"],"sources":["../src/cli/commands/agent/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"agent\",\n description: \"Set up AI coding agents to use the bundled Orizm docs\",\n },\n subCommands: {\n init: () => import(\"./init.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,oBAAeA,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa,EACX,iDAAY,wBAAoB,MAAM,MAAM,EAAE,OAAO,EACvD;AACF,CAAC"}
package/dist/cli/main.cjs CHANGED
@@ -35,7 +35,7 @@ let valibot = require("valibot");
35
35
  valibot = __toESM(valibot, 1);
36
36
 
37
37
  //#region package.json
38
- var version$1 = "3.2.0";
38
+ var version$1 = "3.3.0-beta.1";
39
39
 
40
40
  //#endregion
41
41
  //#region src/cli/version.ts
@@ -206,14 +206,14 @@ const main = defineCommand({
206
206
  link: () => Promise.resolve().then(() => require("../link-Cz7MX02S.cjs")).then((m) => m.default),
207
207
  org: () => Promise.resolve().then(() => require("../org-Drj3VqIm.cjs")).then((m) => m.default),
208
208
  project: () => Promise.resolve().then(() => require("../project-Dm7nr5NV.cjs")).then((m) => m.default),
209
- codegen: () => Promise.resolve().then(() => require("../codegen-kbbIwPbb.cjs")).then((m) => m.default),
210
- schema: () => Promise.resolve().then(() => require("../schema-CNSTXsVa.cjs")).then((m) => m.default),
209
+ codegen: () => Promise.resolve().then(() => require("../codegen-Cypg4O3L.cjs")).then((m) => m.default),
210
+ schema: () => Promise.resolve().then(() => require("../schema-CUVTXrHk.cjs")).then((m) => m.default),
211
211
  key: () => Promise.resolve().then(() => require("../key-tRYRqYNo.cjs")).then((m) => m.default),
212
212
  "project-user": () => Promise.resolve().then(() => require("../project-user-wLFnHFwB.cjs")).then((m) => m.default),
213
213
  webhook: () => Promise.resolve().then(() => require("../webhook-CQeuAqec.cjs")).then((m) => m.default),
214
214
  content: () => Promise.resolve().then(() => require("../content-ClRuLcGq.cjs")).then((m) => m.default),
215
215
  bucket: () => Promise.resolve().then(() => require("../bucket-CFaYmimY.cjs")).then((m) => m.default),
216
- agent: () => Promise.resolve().then(() => require("../agent-vC2-9rjt.cjs")).then((m) => m.default)
216
+ agent: () => Promise.resolve().then(() => require("../agent-UZZtdOZS.cjs")).then((m) => m.default)
217
217
  }
218
218
  });
219
219
 
package/dist/cli/main.mjs CHANGED
@@ -6,7 +6,7 @@ import { colors } from "consola/utils";
6
6
  import * as v from "valibot";
7
7
 
8
8
  //#region package.json
9
- var version$1 = "3.2.0";
9
+ var version$1 = "3.3.0-beta.1";
10
10
 
11
11
  //#endregion
12
12
  //#region src/cli/version.ts
@@ -177,14 +177,14 @@ const main = defineCommand$1({
177
177
  link: () => import("../link-Bd55x5Zf.mjs").then((m) => m.default),
178
178
  org: () => import("../org-Co-rjfr-.mjs").then((m) => m.default),
179
179
  project: () => import("../project-C7qWFjMV.mjs").then((m) => m.default),
180
- codegen: () => import("../codegen-BKE_IYoM.mjs").then((m) => m.default),
181
- schema: () => import("../schema-BL6SlLtH.mjs").then((m) => m.default),
180
+ codegen: () => import("../codegen-Dnjv7zfm.mjs").then((m) => m.default),
181
+ schema: () => import("../schema-DlUWHV_t.mjs").then((m) => m.default),
182
182
  key: () => import("../key-CyVxu3Uk.mjs").then((m) => m.default),
183
183
  "project-user": () => import("../project-user-D9h_QBc0.mjs").then((m) => m.default),
184
184
  webhook: () => import("../webhook-BT3cHrq5.mjs").then((m) => m.default),
185
185
  content: () => import("../content-DWnYo6ad.mjs").then((m) => m.default),
186
186
  bucket: () => import("../bucket-D-lu1xgZ.mjs").then((m) => m.default),
187
- agent: () => import("../agent-Bd30EhQC.mjs").then((m) => m.default)
187
+ agent: () => import("../agent-Kf8iuW2I.mjs").then((m) => m.default)
188
188
  }
189
189
  });
190
190
 
@@ -1,6 +1,6 @@
1
1
  import { t as defineCommand } from "./cli/main.mjs";
2
2
  import { n as configFileArg, r as contextArgs, t as DEFAULT_CONFIG_FILE } from "./shared-CZZimGxc.mjs";
3
- import { a as renderModuleDescriptorBlock, c as renderSection, d as renderWebhookTypesSection, f as toCodeTypeName, i as renderColumnField, l as renderTypeBlock, n as AUTOGEN_HEADER, o as renderModuleRowTypeBlock, p as formatTsWithPrettier, r as UTILITIES, s as renderRefsFieldLines, t as runCodegen, u as renderUniqueFieldLines } from "./run-codegen-DjnV60bE.mjs";
3
+ import { a as renderModuleDescriptorBlock, c as renderSection, d as renderWebhookTypesSection, f as toCodeTypeName, i as renderColumnField, l as renderTypeBlock, n as AUTOGEN_HEADER, o as renderModuleRowTypeBlock, p as formatTsWithPrettier, r as UTILITIES, s as renderRefsFieldLines, t as runCodegen, u as renderUniqueFieldLines } from "./run-codegen-CrO08jJT.mjs";
4
4
 
5
5
  //#region src/cli/codegen/cms.ts
6
6
  function renderCmsModule(config) {
@@ -124,6 +124,8 @@ function renderCmsClient(config) {
124
124
  this.userinfo = this.client.userinfo;
125
125
 
126
126
  this.auth = this.client.auth;
127
+
128
+ this.dictionary = this.client.dictionary;
127
129
  }
128
130
 
129
131
  readonly tables;
@@ -131,6 +133,7 @@ function renderCmsClient(config) {
131
133
  readonly userManagement;
132
134
  readonly userinfo;
133
135
  readonly auth;
136
+ readonly dictionary;
134
137
  }`;
135
138
  }
136
139
 
@@ -169,4 +172,4 @@ var cms_default = defineCommand({
169
172
 
170
173
  //#endregion
171
174
  export { cms_default as default };
172
- //# sourceMappingURL=cms-DLOypcw8.mjs.map
175
+ //# sourceMappingURL=cms-8XZhxwsM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-DLOypcw8.mjs","names":[],"sources":["../src/cli/codegen/cms.ts","../src/cli/commands/codegen/cms.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n isSubmissions?: boolean;\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n formOptions?: { submissionColumns?: RenderColumn[] };\n};\n\nexport function renderCmsModule(config: CommonOrizmConfig): Promise<string> {\n const submissionTables: RenderTable[] = config.tables\n .filter((t) => t.enableForm)\n .map((t) => ({\n name: t.name + \"__submission\",\n columns: t.formOptions?.submissionColumns ?? [],\n isSubmissions: true,\n }));\n const allTables: RenderTable[] = [...config.tables, ...submissionTables];\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/cms-sdk/common\";',\n 'import type { OrizmCMSClient } from \"@orizm/cms-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", allTables.map(renderTableTypes)),\n renderSection(\"Module types\", modules.map(renderModuleTypes)),\n \"// Descriptor types\\n\" +\n [\n ...allTables.map(renderTableDescriptor),\n modules.map(renderModuleDescriptorBlock).join(\"\\n\"),\n ].join(\"\\n\\n\"),\n // Webhook の購読対象は base テーブルのみ\n renderWebhookTypesSection(config.tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderCmsClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableTypes(table: RenderTable): string {\n const cols = table.columns;\n const name = toCodeTypeName(table.name);\n\n const rowType = renderTypeBlock(name, [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n ...(!table.isSubmissions\n ? [\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n \"scheduledPublishAt: string | null;\",\n \"scheduledUnpublishAt: string | null;\",\n ]\n : [\n \"_formId: string;\",\n \"_content: unknown;\",\n \"_formSchema: unknown;\",\n \"_attachments: StorageItemType[];\",\n ]),\n ...cols.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...(!table.isSubmissions\n ? [\n \"group?: string | null;\",\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n ...cols\n .filter((col) => !col.readOnly)\n .map((col) =>\n renderColumnField(col, { optional: true, suffix: \"UpdateInput\" }),\n ),\n ...(!table.isSubmissions\n ? [\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderModuleTypes(mod: {\n name: string;\n columns: RenderColumn[];\n}): string {\n const name = toCodeTypeName(mod.name);\n const cols = mod.columns;\n\n const rowType = renderModuleRowTypeBlock(mod);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n \"id?: string;\",\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"UpdateInput\",\n }),\n ),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n `create: ${name}CreateInput;`,\n `update: ${name}UpdateInput;`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ...(table.enableForm\n ? [`submissionDescriptor: ${name}_Submission__Descriptor;`]\n : [\"submissionDescriptor: never;\"]),\n ]);\n}\n\nfunction renderCmsClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.client.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n const bucketEntries = config.buckets\n .map((b) => `${b.name}: this.client.getBucketClient(\"${b.name}\"),`)\n .join(\"\\n\");\n\n return `export class CMSClient {\n constructor(protected client: OrizmCMSClient) {\n this.tables = {\n ${tableEntries}\n };\n\n this.buckets = {\n ${bucketEntries}\n };\n\n this.userManagement = this.client.userManagement;\n\n this.userinfo = this.client.userinfo;\n\n this.auth = this.client.auth;\n }\n\n readonly tables;\n readonly buckets;\n readonly userManagement;\n readonly userinfo;\n readonly auth;\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderCmsModule } from \"../../codegen/cms.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst cmsArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"cms\",\n description: \"Generate CMS SDK types from a schema definition\",\n },\n args: cmsArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"CMS\",\n render: renderCmsModule,\n }),\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"cms-8XZhxwsM.mjs","names":[],"sources":["../src/cli/codegen/cms.ts","../src/cli/commands/codegen/cms.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n isSubmissions?: boolean;\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n formOptions?: { submissionColumns?: RenderColumn[] };\n};\n\nexport function renderCmsModule(config: CommonOrizmConfig): Promise<string> {\n const submissionTables: RenderTable[] = config.tables\n .filter((t) => t.enableForm)\n .map((t) => ({\n name: t.name + \"__submission\",\n columns: t.formOptions?.submissionColumns ?? [],\n isSubmissions: true,\n }));\n const allTables: RenderTable[] = [...config.tables, ...submissionTables];\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/cms-sdk/common\";',\n 'import type { OrizmCMSClient } from \"@orizm/cms-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", allTables.map(renderTableTypes)),\n renderSection(\"Module types\", modules.map(renderModuleTypes)),\n \"// Descriptor types\\n\" +\n [\n ...allTables.map(renderTableDescriptor),\n modules.map(renderModuleDescriptorBlock).join(\"\\n\"),\n ].join(\"\\n\\n\"),\n // Webhook の購読対象は base テーブルのみ\n renderWebhookTypesSection(config.tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderCmsClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableTypes(table: RenderTable): string {\n const cols = table.columns;\n const name = toCodeTypeName(table.name);\n\n const rowType = renderTypeBlock(name, [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n ...(!table.isSubmissions\n ? [\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n \"scheduledPublishAt: string | null;\",\n \"scheduledUnpublishAt: string | null;\",\n ]\n : [\n \"_formId: string;\",\n \"_content: unknown;\",\n \"_formSchema: unknown;\",\n \"_attachments: StorageItemType[];\",\n ]),\n ...cols.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...(!table.isSubmissions\n ? [\n \"group?: string | null;\",\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n ...cols\n .filter((col) => !col.readOnly)\n .map((col) =>\n renderColumnField(col, { optional: true, suffix: \"UpdateInput\" }),\n ),\n ...(!table.isSubmissions\n ? [\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderModuleTypes(mod: {\n name: string;\n columns: RenderColumn[];\n}): string {\n const name = toCodeTypeName(mod.name);\n const cols = mod.columns;\n\n const rowType = renderModuleRowTypeBlock(mod);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n \"id?: string;\",\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"UpdateInput\",\n }),\n ),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n `create: ${name}CreateInput;`,\n `update: ${name}UpdateInput;`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ...(table.enableForm\n ? [`submissionDescriptor: ${name}_Submission__Descriptor;`]\n : [\"submissionDescriptor: never;\"]),\n ]);\n}\n\nfunction renderCmsClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.client.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n const bucketEntries = config.buckets\n .map((b) => `${b.name}: this.client.getBucketClient(\"${b.name}\"),`)\n .join(\"\\n\");\n\n return `export class CMSClient {\n constructor(protected client: OrizmCMSClient) {\n this.tables = {\n ${tableEntries}\n };\n\n this.buckets = {\n ${bucketEntries}\n };\n\n this.userManagement = this.client.userManagement;\n\n this.userinfo = this.client.userinfo;\n\n this.auth = this.client.auth;\n\n this.dictionary = this.client.dictionary;\n }\n\n readonly tables;\n readonly buckets;\n readonly userManagement;\n readonly userinfo;\n readonly auth;\n readonly dictionary;\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderCmsModule } from \"../../codegen/cms.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst cmsArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"cms\",\n description: \"Generate CMS SDK types from a schema definition\",\n },\n args: cmsArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"CMS\",\n render: renderCmsModule,\n }),\n});\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  const require_cli_main = require('./cli/main.cjs');
2
2
  const require_shared = require('./shared-DHRPzzKl.cjs');
3
- const require_run_codegen = require('./run-codegen-mclysZuT.cjs');
3
+ const require_run_codegen = require('./run-codegen-B-90rvjk.cjs');
4
4
 
5
5
  //#region src/cli/codegen/cms.ts
6
6
  function renderCmsModule(config) {
@@ -124,6 +124,8 @@ function renderCmsClient(config) {
124
124
  this.userinfo = this.client.userinfo;
125
125
 
126
126
  this.auth = this.client.auth;
127
+
128
+ this.dictionary = this.client.dictionary;
127
129
  }
128
130
 
129
131
  readonly tables;
@@ -131,6 +133,7 @@ function renderCmsClient(config) {
131
133
  readonly userManagement;
132
134
  readonly userinfo;
133
135
  readonly auth;
136
+ readonly dictionary;
134
137
  }`;
135
138
  }
136
139
 
@@ -169,4 +172,4 @@ var cms_default = require_cli_main.defineCommand({
169
172
 
170
173
  //#endregion
171
174
  exports.default = cms_default;
172
- //# sourceMappingURL=cms-CId7jg5l.cjs.map
175
+ //# sourceMappingURL=cms-C4zEtppZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-CId7jg5l.cjs","names":["formatTsWithPrettier","AUTOGEN_HEADER","UTILITIES","renderSection","renderModuleDescriptorBlock","renderWebhookTypesSection","toCodeTypeName","renderTypeBlock","renderColumnField","renderModuleRowTypeBlock","renderRefsFieldLines","renderUniqueFieldLines","contextArgs","configFileArg","defineCommand","runCodegen"],"sources":["../src/cli/codegen/cms.ts","../src/cli/commands/codegen/cms.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n isSubmissions?: boolean;\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n formOptions?: { submissionColumns?: RenderColumn[] };\n};\n\nexport function renderCmsModule(config: CommonOrizmConfig): Promise<string> {\n const submissionTables: RenderTable[] = config.tables\n .filter((t) => t.enableForm)\n .map((t) => ({\n name: t.name + \"__submission\",\n columns: t.formOptions?.submissionColumns ?? [],\n isSubmissions: true,\n }));\n const allTables: RenderTable[] = [...config.tables, ...submissionTables];\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/cms-sdk/common\";',\n 'import type { OrizmCMSClient } from \"@orizm/cms-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", allTables.map(renderTableTypes)),\n renderSection(\"Module types\", modules.map(renderModuleTypes)),\n \"// Descriptor types\\n\" +\n [\n ...allTables.map(renderTableDescriptor),\n modules.map(renderModuleDescriptorBlock).join(\"\\n\"),\n ].join(\"\\n\\n\"),\n // Webhook の購読対象は base テーブルのみ\n renderWebhookTypesSection(config.tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderCmsClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableTypes(table: RenderTable): string {\n const cols = table.columns;\n const name = toCodeTypeName(table.name);\n\n const rowType = renderTypeBlock(name, [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n ...(!table.isSubmissions\n ? [\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n \"scheduledPublishAt: string | null;\",\n \"scheduledUnpublishAt: string | null;\",\n ]\n : [\n \"_formId: string;\",\n \"_content: unknown;\",\n \"_formSchema: unknown;\",\n \"_attachments: StorageItemType[];\",\n ]),\n ...cols.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...(!table.isSubmissions\n ? [\n \"group?: string | null;\",\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n ...cols\n .filter((col) => !col.readOnly)\n .map((col) =>\n renderColumnField(col, { optional: true, suffix: \"UpdateInput\" }),\n ),\n ...(!table.isSubmissions\n ? [\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderModuleTypes(mod: {\n name: string;\n columns: RenderColumn[];\n}): string {\n const name = toCodeTypeName(mod.name);\n const cols = mod.columns;\n\n const rowType = renderModuleRowTypeBlock(mod);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n \"id?: string;\",\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"UpdateInput\",\n }),\n ),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n `create: ${name}CreateInput;`,\n `update: ${name}UpdateInput;`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ...(table.enableForm\n ? [`submissionDescriptor: ${name}_Submission__Descriptor;`]\n : [\"submissionDescriptor: never;\"]),\n ]);\n}\n\nfunction renderCmsClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.client.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n const bucketEntries = config.buckets\n .map((b) => `${b.name}: this.client.getBucketClient(\"${b.name}\"),`)\n .join(\"\\n\");\n\n return `export class CMSClient {\n constructor(protected client: OrizmCMSClient) {\n this.tables = {\n ${tableEntries}\n };\n\n this.buckets = {\n ${bucketEntries}\n };\n\n this.userManagement = this.client.userManagement;\n\n this.userinfo = this.client.userinfo;\n\n this.auth = this.client.auth;\n }\n\n readonly tables;\n readonly buckets;\n readonly userManagement;\n readonly userinfo;\n readonly auth;\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderCmsModule } from \"../../codegen/cms.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst cmsArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"cms\",\n description: \"Generate CMS SDK types from a schema definition\",\n },\n args: cmsArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"CMS\",\n render: renderCmsModule,\n }),\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"cms-C4zEtppZ.cjs","names":["formatTsWithPrettier","AUTOGEN_HEADER","UTILITIES","renderSection","renderModuleDescriptorBlock","renderWebhookTypesSection","toCodeTypeName","renderTypeBlock","renderColumnField","renderModuleRowTypeBlock","renderRefsFieldLines","renderUniqueFieldLines","contextArgs","configFileArg","defineCommand","runCodegen"],"sources":["../src/cli/codegen/cms.ts","../src/cli/commands/codegen/cms.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n isSubmissions?: boolean;\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n formOptions?: { submissionColumns?: RenderColumn[] };\n};\n\nexport function renderCmsModule(config: CommonOrizmConfig): Promise<string> {\n const submissionTables: RenderTable[] = config.tables\n .filter((t) => t.enableForm)\n .map((t) => ({\n name: t.name + \"__submission\",\n columns: t.formOptions?.submissionColumns ?? [],\n isSubmissions: true,\n }));\n const allTables: RenderTable[] = [...config.tables, ...submissionTables];\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/cms-sdk/common\";',\n 'import type { OrizmCMSClient } from \"@orizm/cms-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", allTables.map(renderTableTypes)),\n renderSection(\"Module types\", modules.map(renderModuleTypes)),\n \"// Descriptor types\\n\" +\n [\n ...allTables.map(renderTableDescriptor),\n modules.map(renderModuleDescriptorBlock).join(\"\\n\"),\n ].join(\"\\n\\n\"),\n // Webhook の購読対象は base テーブルのみ\n renderWebhookTypesSection(config.tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderCmsClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableTypes(table: RenderTable): string {\n const cols = table.columns;\n const name = toCodeTypeName(table.name);\n\n const rowType = renderTypeBlock(name, [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n ...(!table.isSubmissions\n ? [\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n \"scheduledPublishAt: string | null;\",\n \"scheduledUnpublishAt: string | null;\",\n ]\n : [\n \"_formId: string;\",\n \"_content: unknown;\",\n \"_formSchema: unknown;\",\n \"_attachments: StorageItemType[];\",\n ]),\n ...cols.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...(!table.isSubmissions\n ? [\n \"group?: string | null;\",\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n ...cols\n .filter((col) => !col.readOnly)\n .map((col) =>\n renderColumnField(col, { optional: true, suffix: \"UpdateInput\" }),\n ),\n ...(!table.isSubmissions\n ? [\n \"publishedAt?: string | null;\",\n \"scheduledPublishAt?: string | null;\",\n \"scheduledUnpublishAt?: string | null;\",\n \"createdAt?: string;\",\n ]\n : []),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderModuleTypes(mod: {\n name: string;\n columns: RenderColumn[];\n}): string {\n const name = toCodeTypeName(mod.name);\n const cols = mod.columns;\n\n const rowType = renderModuleRowTypeBlock(mod);\n\n const createType = renderTypeBlock(`${name}CreateInput`, [\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"CreateInput\",\n }),\n ),\n ]);\n\n const updateType = renderTypeBlock(`${name}UpdateInput`, [\n \"id?: string;\",\n ...cols.map((col) =>\n renderColumnField(col, {\n optional: !col.required,\n suffix: \"UpdateInput\",\n }),\n ),\n ]);\n\n return [rowType, createType, updateType].join(\"\\n\\n\");\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n `create: ${name}CreateInput;`,\n `update: ${name}UpdateInput;`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ...(table.enableForm\n ? [`submissionDescriptor: ${name}_Submission__Descriptor;`]\n : [\"submissionDescriptor: never;\"]),\n ]);\n}\n\nfunction renderCmsClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.client.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n const bucketEntries = config.buckets\n .map((b) => `${b.name}: this.client.getBucketClient(\"${b.name}\"),`)\n .join(\"\\n\");\n\n return `export class CMSClient {\n constructor(protected client: OrizmCMSClient) {\n this.tables = {\n ${tableEntries}\n };\n\n this.buckets = {\n ${bucketEntries}\n };\n\n this.userManagement = this.client.userManagement;\n\n this.userinfo = this.client.userinfo;\n\n this.auth = this.client.auth;\n\n this.dictionary = this.client.dictionary;\n }\n\n readonly tables;\n readonly buckets;\n readonly userManagement;\n readonly userinfo;\n readonly auth;\n readonly dictionary;\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderCmsModule } from \"../../codegen/cms.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst cmsArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"cms\",\n description: \"Generate CMS SDK types from a schema definition\",\n },\n args: cmsArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"CMS\",\n render: renderCmsModule,\n }),\n});\n"],"mappings":";;;;;AA4BA,SAAgB,gBAAgB,QAA4C;CAC1E,MAAM,mBAAkC,OAAO,OAC5C,QAAQ,MAAM,EAAE,UAAU,CAAC,CAC3B,KAAK,OAAO;EACX,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,aAAa,qBAAqB,CAAC;EAC9C,eAAe;CACjB,EAAE;CACJ,MAAM,YAA2B,CAAC,GAAG,OAAO,QAAQ,GAAG,gBAAgB;CACvE,MAAM,UAAU,OAAO;CA2BvB,OAAOA,yCAJQ;EArBC;GACdC;GACA;GACA;GACA;EACF,CAAC,CAAC,KAAK,IAgBe;EAAGC;EAdX;GACZC,kCAAc,UAAU,UAAU,IAAI,gBAAgB,CAAC;GACvDA,kCAAc,gBAAgB,QAAQ,IAAI,iBAAiB,CAAC;GAC5D,0BACE,CACE,GAAG,UAAU,IAAI,qBAAqB,GACtC,QAAQ,IAAIC,+CAA2B,CAAC,CAAC,KAAK,IAAI,CACpD,CAAC,CAAC,KAAK,MAAM;GAEfC,8CAA0B,OAAO,MAAM;EACzC,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,QAEgC;EAAG,gBAAgB,MAAM;CAAC,CAAC,CAAC,KAClE,QAG+B,CAAC;AACpC;AAEA,SAAS,iBAAiB,OAA4B;CACpD,MAAM,OAAO,MAAM;CACnB,MAAM,OAAOC,mCAAe,MAAM,IAAI;CA6DtC,OAAO;EA3DSC,oCAAgB,MAAM;GACpC;GACA;GACA;GACA,GAAI,CAAC,MAAM,gBACP;IACE;IACA;IACA;IACA;IACA;IACA;GACF,IACA;IACE;IACA;IACA;IACA;GACF;GACJ,GAAG,KAAK,KAAK,QAAQC,sCAAkB,GAAG,CAAC;GAC3C,GAAI,MAAM,aAAa,CAAC,kCAAkC,IAAI,CAAC;EACjE,CAsCc;EApCKD,oCAAgB,GAAG,KAAK,cAAc;GACvD,GAAI,CAAC,MAAM,gBACP;IACE;IACA;IACA;IACA;IACA;GACF,IACA,CAAC;GACL,GAAG,KAAK,KAAK,QACXC,sCAAkB,KAAK;IACrB,UAAU,CAAC,IAAI;IACf,QAAQ;GACV,CAAC,CACH;GACA,GAAI,MAAM,aAAa,CAAC,kCAAkC,IAAI,CAAC;EACjE,CAmB0B;EAjBPD,oCAAgB,GAAG,KAAK,cAAc;GACvD,GAAG,KACA,QAAQ,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAC9B,KAAK,QACJC,sCAAkB,KAAK;IAAE,UAAU;IAAM,QAAQ;GAAc,CAAC,CAClE;GACF,GAAI,CAAC,MAAM,gBACP;IACE;IACA;IACA;IACA;GACF,IACA,CAAC;GACL,GAAI,MAAM,aAAa,CAAC,kCAAkC,IAAI,CAAC;EACjE,CAEsC;CAAC,CAAC,CAAC,KAAK,MAAM;AACtD;AAEA,SAAS,kBAAkB,KAGhB;CACT,MAAM,OAAOF,mCAAe,IAAI,IAAI;CACpC,MAAM,OAAO,IAAI;CAuBjB,OAAO;EArBSG,6CAAyB,GAqB3B;EAnBKF,oCAAgB,GAAG,KAAK,cAAc,CACvD,GAAG,KAAK,KAAK,QACXC,sCAAkB,KAAK;GACrB,UAAU,CAAC,IAAI;GACf,QAAQ;EACV,CAAC,CACH,CACF,CAY0B;EAVPD,oCAAgB,GAAG,KAAK,cAAc,CACvD,gBACA,GAAG,KAAK,KAAK,QACXC,sCAAkB,KAAK;GACrB,UAAU,CAAC,IAAI;GACf,QAAQ;EACV,CAAC,CACH,CACF,CAEsC;CAAC,CAAC,CAAC,KAAK,MAAM;AACtD;AAEA,SAAS,sBAAsB,OAA4B;CACzD,MAAM,OAAOF,mCAAe,MAAM,IAAI;CACtC,OAAOC,oCAAgB,GAAG,KAAK,eAAe;EAC5C,QAAQ,KAAK;EACb,WAAW,KAAK;EAChB,WAAW,KAAK;EAChB,GAAGG,yCAAqB,MAAM,OAAO;EACrC,GAAGC,2CAAuB,KAAK;EAC/B,GAAI,MAAM,eAAe,CAAC,qBAAqB,IAAI,CAAC;EACpD,GAAI,MAAM,aACN,CAAC,yBAAyB,KAAK,yBAAyB,IACxD,CAAC,8BAA8B;CACrC,CAAC;AACH;AAEA,SAAS,gBAAgB,QAAmC;CAY1D,OAAO;;;QAXc,OAAO,OACzB,KACE,MACC,GAAG,EAAE,KAAK,+BAA+BL,mCAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAC5F,CAAC,CACA,KAAK,IASS,EAAE;;;;QAPG,OAAO,QAC1B,KAAK,MAAM,GAAG,EAAE,KAAK,iCAAiC,EAAE,KAAK,IAAI,CAAC,CAClE,KAAK,IASU,EAAE;;;;;;;;;;;;;;;;;;;AAmBtB;;;;ACnNA,MAAM,UAAU;CACd,GAAGM;CACH,eAAeC;CACf,QAAQ;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,SAAS;CACX;CACA,MAAM;EACJ,MAAM;EACN,aACE;EACF,SAAS;CACX;AACF;AAEA,kBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,+BAAW;EACT;EACA,MAAM,KAAK,SAAS;EACpB,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,OAAO;EACP,QAAQ;CACV,CAAC;AACL,CAAC"}
@@ -7,11 +7,11 @@ var codegen_default = require_cli_main.defineCommand({
7
7
  description: "Generate SDK type code from orizm.config.ts"
8
8
  },
9
9
  subCommands: {
10
- cms: () => Promise.resolve().then(() => require("./cms-CId7jg5l.cjs")).then((m) => m.default),
11
- consumer: () => Promise.resolve().then(() => require("./consumer-OG6IEJun.cjs")).then((m) => m.default)
10
+ cms: () => Promise.resolve().then(() => require("./cms-C4zEtppZ.cjs")).then((m) => m.default),
11
+ consumer: () => Promise.resolve().then(() => require("./consumer-BSgriLn0.cjs")).then((m) => m.default)
12
12
  }
13
13
  });
14
14
 
15
15
  //#endregion
16
16
  exports.default = codegen_default;
17
- //# sourceMappingURL=codegen-kbbIwPbb.cjs.map
17
+ //# sourceMappingURL=codegen-Cypg4O3L.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-kbbIwPbb.cjs","names":["defineCommand"],"sources":["../src/cli/commands/codegen/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate SDK type code from orizm.config.ts\",\n },\n subCommands: {\n cms: () => import(\"./cms.js\").then((m) => m.default),\n consumer: () => import(\"./consumer.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,sBAAeA,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,gDAAW,uBAAmB,MAAM,MAAM,EAAE,OAAO;EACnD,qDAAgB,4BAAwB,MAAM,MAAM,EAAE,OAAO;CAC/D;AACF,CAAC"}
1
+ {"version":3,"file":"codegen-Cypg4O3L.cjs","names":["defineCommand"],"sources":["../src/cli/commands/codegen/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate SDK type code from orizm.config.ts\",\n },\n subCommands: {\n cms: () => import(\"./cms.js\").then((m) => m.default),\n consumer: () => import(\"./consumer.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,sBAAeA,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,gDAAW,uBAAmB,MAAM,MAAM,EAAE,OAAO;EACnD,qDAAgB,4BAAwB,MAAM,MAAM,EAAE,OAAO;CAC/D;AACF,CAAC"}
@@ -7,11 +7,11 @@ var codegen_default = defineCommand({
7
7
  description: "Generate SDK type code from orizm.config.ts"
8
8
  },
9
9
  subCommands: {
10
- cms: () => import("./cms-DLOypcw8.mjs").then((m) => m.default),
11
- consumer: () => import("./consumer-CqyZdG9v.mjs").then((m) => m.default)
10
+ cms: () => import("./cms-8XZhxwsM.mjs").then((m) => m.default),
11
+ consumer: () => import("./consumer-s8LnLw4e.mjs").then((m) => m.default)
12
12
  }
13
13
  });
14
14
 
15
15
  //#endregion
16
16
  export { codegen_default as default };
17
- //# sourceMappingURL=codegen-BKE_IYoM.mjs.map
17
+ //# sourceMappingURL=codegen-Dnjv7zfm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-BKE_IYoM.mjs","names":[],"sources":["../src/cli/commands/codegen/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate SDK type code from orizm.config.ts\",\n },\n subCommands: {\n cms: () => import(\"./cms.js\").then((m) => m.default),\n consumer: () => import(\"./consumer.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,sBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,WAAW,OAAO,qBAAW,CAAC,MAAM,MAAM,EAAE,OAAO;EACnD,gBAAgB,OAAO,0BAAgB,CAAC,MAAM,MAAM,EAAE,OAAO;CAC/D;AACF,CAAC"}
1
+ {"version":3,"file":"codegen-Dnjv7zfm.mjs","names":[],"sources":["../src/cli/commands/codegen/index.ts"],"sourcesContent":["import { defineCommand } from \"../define-command.js\";\n\nexport default defineCommand({\n meta: {\n name: \"codegen\",\n description: \"Generate SDK type code from orizm.config.ts\",\n },\n subCommands: {\n cms: () => import(\"./cms.js\").then((m) => m.default),\n consumer: () => import(\"./consumer.js\").then((m) => m.default),\n },\n});\n"],"mappings":";;;AAEA,sBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,WAAW,OAAO,qBAAW,CAAC,MAAM,MAAM,EAAE,OAAO;EACnD,gBAAgB,OAAO,0BAAgB,CAAC,MAAM,MAAM,EAAE,OAAO;CAC/D;AACF,CAAC"}
@@ -2,13 +2,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
3
  //#region src/config/functions.ts
4
4
  function defineConfig(config) {
5
- const { tables = {}, tableModules = {}, buckets = {}, authorities = [] } = config;
6
- return {
5
+ const { tables = {}, tableModules = {}, buckets = {}, authorities = [], semanticSearch } = config;
6
+ const definition = {
7
7
  tables: Object.entries(tables).map(([tableName, tableInput]) => table(tableName, tableInput)),
8
8
  tableModules: Object.entries(tableModules).map(([moduleName, moduleInput]) => module$1(moduleName, moduleInput)),
9
9
  buckets: Object.entries(buckets).map(([bucketName, bucketInput]) => bucket(bucketName, bucketInput)),
10
10
  authorities
11
11
  };
12
+ if (semanticSearch !== void 0) definition.semanticSearch = semanticSearch;
13
+ return definition;
12
14
  }
13
15
  function table(name, input) {
14
16
  const { columns, indexes, formOptions, ...rest } = input;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["module"],"sources":["../../src/config/functions.ts"],"sourcesContent":["import { TableColumnDef } from \"@orizm/common/config-validator\";\nimport {\n CommonAuthorityRulesDefinition,\n CommonBooleanColumnDefinition,\n CommonBucketDefinition,\n CommonJsonColumnDefinition,\n CommonModuleColumnDefinition,\n CommonNumberColumnDefinition,\n CommonOrizmConfig,\n CommonReferenceColumnDefinition,\n CommonStorageColumnDefinition,\n CommonStringColumnDefinition,\n CommonTableDefinition,\n CommonTableModuleDefinition,\n} from \"./types\";\n\ntype DefineConfigInput = {\n tables?: { [tableName: string]: TableInput };\n tableModules?: { [moduleName: string]: TableModuleInput };\n buckets?: { [bucketName: string]: BucketInput };\n authorities?: CommonAuthorityRulesDefinition;\n};\n\nexport function defineConfig(config: DefineConfigInput): CommonOrizmConfig {\n const {\n tables = {},\n tableModules = {},\n buckets = {},\n authorities = [],\n } = config;\n return {\n tables: Object.entries(tables).map(([tableName, tableInput]) =>\n table(tableName, tableInput),\n ),\n tableModules: Object.entries(tableModules).map(\n ([moduleName, moduleInput]) => module(moduleName, moduleInput),\n ),\n buckets: Object.entries(buckets).map(([bucketName, bucketInput]) =>\n bucket(bucketName, bucketInput),\n ),\n authorities,\n };\n}\n\ntype TableInput = Omit<\n CommonTableDefinition,\n \"name\" | \"columns\" | \"formOptions\"\n> & {\n columns: { [columnName: string]: Column };\n formOptions?: {\n submissionColumns: { [columnName: string]: Column };\n };\n};\n\ntype TableModuleInput = Omit<\n CommonTableModuleDefinition,\n \"name\" | \"columns\"\n> & {\n columns: { [columnName: string]: Column };\n};\n\ntype Column =\n | StringColumn\n | Omit<CommonNumberColumnDefinition, \"name\">\n | Omit<CommonBooleanColumnDefinition, \"name\">\n | Omit<CommonJsonColumnDefinition, \"name\">\n | Omit<CommonReferenceColumnDefinition, \"name\">\n | Omit<CommonModuleColumnDefinition, \"name\">\n | Omit<CommonStorageColumnDefinition, \"name\">;\n\ntype StringColumn = Omit<CommonStringColumnDefinition, \"name\" | \"pattern\"> & {\n pattern?: string | RegExp;\n};\n\nfunction table(name: string, input: TableInput): CommonTableDefinition {\n const { columns, indexes, formOptions, ...rest } = input;\n\n const definition: CommonTableDefinition = {\n ...rest,\n name,\n columns: Object.entries(columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n\n if (indexes) {\n definition.indexes = indexes.map((index) => ({\n ...index,\n columns: index.columns.map((columnName) => columnName),\n }));\n }\n\n if (formOptions) {\n definition.formOptions = {\n submissionColumns: Object.entries(formOptions.submissionColumns).map(\n ([columnName, columnInput]) => column(columnName, columnInput),\n ),\n };\n }\n\n return definition;\n}\n\nfunction module(\n name: string,\n input: TableModuleInput,\n): CommonTableModuleDefinition {\n return {\n ...input,\n name,\n columns: Object.entries(input.columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n}\n\nfunction column(name: string, input: Column): TableColumnDef {\n if (isStringColumn(input)) {\n const { pattern, ...rest } = input;\n const definition: CommonStringColumnDefinition = { ...rest, name };\n if (pattern != null) {\n definition.pattern = pattern instanceof RegExp ? pattern.source : pattern;\n }\n return definition;\n }\n\n return {\n ...input,\n name,\n };\n}\n\nfunction isStringColumn(column: Column): column is StringColumn {\n return column.type === \"string\";\n}\n\ntype BucketInput = Omit<CommonBucketDefinition, \"name\" | \"accessControl\"> & {\n accessControl: CommonBucketDefinition[\"accessControl\"];\n};\n\nfunction bucket(name: string, input: BucketInput): CommonBucketDefinition {\n return {\n ...input,\n name,\n };\n}\n"],"mappings":";;;AAuBA,SAAgB,aAAa,QAA8C;CACzE,MAAM,EACJ,SAAS,CAAC,GACV,eAAe,CAAC,GAChB,UAAU,CAAC,GACX,cAAc,CAAC,MACb;CACJ,OAAO;EACL,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,gBAC9C,MAAM,WAAW,UAAU,CAC7B;EACA,cAAc,OAAO,QAAQ,YAAY,CAAC,CAAC,KACxC,CAAC,YAAY,iBAAiBA,SAAO,YAAY,WAAW,CAC/D;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;EACA;CACF;AACF;AAgCA,SAAS,MAAM,MAAc,OAA0C;CACrE,MAAM,EAAE,SAAS,SAAS,aAAa,GAAG,SAAS;CAEnD,MAAM,aAAoC;EACxC,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;CACF;CAEA,IAAI,SACF,WAAW,UAAU,QAAQ,KAAK,WAAW;EAC3C,GAAG;EACH,SAAS,MAAM,QAAQ,KAAK,eAAe,UAAU;CACvD,EAAE;CAGJ,IAAI,aACF,WAAW,cAAc,EACvB,mBAAmB,OAAO,QAAQ,YAAY,iBAAiB,CAAC,CAAC,KAC9D,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D,EACF;CAGF,OAAO;AACT;AAEA,SAASA,SACP,MACA,OAC6B;CAC7B,OAAO;EACL,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACvD,OAAO,YAAY,WAAW,CAChC;CACF;AACF;AAEA,SAAS,OAAO,MAAc,OAA+B;CAC3D,IAAI,eAAe,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,GAAG,SAAS;EAC7B,MAAM,aAA2C;GAAE,GAAG;GAAM;EAAK;EACjE,IAAI,WAAW,MACb,WAAW,UAAU,mBAAmB,SAAS,QAAQ,SAAS;EAEpE,OAAO;CACT;CAEA,OAAO;EACL,GAAG;EACH;CACF;AACF;AAEA,SAAS,eAAe,QAAwC;CAC9D,OAAO,OAAO,SAAS;AACzB;AAMA,SAAS,OAAO,MAAc,OAA4C;CACxE,OAAO;EACL,GAAG;EACH;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["module"],"sources":["../../src/config/functions.ts"],"sourcesContent":["import { TableColumnDef } from \"@orizm/common/config-validator\";\nimport {\n CommonAuthorityRulesDefinition,\n CommonBooleanColumnDefinition,\n CommonBucketDefinition,\n CommonJsonColumnDefinition,\n CommonModuleColumnDefinition,\n CommonNumberColumnDefinition,\n CommonOrizmConfig,\n CommonReferenceColumnDefinition,\n CommonSemanticSearchDefinition,\n CommonStorageColumnDefinition,\n CommonStringColumnDefinition,\n CommonTableDefinition,\n CommonTableModuleDefinition,\n} from \"./types\";\n\ntype DefineConfigInput = {\n tables?: { [tableName: string]: TableInput };\n tableModules?: { [moduleName: string]: TableModuleInput };\n buckets?: { [bucketName: string]: BucketInput };\n authorities?: CommonAuthorityRulesDefinition;\n /**\n * プロジェクト単位のセマンティック検索(mode: semantic / hybrid)。\n * `{ enabled: true }` を宣言して push すると有効になり、`{ enabled: false }` で無効に戻る。\n * 省略時は現状維持(初期状態は無効)\n */\n semanticSearch?: CommonSemanticSearchDefinition;\n};\n\nexport function defineConfig(config: DefineConfigInput): CommonOrizmConfig {\n const {\n tables = {},\n tableModules = {},\n buckets = {},\n authorities = [],\n semanticSearch,\n } = config;\n const definition: CommonOrizmConfig = {\n tables: Object.entries(tables).map(([tableName, tableInput]) =>\n table(tableName, tableInput),\n ),\n tableModules: Object.entries(tableModules).map(\n ([moduleName, moduleInput]) => module(moduleName, moduleInput),\n ),\n buckets: Object.entries(buckets).map(([bucketName, bucketInput]) =>\n bucket(bucketName, bucketInput),\n ),\n authorities,\n };\n // 省略時はキー自体を出さない(サーバー側は「現状維持」として扱う)。\n // truthiness で見ると `semanticSearch: false` のような誤記もキーごと落ちて「現状維持」に\n // なるため undefined だけを省略とみなし、それ以外はそのまま渡してバリデーションに落とす\n if (semanticSearch !== undefined) {\n definition.semanticSearch = semanticSearch;\n }\n return definition;\n}\n\ntype TableInput = Omit<\n CommonTableDefinition,\n \"name\" | \"columns\" | \"formOptions\"\n> & {\n columns: { [columnName: string]: Column };\n formOptions?: {\n submissionColumns: { [columnName: string]: Column };\n };\n};\n\ntype TableModuleInput = Omit<\n CommonTableModuleDefinition,\n \"name\" | \"columns\"\n> & {\n columns: { [columnName: string]: Column };\n};\n\ntype Column =\n | StringColumn\n | Omit<CommonNumberColumnDefinition, \"name\">\n | Omit<CommonBooleanColumnDefinition, \"name\">\n | Omit<CommonJsonColumnDefinition, \"name\">\n | Omit<CommonReferenceColumnDefinition, \"name\">\n | Omit<CommonModuleColumnDefinition, \"name\">\n | Omit<CommonStorageColumnDefinition, \"name\">;\n\ntype StringColumn = Omit<CommonStringColumnDefinition, \"name\" | \"pattern\"> & {\n pattern?: string | RegExp;\n};\n\nfunction table(name: string, input: TableInput): CommonTableDefinition {\n const { columns, indexes, formOptions, ...rest } = input;\n\n const definition: CommonTableDefinition = {\n ...rest,\n name,\n columns: Object.entries(columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n\n if (indexes) {\n definition.indexes = indexes.map((index) => ({\n ...index,\n columns: index.columns.map((columnName) => columnName),\n }));\n }\n\n if (formOptions) {\n definition.formOptions = {\n submissionColumns: Object.entries(formOptions.submissionColumns).map(\n ([columnName, columnInput]) => column(columnName, columnInput),\n ),\n };\n }\n\n return definition;\n}\n\nfunction module(\n name: string,\n input: TableModuleInput,\n): CommonTableModuleDefinition {\n return {\n ...input,\n name,\n columns: Object.entries(input.columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n}\n\nfunction column(name: string, input: Column): TableColumnDef {\n if (isStringColumn(input)) {\n const { pattern, ...rest } = input;\n const definition: CommonStringColumnDefinition = { ...rest, name };\n if (pattern != null) {\n definition.pattern = pattern instanceof RegExp ? pattern.source : pattern;\n }\n return definition;\n }\n\n return {\n ...input,\n name,\n };\n}\n\nfunction isStringColumn(column: Column): column is StringColumn {\n return column.type === \"string\";\n}\n\ntype BucketInput = Omit<CommonBucketDefinition, \"name\" | \"accessControl\"> & {\n accessControl: CommonBucketDefinition[\"accessControl\"];\n};\n\nfunction bucket(name: string, input: BucketInput): CommonBucketDefinition {\n return {\n ...input,\n name,\n };\n}\n"],"mappings":";;;AA8BA,SAAgB,aAAa,QAA8C;CACzE,MAAM,EACJ,SAAS,CAAC,GACV,eAAe,CAAC,GAChB,UAAU,CAAC,GACX,cAAc,CAAC,GACf,mBACE;CACJ,MAAM,aAAgC;EACpC,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,gBAC9C,MAAM,WAAW,UAAU,CAC7B;EACA,cAAc,OAAO,QAAQ,YAAY,CAAC,CAAC,KACxC,CAAC,YAAY,iBAAiBA,SAAO,YAAY,WAAW,CAC/D;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;EACA;CACF;CAIA,IAAI,mBAAmB,QACrB,WAAW,iBAAiB;CAE9B,OAAO;AACT;AAgCA,SAAS,MAAM,MAAc,OAA0C;CACrE,MAAM,EAAE,SAAS,SAAS,aAAa,GAAG,SAAS;CAEnD,MAAM,aAAoC;EACxC,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;CACF;CAEA,IAAI,SACF,WAAW,UAAU,QAAQ,KAAK,WAAW;EAC3C,GAAG;EACH,SAAS,MAAM,QAAQ,KAAK,eAAe,UAAU;CACvD,EAAE;CAGJ,IAAI,aACF,WAAW,cAAc,EACvB,mBAAmB,OAAO,QAAQ,YAAY,iBAAiB,CAAC,CAAC,KAC9D,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D,EACF;CAGF,OAAO;AACT;AAEA,SAASA,SACP,MACA,OAC6B;CAC7B,OAAO;EACL,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACvD,OAAO,YAAY,WAAW,CAChC;CACF;AACF;AAEA,SAAS,OAAO,MAAc,OAA+B;CAC3D,IAAI,eAAe,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,GAAG,SAAS;EAC7B,MAAM,aAA2C;GAAE,GAAG;GAAM;EAAK;EACjE,IAAI,WAAW,MACb,WAAW,UAAU,mBAAmB,SAAS,QAAQ,SAAS;EAEpE,OAAO;CACT;CAEA,OAAO;EACL,GAAG;EACH;CACF;AACF;AAEA,SAAS,eAAe,QAAwC;CAC9D,OAAO,OAAO,SAAS;AACzB;AAMA,SAAS,OAAO,MAAc,OAA4C;CACxE,OAAO;EACL,GAAG;EACH;CACF;AACF"}
@@ -1,4 +1,4 @@
1
- import { AuthorityRulesDef, BooleanColumnDef, BucketDef, JsonColumnDef, ModuleColumnDef, NumberColumnDef, OrizmConfigDef, OrizmConfigDef as OrizmConfig, ReferenceColumnDef, StorageColumnDef, StringColumnDef, TableDef, TableModuleDef } from "@orizm/common/config-validator";
1
+ import { AuthorityRulesDef, BooleanColumnDef, BucketDef, JsonColumnDef, ModuleColumnDef, NumberColumnDef, OrizmConfigDef, OrizmConfigDef as OrizmConfig, ReferenceColumnDef, SemanticSearchDef, StorageColumnDef, StringColumnDef, TableDef, TableModuleDef } from "@orizm/common/config-validator";
2
2
  //#region src/config/types.d.ts
3
3
  type CommonOrizmConfig = OrizmConfigDef;
4
4
  type CommonTableDefinition = TableDef;
@@ -12,6 +12,7 @@ type CommonModuleColumnDefinition = ModuleColumnDef;
12
12
  type CommonTableModuleDefinition = TableModuleDef;
13
13
  type CommonBucketDefinition = BucketDef;
14
14
  type CommonAuthorityRulesDefinition = AuthorityRulesDef;
15
+ type CommonSemanticSearchDefinition = SemanticSearchDef;
15
16
  //#endregion
16
17
  //#region src/config/functions.d.ts
17
18
  type DefineConfigInput = {
@@ -25,6 +26,12 @@ type DefineConfigInput = {
25
26
  [bucketName: string]: BucketInput;
26
27
  };
27
28
  authorities?: CommonAuthorityRulesDefinition;
29
+ /**
30
+ * プロジェクト単位のセマンティック検索(mode: semantic / hybrid)。
31
+ * `{ enabled: true }` を宣言して push すると有効になり、`{ enabled: false }` で無効に戻る。
32
+ * 省略時は現状維持(初期状態は無効)
33
+ */
34
+ semanticSearch?: CommonSemanticSearchDefinition;
28
35
  };
29
36
  declare function defineConfig(config: DefineConfigInput): CommonOrizmConfig;
30
37
  type TableInput = Omit<CommonTableDefinition, "name" | "columns" | "formOptions"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/config/types.ts","../../src/config/functions.ts"],"mappings":";;KAmBY,oBAAoB;KAEpB,wBAAwB;KAExB,+BAA+B;KAC/B,+BAA+B;KAC/B,gCAAgC;KAChC,6BAA6B;KAC7B,gCAAgC;KAChC,kCAAkC;KAClC,+BAA+B;KAI/B,8BAA8B;KAC9B,yBAAyB;KACzB,iCAAiC;;;KCnBxC;EACH;KAAY,oBAAoB;;EAChC;KAAkB,qBAAqB;;EACvC;KAAa,qBAAqB;;EAClC,cAAc;;iBAGA,aAAa,QAAQ,oBAAoB;KAqBpD,aAAa,KAChB;EAGA;KAAY,qBAAqB;;EACjC;IACE;OAAsB,qBAAqB;;;;KAI1C,mBAAmB,KACtB;EAGA;KAAY,qBAAqB;;;KAG9B,SACD,eACA,KAAK,wCACL,KAAK,yCACL,KAAK,sCACL,KAAK,2CACL,KAAK,wCACL,KAAK;KAEJ,eAAe,KAAK;EACvB,mBAAmB;;KAiEhB,cAAc,KAAK;EACtB,eAAe"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/config/types.ts","../../src/config/functions.ts"],"mappings":";;KAoBY,oBAAoB;KAEpB,wBAAwB;KAExB,+BAA+B;KAC/B,+BAA+B;KAC/B,gCAAgC;KAChC,6BAA6B;KAC7B,gCAAgC;KAChC,kCAAkC;KAClC,+BAA+B;KAI/B,8BAA8B;KAC9B,yBAAyB;KACzB,iCAAiC;KACjC,iCAAiC;;;KCpBxC;EACH;KAAY,oBAAoB;;EAChC;KAAkB,qBAAqB;;EACvC;KAAa,qBAAqB;;EAClC,cAAc;;;;;;EAMd,iBAAiB;;iBAGH,aAAa,QAAQ,oBAAoB;KA6BpD,aAAa,KAChB;EAGA;KAAY,qBAAqB;;EACjC;IACE;OAAsB,qBAAqB;;;;KAI1C,mBAAmB,KACtB;EAGA;KAAY,qBAAqB;;;KAG9B,SACD,eACA,KAAK,wCACL,KAAK,yCACL,KAAK,sCACL,KAAK,2CACL,KAAK,wCACL,KAAK;KAEJ,eAAe,KAAK;EACvB,mBAAmB;;KAiEhB,cAAc,KAAK;EACtB,eAAe"}
@@ -1,12 +1,14 @@
1
1
  //#region src/config/functions.ts
2
2
  function defineConfig(config) {
3
- const { tables = {}, tableModules = {}, buckets = {}, authorities = [] } = config;
4
- return {
3
+ const { tables = {}, tableModules = {}, buckets = {}, authorities = [], semanticSearch } = config;
4
+ const definition = {
5
5
  tables: Object.entries(tables).map(([tableName, tableInput]) => table(tableName, tableInput)),
6
6
  tableModules: Object.entries(tableModules).map(([moduleName, moduleInput]) => module(moduleName, moduleInput)),
7
7
  buckets: Object.entries(buckets).map(([bucketName, bucketInput]) => bucket(bucketName, bucketInput)),
8
8
  authorities
9
9
  };
10
+ if (semanticSearch !== void 0) definition.semanticSearch = semanticSearch;
11
+ return definition;
10
12
  }
11
13
  function table(name, input) {
12
14
  const { columns, indexes, formOptions, ...rest } = input;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/config/functions.ts"],"sourcesContent":["import { TableColumnDef } from \"@orizm/common/config-validator\";\nimport {\n CommonAuthorityRulesDefinition,\n CommonBooleanColumnDefinition,\n CommonBucketDefinition,\n CommonJsonColumnDefinition,\n CommonModuleColumnDefinition,\n CommonNumberColumnDefinition,\n CommonOrizmConfig,\n CommonReferenceColumnDefinition,\n CommonStorageColumnDefinition,\n CommonStringColumnDefinition,\n CommonTableDefinition,\n CommonTableModuleDefinition,\n} from \"./types\";\n\ntype DefineConfigInput = {\n tables?: { [tableName: string]: TableInput };\n tableModules?: { [moduleName: string]: TableModuleInput };\n buckets?: { [bucketName: string]: BucketInput };\n authorities?: CommonAuthorityRulesDefinition;\n};\n\nexport function defineConfig(config: DefineConfigInput): CommonOrizmConfig {\n const {\n tables = {},\n tableModules = {},\n buckets = {},\n authorities = [],\n } = config;\n return {\n tables: Object.entries(tables).map(([tableName, tableInput]) =>\n table(tableName, tableInput),\n ),\n tableModules: Object.entries(tableModules).map(\n ([moduleName, moduleInput]) => module(moduleName, moduleInput),\n ),\n buckets: Object.entries(buckets).map(([bucketName, bucketInput]) =>\n bucket(bucketName, bucketInput),\n ),\n authorities,\n };\n}\n\ntype TableInput = Omit<\n CommonTableDefinition,\n \"name\" | \"columns\" | \"formOptions\"\n> & {\n columns: { [columnName: string]: Column };\n formOptions?: {\n submissionColumns: { [columnName: string]: Column };\n };\n};\n\ntype TableModuleInput = Omit<\n CommonTableModuleDefinition,\n \"name\" | \"columns\"\n> & {\n columns: { [columnName: string]: Column };\n};\n\ntype Column =\n | StringColumn\n | Omit<CommonNumberColumnDefinition, \"name\">\n | Omit<CommonBooleanColumnDefinition, \"name\">\n | Omit<CommonJsonColumnDefinition, \"name\">\n | Omit<CommonReferenceColumnDefinition, \"name\">\n | Omit<CommonModuleColumnDefinition, \"name\">\n | Omit<CommonStorageColumnDefinition, \"name\">;\n\ntype StringColumn = Omit<CommonStringColumnDefinition, \"name\" | \"pattern\"> & {\n pattern?: string | RegExp;\n};\n\nfunction table(name: string, input: TableInput): CommonTableDefinition {\n const { columns, indexes, formOptions, ...rest } = input;\n\n const definition: CommonTableDefinition = {\n ...rest,\n name,\n columns: Object.entries(columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n\n if (indexes) {\n definition.indexes = indexes.map((index) => ({\n ...index,\n columns: index.columns.map((columnName) => columnName),\n }));\n }\n\n if (formOptions) {\n definition.formOptions = {\n submissionColumns: Object.entries(formOptions.submissionColumns).map(\n ([columnName, columnInput]) => column(columnName, columnInput),\n ),\n };\n }\n\n return definition;\n}\n\nfunction module(\n name: string,\n input: TableModuleInput,\n): CommonTableModuleDefinition {\n return {\n ...input,\n name,\n columns: Object.entries(input.columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n}\n\nfunction column(name: string, input: Column): TableColumnDef {\n if (isStringColumn(input)) {\n const { pattern, ...rest } = input;\n const definition: CommonStringColumnDefinition = { ...rest, name };\n if (pattern != null) {\n definition.pattern = pattern instanceof RegExp ? pattern.source : pattern;\n }\n return definition;\n }\n\n return {\n ...input,\n name,\n };\n}\n\nfunction isStringColumn(column: Column): column is StringColumn {\n return column.type === \"string\";\n}\n\ntype BucketInput = Omit<CommonBucketDefinition, \"name\" | \"accessControl\"> & {\n accessControl: CommonBucketDefinition[\"accessControl\"];\n};\n\nfunction bucket(name: string, input: BucketInput): CommonBucketDefinition {\n return {\n ...input,\n name,\n };\n}\n"],"mappings":";AAuBA,SAAgB,aAAa,QAA8C;CACzE,MAAM,EACJ,SAAS,CAAC,GACV,eAAe,CAAC,GAChB,UAAU,CAAC,GACX,cAAc,CAAC,MACb;CACJ,OAAO;EACL,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,gBAC9C,MAAM,WAAW,UAAU,CAC7B;EACA,cAAc,OAAO,QAAQ,YAAY,CAAC,CAAC,KACxC,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;EACA;CACF;AACF;AAgCA,SAAS,MAAM,MAAc,OAA0C;CACrE,MAAM,EAAE,SAAS,SAAS,aAAa,GAAG,SAAS;CAEnD,MAAM,aAAoC;EACxC,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;CACF;CAEA,IAAI,SACF,WAAW,UAAU,QAAQ,KAAK,WAAW;EAC3C,GAAG;EACH,SAAS,MAAM,QAAQ,KAAK,eAAe,UAAU;CACvD,EAAE;CAGJ,IAAI,aACF,WAAW,cAAc,EACvB,mBAAmB,OAAO,QAAQ,YAAY,iBAAiB,CAAC,CAAC,KAC9D,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D,EACF;CAGF,OAAO;AACT;AAEA,SAAS,OACP,MACA,OAC6B;CAC7B,OAAO;EACL,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACvD,OAAO,YAAY,WAAW,CAChC;CACF;AACF;AAEA,SAAS,OAAO,MAAc,OAA+B;CAC3D,IAAI,eAAe,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,GAAG,SAAS;EAC7B,MAAM,aAA2C;GAAE,GAAG;GAAM;EAAK;EACjE,IAAI,WAAW,MACb,WAAW,UAAU,mBAAmB,SAAS,QAAQ,SAAS;EAEpE,OAAO;CACT;CAEA,OAAO;EACL,GAAG;EACH;CACF;AACF;AAEA,SAAS,eAAe,QAAwC;CAC9D,OAAO,OAAO,SAAS;AACzB;AAMA,SAAS,OAAO,MAAc,OAA4C;CACxE,OAAO;EACL,GAAG;EACH;CACF;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/config/functions.ts"],"sourcesContent":["import { TableColumnDef } from \"@orizm/common/config-validator\";\nimport {\n CommonAuthorityRulesDefinition,\n CommonBooleanColumnDefinition,\n CommonBucketDefinition,\n CommonJsonColumnDefinition,\n CommonModuleColumnDefinition,\n CommonNumberColumnDefinition,\n CommonOrizmConfig,\n CommonReferenceColumnDefinition,\n CommonSemanticSearchDefinition,\n CommonStorageColumnDefinition,\n CommonStringColumnDefinition,\n CommonTableDefinition,\n CommonTableModuleDefinition,\n} from \"./types\";\n\ntype DefineConfigInput = {\n tables?: { [tableName: string]: TableInput };\n tableModules?: { [moduleName: string]: TableModuleInput };\n buckets?: { [bucketName: string]: BucketInput };\n authorities?: CommonAuthorityRulesDefinition;\n /**\n * プロジェクト単位のセマンティック検索(mode: semantic / hybrid)。\n * `{ enabled: true }` を宣言して push すると有効になり、`{ enabled: false }` で無効に戻る。\n * 省略時は現状維持(初期状態は無効)\n */\n semanticSearch?: CommonSemanticSearchDefinition;\n};\n\nexport function defineConfig(config: DefineConfigInput): CommonOrizmConfig {\n const {\n tables = {},\n tableModules = {},\n buckets = {},\n authorities = [],\n semanticSearch,\n } = config;\n const definition: CommonOrizmConfig = {\n tables: Object.entries(tables).map(([tableName, tableInput]) =>\n table(tableName, tableInput),\n ),\n tableModules: Object.entries(tableModules).map(\n ([moduleName, moduleInput]) => module(moduleName, moduleInput),\n ),\n buckets: Object.entries(buckets).map(([bucketName, bucketInput]) =>\n bucket(bucketName, bucketInput),\n ),\n authorities,\n };\n // 省略時はキー自体を出さない(サーバー側は「現状維持」として扱う)。\n // truthiness で見ると `semanticSearch: false` のような誤記もキーごと落ちて「現状維持」に\n // なるため undefined だけを省略とみなし、それ以外はそのまま渡してバリデーションに落とす\n if (semanticSearch !== undefined) {\n definition.semanticSearch = semanticSearch;\n }\n return definition;\n}\n\ntype TableInput = Omit<\n CommonTableDefinition,\n \"name\" | \"columns\" | \"formOptions\"\n> & {\n columns: { [columnName: string]: Column };\n formOptions?: {\n submissionColumns: { [columnName: string]: Column };\n };\n};\n\ntype TableModuleInput = Omit<\n CommonTableModuleDefinition,\n \"name\" | \"columns\"\n> & {\n columns: { [columnName: string]: Column };\n};\n\ntype Column =\n | StringColumn\n | Omit<CommonNumberColumnDefinition, \"name\">\n | Omit<CommonBooleanColumnDefinition, \"name\">\n | Omit<CommonJsonColumnDefinition, \"name\">\n | Omit<CommonReferenceColumnDefinition, \"name\">\n | Omit<CommonModuleColumnDefinition, \"name\">\n | Omit<CommonStorageColumnDefinition, \"name\">;\n\ntype StringColumn = Omit<CommonStringColumnDefinition, \"name\" | \"pattern\"> & {\n pattern?: string | RegExp;\n};\n\nfunction table(name: string, input: TableInput): CommonTableDefinition {\n const { columns, indexes, formOptions, ...rest } = input;\n\n const definition: CommonTableDefinition = {\n ...rest,\n name,\n columns: Object.entries(columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n\n if (indexes) {\n definition.indexes = indexes.map((index) => ({\n ...index,\n columns: index.columns.map((columnName) => columnName),\n }));\n }\n\n if (formOptions) {\n definition.formOptions = {\n submissionColumns: Object.entries(formOptions.submissionColumns).map(\n ([columnName, columnInput]) => column(columnName, columnInput),\n ),\n };\n }\n\n return definition;\n}\n\nfunction module(\n name: string,\n input: TableModuleInput,\n): CommonTableModuleDefinition {\n return {\n ...input,\n name,\n columns: Object.entries(input.columns).map(([columnName, columnInput]) =>\n column(columnName, columnInput),\n ),\n };\n}\n\nfunction column(name: string, input: Column): TableColumnDef {\n if (isStringColumn(input)) {\n const { pattern, ...rest } = input;\n const definition: CommonStringColumnDefinition = { ...rest, name };\n if (pattern != null) {\n definition.pattern = pattern instanceof RegExp ? pattern.source : pattern;\n }\n return definition;\n }\n\n return {\n ...input,\n name,\n };\n}\n\nfunction isStringColumn(column: Column): column is StringColumn {\n return column.type === \"string\";\n}\n\ntype BucketInput = Omit<CommonBucketDefinition, \"name\" | \"accessControl\"> & {\n accessControl: CommonBucketDefinition[\"accessControl\"];\n};\n\nfunction bucket(name: string, input: BucketInput): CommonBucketDefinition {\n return {\n ...input,\n name,\n };\n}\n"],"mappings":";AA8BA,SAAgB,aAAa,QAA8C;CACzE,MAAM,EACJ,SAAS,CAAC,GACV,eAAe,CAAC,GAChB,UAAU,CAAC,GACX,cAAc,CAAC,GACf,mBACE;CACJ,MAAM,aAAgC;EACpC,QAAQ,OAAO,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,gBAC9C,MAAM,WAAW,UAAU,CAC7B;EACA,cAAc,OAAO,QAAQ,YAAY,CAAC,CAAC,KACxC,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;EACA;CACF;CAIA,IAAI,mBAAmB,QACrB,WAAW,iBAAiB;CAE9B,OAAO;AACT;AAgCA,SAAS,MAAM,MAAc,OAA0C;CACrE,MAAM,EAAE,SAAS,SAAS,aAAa,GAAG,SAAS;CAEnD,MAAM,aAAoC;EACxC,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACjD,OAAO,YAAY,WAAW,CAChC;CACF;CAEA,IAAI,SACF,WAAW,UAAU,QAAQ,KAAK,WAAW;EAC3C,GAAG;EACH,SAAS,MAAM,QAAQ,KAAK,eAAe,UAAU;CACvD,EAAE;CAGJ,IAAI,aACF,WAAW,cAAc,EACvB,mBAAmB,OAAO,QAAQ,YAAY,iBAAiB,CAAC,CAAC,KAC9D,CAAC,YAAY,iBAAiB,OAAO,YAAY,WAAW,CAC/D,EACF;CAGF,OAAO;AACT;AAEA,SAAS,OACP,MACA,OAC6B;CAC7B,OAAO;EACL,GAAG;EACH;EACA,SAAS,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,iBACvD,OAAO,YAAY,WAAW,CAChC;CACF;AACF;AAEA,SAAS,OAAO,MAAc,OAA+B;CAC3D,IAAI,eAAe,KAAK,GAAG;EACzB,MAAM,EAAE,SAAS,GAAG,SAAS;EAC7B,MAAM,aAA2C;GAAE,GAAG;GAAM;EAAK;EACjE,IAAI,WAAW,MACb,WAAW,UAAU,mBAAmB,SAAS,QAAQ,SAAS;EAEpE,OAAO;CACT;CAEA,OAAO;EACL,GAAG;EACH;CACF;AACF;AAEA,SAAS,eAAe,QAAwC;CAC9D,OAAO,OAAO,SAAS;AACzB;AAMA,SAAS,OAAO,MAAc,OAA4C;CACxE,OAAO;EACL,GAAG;EACH;CACF;AACF"}
@@ -54,7 +54,7 @@ async function loadConfig(configFile) {
54
54
  });
55
55
  }
56
56
  const { default: raw } = await import(`data:text/javascript,${encodeURIComponent(bundled)}`);
57
- const parsed = valibot.safeParse(_orizm_common_config_validator.OrizmConfigDef, raw);
57
+ const parsed = valibot.safeParse(_orizm_common_config_validator.OrizmConfigInputDef, raw);
58
58
  if (!parsed.success) return _praha_byethrow.Result.fail({
59
59
  type: "config_schema_violation",
60
60
  issues: parsed.issues
@@ -75,4 +75,4 @@ Object.defineProperty(exports, 'loadConfig', {
75
75
  return loadConfig;
76
76
  }
77
77
  });
78
- //# sourceMappingURL=config-loader-D8x32gEU.cjs.map
78
+ //# sourceMappingURL=config-loader-CZfANHBf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader-CZfANHBf.cjs","names":["Result","formatValibotIssues","getOutputState","Result","v","OrizmConfigInputDef"],"sources":["../src/cli/commands/config-errors.ts","../src/cli/config-loader.ts"],"sourcesContent":["import { Result } from \"@praha/byethrow\";\nimport { ConfigLoadError } from \"../config-loader.js\";\nimport { getOutputState } from \"../ui/output.js\";\nimport { formatValibotIssues } from \"../ui/error.js\";\nimport { CommandFailure } from \"./define-command.js\";\n\n// loadConfig を使う複数のコマンドが共有する変換。ConfigLoadError 以外は知らない。\nexport function configLoadFailure(\n error: ConfigLoadError,\n): Result.Result<never, CommandFailure> {\n switch (error.type) {\n case \"config_not_found\":\n return Result.fail({ message: `Config file not found: ${error.path}` });\n case \"config_build_failed\":\n return Result.fail({\n message: `Failed to build the config file.\\n${error.message}`,\n });\n case \"config_schema_violation\":\n return Result.fail({\n message: `Config validation failed (${error.issues.length} problem(s)).\\n${formatValibotIssues(\n error.issues,\n getOutputState().color,\n )}`,\n });\n default:\n return assertNever(error);\n }\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unhandled config load error: ${JSON.stringify(value)}`);\n}\n","import { access } from \"node:fs/promises\";\nimport esbuild from \"esbuild\";\nimport * as v from \"valibot\";\nimport { Result } from \"@praha/byethrow\";\nimport { OrizmConfigInputDef } from \"@orizm/common/config-validator\";\nimport { CommonOrizmConfig } from \"./types.js\";\n\nexport type ConfigLoadError =\n | { type: \"config_not_found\"; path: string }\n | { type: \"config_build_failed\"; message: string }\n | { type: \"config_schema_violation\"; issues: v.BaseIssue<unknown>[] };\n\n// keepNames / sourcemap はユーザー config 内の throw を --debug で追えるように、\n// conditions / mainFields は @orizm/cli/config の ESM サブパス解決を固定するために付ける。\nasync function buildConfig(configFile: string): Promise<string> {\n const buildResult = await esbuild.build({\n entryPoints: [configFile],\n bundle: true,\n write: false,\n format: \"esm\",\n target: \"node22\",\n platform: \"node\",\n keepNames: true,\n sourcemap: \"inline\",\n conditions: [\"node\", \"import\"],\n mainFields: [\"module\", \"main\"],\n logLevel: \"silent\",\n loader: { \".json\": \"json\" },\n });\n\n return buildResult.outputFiles[0].text;\n}\n\nexport async function loadConfig(\n configFile: string,\n): Promise<Result.Result<CommonOrizmConfig, ConfigLoadError>> {\n const found = await access(configFile).then(\n () => true,\n () => false,\n );\n if (!found) {\n return Result.fail({ type: \"config_not_found\", path: configFile });\n }\n\n let bundled: string;\n try {\n bundled = await buildConfig(configFile);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return Result.fail({ type: \"config_build_failed\", message });\n }\n\n const moduleURL = `data:text/javascript,${encodeURIComponent(bundled)}`;\n // ユーザー config 内の実行時 throw は捕まえずに伝搬させ、ハンドラ層で --debug 時に stack を出す。\n const { default: raw } = await import(moduleURL);\n\n // ローカル config は authoring(push の入力)なので、予約名チェック込みの\n // OrizmConfigInputDef で検証する。--pull(保存済み定義の読み取り)は\n // 予約名を後追いで拒否しない OrizmConfigDef を使う(pull.ts 参照)\n const parsed = v.safeParse(OrizmConfigInputDef, raw);\n if (!parsed.success) {\n return Result.fail({\n type: \"config_schema_violation\",\n issues: parsed.issues,\n });\n }\n\n return Result.succeed(parsed.output);\n}\n"],"mappings":";;;;;;;;;;AAOA,SAAgB,kBACd,OACsC;CACtC,QAAQ,MAAM,MAAd;EACE,KAAK,oBACH,OAAOA,uBAAO,KAAK,EAAE,SAAS,0BAA0B,MAAM,OAAO,CAAC;EACxE,KAAK,uBACH,OAAOA,uBAAO,KAAK,EACjB,SAAS,qCAAqC,MAAM,UACtD,CAAC;EACH,KAAK,2BACH,OAAOA,uBAAO,KAAK,EACjB,SAAS,6BAA6B,MAAM,OAAO,OAAO,iBAAiBC,qCACzE,MAAM,QACNC,gCAAe,CAAC,CAAC,KACnB,IACF,CAAC;EACH,SACE,OAAO,YAAY,KAAK;CAC5B;AACF;AAEA,SAAS,YAAY,OAAqB;CACxC,MAAM,IAAI,MAAM,gCAAgC,KAAK,UAAU,KAAK,GAAG;AACzE;;;;ACjBA,eAAe,YAAY,YAAqC;CAgB9D,QAAO,MAfmB,gBAAQ,MAAM;EACtC,aAAa,CAAC,UAAU;EACxB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,WAAW;EACX,WAAW;EACX,YAAY,CAAC,QAAQ,QAAQ;EAC7B,YAAY,CAAC,UAAU,MAAM;EAC7B,UAAU;EACV,QAAQ,EAAE,SAAS,OAAO;CAC5B,CAAC,EAEiB,CAAC,YAAY,EAAE,CAAC;AACpC;AAEA,eAAsB,WACpB,YAC4D;CAK5D,IAAI,CAAC,mCAJsB,UAAU,CAAC,CAAC,WAC/B,YACA,KACR,GAEE,OAAOC,uBAAO,KAAK;EAAE,MAAM;EAAoB,MAAM;CAAW,CAAC;CAGnE,IAAI;CACJ,IAAI;EACF,UAAU,MAAM,YAAY,UAAU;CACxC,SAAS,OAAO;EACd,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,OAAOA,uBAAO,KAAK;GAAE,MAAM;GAAuB;EAAQ,CAAC;CAC7D;CAIA,MAAM,EAAE,SAAS,QAAQ,MAAM,OAAO,wBAFI,mBAAmB,OAAO;CAOpE,MAAM,SAASC,QAAE,UAAUC,oDAAqB,GAAG;CACnD,IAAI,CAAC,OAAO,SACV,OAAOF,uBAAO,KAAK;EACjB,MAAM;EACN,QAAQ,OAAO;CACjB,CAAC;CAGH,OAAOA,uBAAO,QAAQ,OAAO,MAAM;AACrC"}
@@ -3,7 +3,7 @@ import { Result } from "@praha/byethrow";
3
3
  import * as v from "valibot";
4
4
  import { access } from "node:fs/promises";
5
5
  import esbuild from "esbuild";
6
- import { OrizmConfigDef } from "@orizm/common/config-validator";
6
+ import { OrizmConfigInputDef } from "@orizm/common/config-validator";
7
7
 
8
8
  //#region src/cli/commands/config-errors.ts
9
9
  function configLoadFailure(error) {
@@ -52,7 +52,7 @@ async function loadConfig(configFile) {
52
52
  });
53
53
  }
54
54
  const { default: raw } = await import(`data:text/javascript,${encodeURIComponent(bundled)}`);
55
- const parsed = v.safeParse(OrizmConfigDef, raw);
55
+ const parsed = v.safeParse(OrizmConfigInputDef, raw);
56
56
  if (!parsed.success) return Result.fail({
57
57
  type: "config_schema_violation",
58
58
  issues: parsed.issues
@@ -62,4 +62,4 @@ async function loadConfig(configFile) {
62
62
 
63
63
  //#endregion
64
64
  export { configLoadFailure as n, loadConfig as t };
65
- //# sourceMappingURL=config-loader-BEgS869e.mjs.map
65
+ //# sourceMappingURL=config-loader-CtbZOGjc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader-CtbZOGjc.mjs","names":[],"sources":["../src/cli/commands/config-errors.ts","../src/cli/config-loader.ts"],"sourcesContent":["import { Result } from \"@praha/byethrow\";\nimport { ConfigLoadError } from \"../config-loader.js\";\nimport { getOutputState } from \"../ui/output.js\";\nimport { formatValibotIssues } from \"../ui/error.js\";\nimport { CommandFailure } from \"./define-command.js\";\n\n// loadConfig を使う複数のコマンドが共有する変換。ConfigLoadError 以外は知らない。\nexport function configLoadFailure(\n error: ConfigLoadError,\n): Result.Result<never, CommandFailure> {\n switch (error.type) {\n case \"config_not_found\":\n return Result.fail({ message: `Config file not found: ${error.path}` });\n case \"config_build_failed\":\n return Result.fail({\n message: `Failed to build the config file.\\n${error.message}`,\n });\n case \"config_schema_violation\":\n return Result.fail({\n message: `Config validation failed (${error.issues.length} problem(s)).\\n${formatValibotIssues(\n error.issues,\n getOutputState().color,\n )}`,\n });\n default:\n return assertNever(error);\n }\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unhandled config load error: ${JSON.stringify(value)}`);\n}\n","import { access } from \"node:fs/promises\";\nimport esbuild from \"esbuild\";\nimport * as v from \"valibot\";\nimport { Result } from \"@praha/byethrow\";\nimport { OrizmConfigInputDef } from \"@orizm/common/config-validator\";\nimport { CommonOrizmConfig } from \"./types.js\";\n\nexport type ConfigLoadError =\n | { type: \"config_not_found\"; path: string }\n | { type: \"config_build_failed\"; message: string }\n | { type: \"config_schema_violation\"; issues: v.BaseIssue<unknown>[] };\n\n// keepNames / sourcemap はユーザー config 内の throw を --debug で追えるように、\n// conditions / mainFields は @orizm/cli/config の ESM サブパス解決を固定するために付ける。\nasync function buildConfig(configFile: string): Promise<string> {\n const buildResult = await esbuild.build({\n entryPoints: [configFile],\n bundle: true,\n write: false,\n format: \"esm\",\n target: \"node22\",\n platform: \"node\",\n keepNames: true,\n sourcemap: \"inline\",\n conditions: [\"node\", \"import\"],\n mainFields: [\"module\", \"main\"],\n logLevel: \"silent\",\n loader: { \".json\": \"json\" },\n });\n\n return buildResult.outputFiles[0].text;\n}\n\nexport async function loadConfig(\n configFile: string,\n): Promise<Result.Result<CommonOrizmConfig, ConfigLoadError>> {\n const found = await access(configFile).then(\n () => true,\n () => false,\n );\n if (!found) {\n return Result.fail({ type: \"config_not_found\", path: configFile });\n }\n\n let bundled: string;\n try {\n bundled = await buildConfig(configFile);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return Result.fail({ type: \"config_build_failed\", message });\n }\n\n const moduleURL = `data:text/javascript,${encodeURIComponent(bundled)}`;\n // ユーザー config 内の実行時 throw は捕まえずに伝搬させ、ハンドラ層で --debug 時に stack を出す。\n const { default: raw } = await import(moduleURL);\n\n // ローカル config は authoring(push の入力)なので、予約名チェック込みの\n // OrizmConfigInputDef で検証する。--pull(保存済み定義の読み取り)は\n // 予約名を後追いで拒否しない OrizmConfigDef を使う(pull.ts 参照)\n const parsed = v.safeParse(OrizmConfigInputDef, raw);\n if (!parsed.success) {\n return Result.fail({\n type: \"config_schema_violation\",\n issues: parsed.issues,\n });\n }\n\n return Result.succeed(parsed.output);\n}\n"],"mappings":";;;;;;;;AAOA,SAAgB,kBACd,OACsC;CACtC,QAAQ,MAAM,MAAd;EACE,KAAK,oBACH,OAAO,OAAO,KAAK,EAAE,SAAS,0BAA0B,MAAM,OAAO,CAAC;EACxE,KAAK,uBACH,OAAO,OAAO,KAAK,EACjB,SAAS,qCAAqC,MAAM,UACtD,CAAC;EACH,KAAK,2BACH,OAAO,OAAO,KAAK,EACjB,SAAS,6BAA6B,MAAM,OAAO,OAAO,iBAAiB,oBACzE,MAAM,QACN,eAAe,CAAC,CAAC,KACnB,IACF,CAAC;EACH,SACE,OAAO,YAAY,KAAK;CAC5B;AACF;AAEA,SAAS,YAAY,OAAqB;CACxC,MAAM,IAAI,MAAM,gCAAgC,KAAK,UAAU,KAAK,GAAG;AACzE;;;;ACjBA,eAAe,YAAY,YAAqC;CAgB9D,QAAO,MAfmB,QAAQ,MAAM;EACtC,aAAa,CAAC,UAAU;EACxB,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,WAAW;EACX,WAAW;EACX,YAAY,CAAC,QAAQ,QAAQ;EAC7B,YAAY,CAAC,UAAU,MAAM;EAC7B,UAAU;EACV,QAAQ,EAAE,SAAS,OAAO;CAC5B,CAAC,EAEiB,CAAC,YAAY,EAAE,CAAC;AACpC;AAEA,eAAsB,WACpB,YAC4D;CAK5D,IAAI,CAAC,MAJe,OAAO,UAAU,CAAC,CAAC,WAC/B,YACA,KACR,GAEE,OAAO,OAAO,KAAK;EAAE,MAAM;EAAoB,MAAM;CAAW,CAAC;CAGnE,IAAI;CACJ,IAAI;EACF,UAAU,MAAM,YAAY,UAAU;CACxC,SAAS,OAAO;EACd,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,OAAO,OAAO,KAAK;GAAE,MAAM;GAAuB;EAAQ,CAAC;CAC7D;CAIA,MAAM,EAAE,SAAS,QAAQ,MAAM,OAAO,wBAFI,mBAAmB,OAAO;CAOpE,MAAM,SAAS,EAAE,UAAU,qBAAqB,GAAG;CACnD,IAAI,CAAC,OAAO,SACV,OAAO,OAAO,KAAK;EACjB,MAAM;EACN,QAAQ,OAAO;CACjB,CAAC;CAGH,OAAO,OAAO,QAAQ,OAAO,MAAM;AACrC"}
@@ -1,6 +1,6 @@
1
1
  const require_cli_main = require('./cli/main.cjs');
2
2
  const require_shared = require('./shared-DHRPzzKl.cjs');
3
- const require_run_codegen = require('./run-codegen-mclysZuT.cjs');
3
+ const require_run_codegen = require('./run-codegen-B-90rvjk.cjs');
4
4
 
5
5
  //#region src/cli/codegen/consumer.ts
6
6
  function renderConsumerModule(config) {
@@ -92,4 +92,4 @@ var consumer_default = require_cli_main.defineCommand({
92
92
 
93
93
  //#endregion
94
94
  exports.default = consumer_default;
95
- //# sourceMappingURL=consumer-OG6IEJun.cjs.map
95
+ //# sourceMappingURL=consumer-BSgriLn0.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"consumer-OG6IEJun.cjs","names":["formatTsWithPrettier","AUTOGEN_HEADER","UTILITIES","renderSection","renderModuleRowTypeBlock","renderModuleDescriptorBlock","renderWebhookTypesSection","renderTypeBlock","toCodeTypeName","renderColumnField","renderRefsFieldLines","renderUniqueFieldLines","contextArgs","configFileArg","defineCommand","runCodegen"],"sources":["../src/cli/codegen/consumer.ts","../src/cli/commands/codegen/consumer.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n};\n\nexport function renderConsumerModule(\n config: CommonOrizmConfig,\n): Promise<string> {\n const tables: RenderTable[] = config.tables;\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/consumer-sdk/common\";',\n 'import { type ConsumerClientOptions, OrizmConsumerClientBase } from \"@orizm/consumer-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", tables.map(renderTableRowType)),\n modules.map(renderModuleRowTypeBlock).join(\"\\n\\n\"),\n renderSection(\"Descriptor types\", [\n ...tables.map(renderTableDescriptor),\n ...modules.map(renderModuleDescriptorBlock),\n ]),\n renderWebhookTypesSection(tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderConsumerClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableRowType(table: RenderTable): string {\n return renderTypeBlock(toCodeTypeName(table.name), [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n ...table.columns.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ]);\n}\n\nfunction renderConsumerClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n return `export class OrizmClient extends OrizmConsumerClientBase {\n constructor(options: ConsumerClientOptions) {\n super(options);\n }\n\n readonly tables = {\n ${tableEntries}\n };\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderConsumerModule } from \"../../codegen/consumer.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst consumerArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"consumer\",\n description: \"Generate Consumer SDK types from a schema definition\",\n },\n args: consumerArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"Consumer\",\n render: renderConsumerModule,\n }),\n});\n"],"mappings":";;;;;AA0BA,SAAgB,qBACd,QACiB;CACjB,MAAM,SAAwB,OAAO;CACrC,MAAM,UAAU,OAAO;CAyBvB,OAAOA,yCAJQ;EAnBC;GACdC;GACA;GACA;GACA;EACF,CAAC,CAAC,KAAK,IAce;EAAGC;EAZX;GACZC,kCAAc,UAAU,OAAO,IAAI,kBAAkB,CAAC;GACtD,QAAQ,IAAIC,4CAAwB,CAAC,CAAC,KAAK,MAAM;GACjDD,kCAAc,oBAAoB,CAChC,GAAG,OAAO,IAAI,qBAAqB,GACnC,GAAG,QAAQ,IAAIE,+CAA2B,CAC5C,CAAC;GACDC,8CAA0B,MAAM;EAClC,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,QAEgC;EAAG,qBAAqB,MAAM;CAAC,CAAC,CAAC,KACvE,QAG+B,CAAC;AACpC;AAEA,SAAS,mBAAmB,OAA4B;CACtD,OAAOC,oCAAgBC,mCAAe,MAAM,IAAI,GAAG;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,MAAM,QAAQ,KAAK,QAAQC,sCAAkB,GAAG,CAAC;EACpD,GAAI,MAAM,aAAa,CAAC,kCAAkC,IAAI,CAAC;CACjE,CAAC;AACH;AAEA,SAAS,sBAAsB,OAA4B;CACzD,MAAM,OAAOD,mCAAe,MAAM,IAAI;CACtC,OAAOD,oCAAgB,GAAG,KAAK,eAAe;EAC5C,QAAQ,KAAK;EACb,GAAGG,yCAAqB,MAAM,OAAO;EACrC,GAAGC,2CAAuB,KAAK;EAC/B,GAAI,MAAM,eAAe,CAAC,qBAAqB,IAAI,CAAC;CACtD,CAAC;AACH;AAEA,SAAS,qBAAqB,QAAmC;CAQ/D,OAAO;;;;;;MAPc,OAAO,OACzB,KACE,MACC,GAAG,EAAE,KAAK,wBAAwBH,mCAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,IACrF,CAAC,CACA,KAAK,IAQO,EAAE;;;AAGnB;;;;AC7FA,MAAM,eAAe;CACnB,GAAGI;CACH,eAAeC;CACf,QAAQ;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,SAAS;CACX;CACA,MAAM;EACJ,MAAM;EACN,aACE;EACF,SAAS;CACX;AACF;AAEA,uBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,+BAAW;EACT;EACA,MAAM,KAAK,SAAS;EACpB,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,OAAO;EACP,QAAQ;CACV,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"consumer-BSgriLn0.cjs","names":["formatTsWithPrettier","AUTOGEN_HEADER","UTILITIES","renderSection","renderModuleRowTypeBlock","renderModuleDescriptorBlock","renderWebhookTypesSection","renderTypeBlock","toCodeTypeName","renderColumnField","renderRefsFieldLines","renderUniqueFieldLines","contextArgs","configFileArg","defineCommand","runCodegen"],"sources":["../src/cli/codegen/consumer.ts","../src/cli/commands/codegen/consumer.ts"],"sourcesContent":["import { CommonOrizmConfig } from \"../types.js\";\nimport { formatTsWithPrettier } from \"./format.js\";\nimport {\n AUTOGEN_HEADER,\n UTILITIES,\n RenderColumn,\n RenderIndex,\n toCodeTypeName,\n renderColumnField,\n renderTypeBlock,\n renderRefsFieldLines,\n renderUniqueFieldLines,\n renderModuleRowTypeBlock,\n renderModuleDescriptorBlock,\n renderSection,\n renderWebhookTypesSection,\n} from \"./render.js\";\n\ntype RenderTable = {\n name: string;\n columns: RenderColumn[];\n enableForm?: boolean;\n enableDrafts?: boolean;\n indexes?: RenderIndex[];\n};\n\nexport function renderConsumerModule(\n config: CommonOrizmConfig,\n): Promise<string> {\n const tables: RenderTable[] = config.tables;\n const modules = config.tableModules;\n\n const imports = [\n AUTOGEN_HEADER,\n \"\",\n 'import type { FormValidationRules, StorageItemType } from \"@orizm/consumer-sdk/common\";',\n 'import { type ConsumerClientOptions, OrizmConsumerClientBase } from \"@orizm/consumer-sdk\";',\n ].join(\"\\n\");\n\n const types = [\n renderSection(\"Tables\", tables.map(renderTableRowType)),\n modules.map(renderModuleRowTypeBlock).join(\"\\n\\n\"),\n renderSection(\"Descriptor types\", [\n ...tables.map(renderTableDescriptor),\n ...modules.map(renderModuleDescriptorBlock),\n ]),\n renderWebhookTypesSection(tables),\n ]\n .filter(Boolean)\n .join(\"\\n\\n\\n\");\n\n const source = [imports, UTILITIES, types, renderConsumerClient(config)].join(\n \"\\n\\n\\n\",\n );\n\n return formatTsWithPrettier(source);\n}\n\nfunction renderTableRowType(table: RenderTable): string {\n return renderTypeBlock(toCodeTypeName(table.name), [\n \"id: string;\",\n \"createdAt: string;\",\n \"updatedAt: string;\",\n \"group: string | null;\",\n \"publishedAt: string | null;\",\n \"_draft: boolean | null;\",\n \"_published: boolean | null;\",\n ...table.columns.map((col) => renderColumnField(col)),\n ...(table.enableForm ? [\"formSchema: FormValidationRules;\"] : []),\n ]);\n}\n\nfunction renderTableDescriptor(table: RenderTable): string {\n const name = toCodeTypeName(table.name);\n return renderTypeBlock(`${name}__Descriptor`, [\n `row: ${name};`,\n ...renderRefsFieldLines(table.columns),\n ...renderUniqueFieldLines(table),\n ...(table.enableDrafts ? [\"enableDrafts: true;\"] : []),\n ]);\n}\n\nfunction renderConsumerClient(config: CommonOrizmConfig): string {\n const tableEntries = config.tables\n .map(\n (t) =>\n `${t.name}: this.getTableClient<${toCodeTypeName(t.name)}__Descriptor>(\"${t.name}\"),`,\n )\n .join(\"\\n\");\n\n return `export class OrizmClient extends OrizmConsumerClientBase {\n constructor(options: ConsumerClientOptions) {\n super(options);\n }\n\n readonly tables = {\n ${tableEntries}\n };\n}`;\n}\n","import type { ArgsDef } from \"citty\";\nimport { defineCommand } from \"../define-command.js\";\nimport { contextArgs, configFileArg, DEFAULT_CONFIG_FILE } from \"../shared.js\";\nimport { renderConsumerModule } from \"../../codegen/consumer.js\";\nimport { runCodegen } from \"./run-codegen.js\";\n\nconst consumerArgs = {\n ...contextArgs,\n \"config-file\": configFileArg,\n output: {\n type: \"string\",\n alias: \"o\",\n description: \"Output file (.ts) or directory\",\n default: \"./src/orizm\",\n },\n pull: {\n type: \"boolean\",\n description:\n \"Generate from the server's applied definition instead of the local config\",\n default: false,\n },\n} satisfies ArgsDef;\n\nexport default defineCommand({\n meta: {\n name: \"consumer\",\n description: \"Generate Consumer SDK types from a schema definition\",\n },\n args: consumerArgs,\n run: ({ args }) =>\n runCodegen({\n args,\n pull: args.pull === true,\n configFile: args[\"config-file\"] ?? DEFAULT_CONFIG_FILE,\n output: args.output,\n label: \"Consumer\",\n render: renderConsumerModule,\n }),\n});\n"],"mappings":";;;;;AA0BA,SAAgB,qBACd,QACiB;CACjB,MAAM,SAAwB,OAAO;CACrC,MAAM,UAAU,OAAO;CAyBvB,OAAOA,yCAJQ;EAnBC;GACdC;GACA;GACA;GACA;EACF,CAAC,CAAC,KAAK,IAce;EAAGC;EAZX;GACZC,kCAAc,UAAU,OAAO,IAAI,kBAAkB,CAAC;GACtD,QAAQ,IAAIC,4CAAwB,CAAC,CAAC,KAAK,MAAM;GACjDD,kCAAc,oBAAoB,CAChC,GAAG,OAAO,IAAI,qBAAqB,GACnC,GAAG,QAAQ,IAAIE,+CAA2B,CAC5C,CAAC;GACDC,8CAA0B,MAAM;EAClC,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,QAEgC;EAAG,qBAAqB,MAAM;CAAC,CAAC,CAAC,KACvE,QAG+B,CAAC;AACpC;AAEA,SAAS,mBAAmB,OAA4B;CACtD,OAAOC,oCAAgBC,mCAAe,MAAM,IAAI,GAAG;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,MAAM,QAAQ,KAAK,QAAQC,sCAAkB,GAAG,CAAC;EACpD,GAAI,MAAM,aAAa,CAAC,kCAAkC,IAAI,CAAC;CACjE,CAAC;AACH;AAEA,SAAS,sBAAsB,OAA4B;CACzD,MAAM,OAAOD,mCAAe,MAAM,IAAI;CACtC,OAAOD,oCAAgB,GAAG,KAAK,eAAe;EAC5C,QAAQ,KAAK;EACb,GAAGG,yCAAqB,MAAM,OAAO;EACrC,GAAGC,2CAAuB,KAAK;EAC/B,GAAI,MAAM,eAAe,CAAC,qBAAqB,IAAI,CAAC;CACtD,CAAC;AACH;AAEA,SAAS,qBAAqB,QAAmC;CAQ/D,OAAO;;;;;;MAPc,OAAO,OACzB,KACE,MACC,GAAG,EAAE,KAAK,wBAAwBH,mCAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,IACrF,CAAC,CACA,KAAK,IAQO,EAAE;;;AAGnB;;;;AC7FA,MAAM,eAAe;CACnB,GAAGI;CACH,eAAeC;CACf,QAAQ;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,SAAS;CACX;CACA,MAAM;EACJ,MAAM;EACN,aACE;EACF,SAAS;CACX;AACF;AAEA,uBAAeC,+BAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;CACN,MAAM,EAAE,WACNC,+BAAW;EACT;EACA,MAAM,KAAK,SAAS;EACpB,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,OAAO;EACP,QAAQ;CACV,CAAC;AACL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { t as defineCommand } from "./cli/main.mjs";
2
2
  import { n as configFileArg, r as contextArgs, t as DEFAULT_CONFIG_FILE } from "./shared-CZZimGxc.mjs";
3
- import { a as renderModuleDescriptorBlock, c as renderSection, d as renderWebhookTypesSection, f as toCodeTypeName, i as renderColumnField, l as renderTypeBlock, n as AUTOGEN_HEADER, o as renderModuleRowTypeBlock, p as formatTsWithPrettier, r as UTILITIES, s as renderRefsFieldLines, t as runCodegen, u as renderUniqueFieldLines } from "./run-codegen-DjnV60bE.mjs";
3
+ import { a as renderModuleDescriptorBlock, c as renderSection, d as renderWebhookTypesSection, f as toCodeTypeName, i as renderColumnField, l as renderTypeBlock, n as AUTOGEN_HEADER, o as renderModuleRowTypeBlock, p as formatTsWithPrettier, r as UTILITIES, s as renderRefsFieldLines, t as runCodegen, u as renderUniqueFieldLines } from "./run-codegen-CrO08jJT.mjs";
4
4
 
5
5
  //#region src/cli/codegen/consumer.ts
6
6
  function renderConsumerModule(config) {
@@ -92,4 +92,4 @@ var consumer_default = defineCommand({
92
92
 
93
93
  //#endregion
94
94
  export { consumer_default as default };
95
- //# sourceMappingURL=consumer-CqyZdG9v.mjs.map
95
+ //# sourceMappingURL=consumer-s8LnLw4e.mjs.map