@famgia/omnify-japan 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -84,6 +84,8 @@ var japanPhoneType = {
84
84
  typescript: {
85
85
  type: "string"
86
86
  },
87
+ // Only base fields allowed (no type-specific fields)
88
+ validFields: [],
87
89
  validate: (_prop) => {
88
90
  return void 0;
89
91
  }
@@ -97,12 +99,14 @@ var japanPostalCodeType = {
97
99
  },
98
100
  typescript: {
99
101
  type: "string"
100
- }
102
+ },
103
+ validFields: []
101
104
  };
102
105
  var japanAddressType = {
103
106
  name: "JapanAddress",
104
107
  description: "Full Japanese address with postal code, prefecture, city, and street",
105
108
  compound: true,
109
+ validFields: [],
106
110
  expand: [
107
111
  {
108
112
  suffix: "PostalCode",
@@ -111,8 +115,8 @@ var japanAddressType = {
111
115
  },
112
116
  {
113
117
  suffix: "Prefecture",
114
- sql: { sqlType: "VARCHAR", length: 10 },
115
- typescript: { type: "string" }
118
+ enumRef: "Prefecture"
119
+ // References schemas/Prefecture.yaml enum
116
120
  },
117
121
  {
118
122
  suffix: "City",
@@ -135,6 +139,7 @@ var japanNameType = {
135
139
  name: "JapanName",
136
140
  description: "Japanese name with kanji and kana variants",
137
141
  compound: true,
142
+ validFields: [],
138
143
  expand: [
139
144
  {
140
145
  suffix: "LastName",
@@ -158,16 +163,141 @@ var japanNameType = {
158
163
  }
159
164
  ]
160
165
  };
166
+ var japanPersonNameType = {
167
+ name: "JapanPersonName",
168
+ description: "Japanese person name with kanji and kana (legacy naming)",
169
+ compound: true,
170
+ validFields: [],
171
+ expand: [
172
+ {
173
+ suffix: "Lastname",
174
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
175
+ typescript: { type: "string" }
176
+ },
177
+ {
178
+ suffix: "Firstname",
179
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
180
+ typescript: { type: "string" }
181
+ },
182
+ {
183
+ suffix: "KanaLastname",
184
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
185
+ typescript: { type: "string" }
186
+ },
187
+ {
188
+ suffix: "KanaFirstname",
189
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
190
+ typescript: { type: "string" }
191
+ }
192
+ ]
193
+ };
161
194
  var japanBankAccountType = {
162
195
  name: "JapanBankAccount",
163
- description: "Japanese bank account number",
164
- sql: {
165
- sqlType: "VARCHAR",
166
- length: 7
167
- },
168
- typescript: {
169
- type: "string"
170
- }
196
+ description: "Japanese bank account with bank/branch codes, type, number, and holder name",
197
+ compound: true,
198
+ validFields: [],
199
+ expand: [
200
+ {
201
+ suffix: "BankCode",
202
+ sql: { sqlType: "VARCHAR", length: 4 },
203
+ typescript: { type: "string" }
204
+ },
205
+ {
206
+ suffix: "BranchCode",
207
+ sql: { sqlType: "VARCHAR", length: 3 },
208
+ typescript: { type: "string" }
209
+ },
210
+ {
211
+ suffix: "AccountType",
212
+ enumRef: "BankAccountType"
213
+ // 普通/当座/貯蓄
214
+ },
215
+ {
216
+ suffix: "AccountNumber",
217
+ sql: { sqlType: "VARCHAR", length: 7 },
218
+ typescript: { type: "string" }
219
+ },
220
+ {
221
+ suffix: "AccountHolder",
222
+ sql: { sqlType: "VARCHAR", length: 100 },
223
+ typescript: { type: "string" }
224
+ }
225
+ ]
226
+ };
227
+ var bankAccountTypeEnum = {
228
+ name: "BankAccountType",
229
+ displayName: "\u53E3\u5EA7\u7A2E\u5225",
230
+ description: "Japanese bank account types (Zengin system codes)",
231
+ values: [
232
+ { value: "1", label: "\u666E\u901A" },
233
+ // Ordinary savings
234
+ { value: "2", label: "\u5F53\u5EA7" },
235
+ // Checking
236
+ { value: "4", label: "\u8CAF\u84C4" }
237
+ // Savings
238
+ ]
239
+ };
240
+ var prefectureEnum = {
241
+ name: "Prefecture",
242
+ displayName: "\u90FD\u9053\u5E9C\u770C",
243
+ description: "Japanese prefectures (JIS X 0401 codes)",
244
+ values: [
245
+ // 北海道地方
246
+ { value: "1", label: "\u5317\u6D77\u9053", extra: { area: "hokkaido" } },
247
+ // 東北地方
248
+ { value: "2", label: "\u9752\u68EE\u770C", extra: { area: "tohoku" } },
249
+ { value: "3", label: "\u5CA9\u624B\u770C", extra: { area: "tohoku" } },
250
+ { value: "4", label: "\u5BAE\u57CE\u770C", extra: { area: "tohoku" } },
251
+ { value: "5", label: "\u79CB\u7530\u770C", extra: { area: "tohoku" } },
252
+ { value: "6", label: "\u5C71\u5F62\u770C", extra: { area: "tohoku" } },
253
+ { value: "7", label: "\u798F\u5CF6\u770C", extra: { area: "tohoku" } },
254
+ // 関東地方
255
+ { value: "8", label: "\u8328\u57CE\u770C", extra: { area: "kanto" } },
256
+ { value: "9", label: "\u6803\u6728\u770C", extra: { area: "kanto" } },
257
+ { value: "10", label: "\u7FA4\u99AC\u770C", extra: { area: "kanto" } },
258
+ { value: "11", label: "\u57FC\u7389\u770C", extra: { area: "kanto" } },
259
+ { value: "12", label: "\u5343\u8449\u770C", extra: { area: "kanto" } },
260
+ { value: "13", label: "\u6771\u4EAC\u90FD", extra: { area: "kanto" } },
261
+ { value: "14", label: "\u795E\u5948\u5DDD\u770C", extra: { area: "kanto" } },
262
+ // 中部地方
263
+ { value: "15", label: "\u65B0\u6F5F\u770C", extra: { area: "chubu" } },
264
+ { value: "16", label: "\u5BCC\u5C71\u770C", extra: { area: "chubu" } },
265
+ { value: "17", label: "\u77F3\u5DDD\u770C", extra: { area: "chubu" } },
266
+ { value: "18", label: "\u798F\u4E95\u770C", extra: { area: "chubu" } },
267
+ { value: "19", label: "\u5C71\u68A8\u770C", extra: { area: "chubu" } },
268
+ { value: "20", label: "\u9577\u91CE\u770C", extra: { area: "chubu" } },
269
+ { value: "21", label: "\u5C90\u961C\u770C", extra: { area: "chubu" } },
270
+ { value: "22", label: "\u9759\u5CA1\u770C", extra: { area: "chubu" } },
271
+ { value: "23", label: "\u611B\u77E5\u770C", extra: { area: "chubu" } },
272
+ // 近畿地方
273
+ { value: "24", label: "\u4E09\u91CD\u770C", extra: { area: "kinki" } },
274
+ { value: "25", label: "\u6ECB\u8CC0\u770C", extra: { area: "kinki" } },
275
+ { value: "26", label: "\u4EAC\u90FD\u5E9C", extra: { area: "kinki" } },
276
+ { value: "27", label: "\u5927\u962A\u5E9C", extra: { area: "kinki" } },
277
+ { value: "28", label: "\u5175\u5EAB\u770C", extra: { area: "kinki" } },
278
+ { value: "29", label: "\u5948\u826F\u770C", extra: { area: "kinki" } },
279
+ { value: "30", label: "\u548C\u6B4C\u5C71\u770C", extra: { area: "kinki" } },
280
+ // 中国地方
281
+ { value: "31", label: "\u9CE5\u53D6\u770C", extra: { area: "chugoku" } },
282
+ { value: "32", label: "\u5CF6\u6839\u770C", extra: { area: "chugoku" } },
283
+ { value: "33", label: "\u5CA1\u5C71\u770C", extra: { area: "chugoku" } },
284
+ { value: "34", label: "\u5E83\u5CF6\u770C", extra: { area: "chugoku" } },
285
+ { value: "35", label: "\u5C71\u53E3\u770C", extra: { area: "chugoku" } },
286
+ // 四国地方
287
+ { value: "36", label: "\u5FB3\u5CF6\u770C", extra: { area: "shikoku" } },
288
+ { value: "37", label: "\u9999\u5DDD\u770C", extra: { area: "shikoku" } },
289
+ { value: "38", label: "\u611B\u5A9B\u770C", extra: { area: "shikoku" } },
290
+ { value: "39", label: "\u9AD8\u77E5\u770C", extra: { area: "shikoku" } },
291
+ // 九州・沖縄地方
292
+ { value: "40", label: "\u798F\u5CA1\u770C", extra: { area: "kyushu" } },
293
+ { value: "41", label: "\u4F50\u8CC0\u770C", extra: { area: "kyushu" } },
294
+ { value: "42", label: "\u9577\u5D0E\u770C", extra: { area: "kyushu" } },
295
+ { value: "43", label: "\u718A\u672C\u770C", extra: { area: "kyushu" } },
296
+ { value: "44", label: "\u5927\u5206\u770C", extra: { area: "kyushu" } },
297
+ { value: "45", label: "\u5BAE\u5D0E\u770C", extra: { area: "kyushu" } },
298
+ { value: "46", label: "\u9E7F\u5150\u5CF6\u770C", extra: { area: "kyushu" } },
299
+ { value: "47", label: "\u6C96\u7E04\u770C", extra: { area: "kyushu" } }
300
+ ]
171
301
  };
172
302
  var japanTypesPlugin = {
173
303
  name: "@famgia/omnify-japan",
@@ -177,8 +307,10 @@ var japanTypesPlugin = {
177
307
  japanPostalCodeType,
178
308
  japanAddressType,
179
309
  japanNameType,
310
+ japanPersonNameType,
180
311
  japanBankAccountType
181
312
  ],
313
+ enums: [bankAccountTypeEnum, prefectureEnum],
182
314
  setup: (context) => {
183
315
  context.logger.debug("Japan types plugin loaded");
184
316
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture, city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n sql: { sqlType: 'VARCHAR', length: 10 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount type definition\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account number',\n sql: {\n sqlType: 'VARCHAR',\n length: 7,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition, PluginEnumDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n // Only base fields allowed (no type-specific fields)\n validFields: [],\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n validFields: [],\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture (EnumRef), city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n enumRef: 'Prefecture', // References schemas/Prefecture.yaml enum\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanPersonName compound type definition (legacy naming convention)\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * Column names: {prop}_lastname, {prop}_firstname, {prop}_kana_lastname, {prop}_kana_firstname\n */\nconst japanPersonNameType: CustomTypeDefinition = {\n name: 'JapanPersonName',\n description: 'Japanese person name with kanji and kana (legacy naming)',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanPersonNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -58,6 +58,8 @@ var japanPhoneType = {
58
58
  typescript: {
59
59
  type: "string"
60
60
  },
61
+ // Only base fields allowed (no type-specific fields)
62
+ validFields: [],
61
63
  validate: (_prop) => {
62
64
  return void 0;
63
65
  }
@@ -71,12 +73,14 @@ var japanPostalCodeType = {
71
73
  },
72
74
  typescript: {
73
75
  type: "string"
74
- }
76
+ },
77
+ validFields: []
75
78
  };
76
79
  var japanAddressType = {
77
80
  name: "JapanAddress",
78
81
  description: "Full Japanese address with postal code, prefecture, city, and street",
79
82
  compound: true,
83
+ validFields: [],
80
84
  expand: [
81
85
  {
82
86
  suffix: "PostalCode",
@@ -85,8 +89,8 @@ var japanAddressType = {
85
89
  },
86
90
  {
87
91
  suffix: "Prefecture",
88
- sql: { sqlType: "VARCHAR", length: 10 },
89
- typescript: { type: "string" }
92
+ enumRef: "Prefecture"
93
+ // References schemas/Prefecture.yaml enum
90
94
  },
91
95
  {
92
96
  suffix: "City",
@@ -109,6 +113,7 @@ var japanNameType = {
109
113
  name: "JapanName",
110
114
  description: "Japanese name with kanji and kana variants",
111
115
  compound: true,
116
+ validFields: [],
112
117
  expand: [
113
118
  {
114
119
  suffix: "LastName",
@@ -132,16 +137,141 @@ var japanNameType = {
132
137
  }
133
138
  ]
134
139
  };
140
+ var japanPersonNameType = {
141
+ name: "JapanPersonName",
142
+ description: "Japanese person name with kanji and kana (legacy naming)",
143
+ compound: true,
144
+ validFields: [],
145
+ expand: [
146
+ {
147
+ suffix: "Lastname",
148
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
149
+ typescript: { type: "string" }
150
+ },
151
+ {
152
+ suffix: "Firstname",
153
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
154
+ typescript: { type: "string" }
155
+ },
156
+ {
157
+ suffix: "KanaLastname",
158
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
159
+ typescript: { type: "string" }
160
+ },
161
+ {
162
+ suffix: "KanaFirstname",
163
+ sql: { sqlType: "VARCHAR", length: 255, nullable: true },
164
+ typescript: { type: "string" }
165
+ }
166
+ ]
167
+ };
135
168
  var japanBankAccountType = {
136
169
  name: "JapanBankAccount",
137
- description: "Japanese bank account number",
138
- sql: {
139
- sqlType: "VARCHAR",
140
- length: 7
141
- },
142
- typescript: {
143
- type: "string"
144
- }
170
+ description: "Japanese bank account with bank/branch codes, type, number, and holder name",
171
+ compound: true,
172
+ validFields: [],
173
+ expand: [
174
+ {
175
+ suffix: "BankCode",
176
+ sql: { sqlType: "VARCHAR", length: 4 },
177
+ typescript: { type: "string" }
178
+ },
179
+ {
180
+ suffix: "BranchCode",
181
+ sql: { sqlType: "VARCHAR", length: 3 },
182
+ typescript: { type: "string" }
183
+ },
184
+ {
185
+ suffix: "AccountType",
186
+ enumRef: "BankAccountType"
187
+ // 普通/当座/貯蓄
188
+ },
189
+ {
190
+ suffix: "AccountNumber",
191
+ sql: { sqlType: "VARCHAR", length: 7 },
192
+ typescript: { type: "string" }
193
+ },
194
+ {
195
+ suffix: "AccountHolder",
196
+ sql: { sqlType: "VARCHAR", length: 100 },
197
+ typescript: { type: "string" }
198
+ }
199
+ ]
200
+ };
201
+ var bankAccountTypeEnum = {
202
+ name: "BankAccountType",
203
+ displayName: "\u53E3\u5EA7\u7A2E\u5225",
204
+ description: "Japanese bank account types (Zengin system codes)",
205
+ values: [
206
+ { value: "1", label: "\u666E\u901A" },
207
+ // Ordinary savings
208
+ { value: "2", label: "\u5F53\u5EA7" },
209
+ // Checking
210
+ { value: "4", label: "\u8CAF\u84C4" }
211
+ // Savings
212
+ ]
213
+ };
214
+ var prefectureEnum = {
215
+ name: "Prefecture",
216
+ displayName: "\u90FD\u9053\u5E9C\u770C",
217
+ description: "Japanese prefectures (JIS X 0401 codes)",
218
+ values: [
219
+ // 北海道地方
220
+ { value: "1", label: "\u5317\u6D77\u9053", extra: { area: "hokkaido" } },
221
+ // 東北地方
222
+ { value: "2", label: "\u9752\u68EE\u770C", extra: { area: "tohoku" } },
223
+ { value: "3", label: "\u5CA9\u624B\u770C", extra: { area: "tohoku" } },
224
+ { value: "4", label: "\u5BAE\u57CE\u770C", extra: { area: "tohoku" } },
225
+ { value: "5", label: "\u79CB\u7530\u770C", extra: { area: "tohoku" } },
226
+ { value: "6", label: "\u5C71\u5F62\u770C", extra: { area: "tohoku" } },
227
+ { value: "7", label: "\u798F\u5CF6\u770C", extra: { area: "tohoku" } },
228
+ // 関東地方
229
+ { value: "8", label: "\u8328\u57CE\u770C", extra: { area: "kanto" } },
230
+ { value: "9", label: "\u6803\u6728\u770C", extra: { area: "kanto" } },
231
+ { value: "10", label: "\u7FA4\u99AC\u770C", extra: { area: "kanto" } },
232
+ { value: "11", label: "\u57FC\u7389\u770C", extra: { area: "kanto" } },
233
+ { value: "12", label: "\u5343\u8449\u770C", extra: { area: "kanto" } },
234
+ { value: "13", label: "\u6771\u4EAC\u90FD", extra: { area: "kanto" } },
235
+ { value: "14", label: "\u795E\u5948\u5DDD\u770C", extra: { area: "kanto" } },
236
+ // 中部地方
237
+ { value: "15", label: "\u65B0\u6F5F\u770C", extra: { area: "chubu" } },
238
+ { value: "16", label: "\u5BCC\u5C71\u770C", extra: { area: "chubu" } },
239
+ { value: "17", label: "\u77F3\u5DDD\u770C", extra: { area: "chubu" } },
240
+ { value: "18", label: "\u798F\u4E95\u770C", extra: { area: "chubu" } },
241
+ { value: "19", label: "\u5C71\u68A8\u770C", extra: { area: "chubu" } },
242
+ { value: "20", label: "\u9577\u91CE\u770C", extra: { area: "chubu" } },
243
+ { value: "21", label: "\u5C90\u961C\u770C", extra: { area: "chubu" } },
244
+ { value: "22", label: "\u9759\u5CA1\u770C", extra: { area: "chubu" } },
245
+ { value: "23", label: "\u611B\u77E5\u770C", extra: { area: "chubu" } },
246
+ // 近畿地方
247
+ { value: "24", label: "\u4E09\u91CD\u770C", extra: { area: "kinki" } },
248
+ { value: "25", label: "\u6ECB\u8CC0\u770C", extra: { area: "kinki" } },
249
+ { value: "26", label: "\u4EAC\u90FD\u5E9C", extra: { area: "kinki" } },
250
+ { value: "27", label: "\u5927\u962A\u5E9C", extra: { area: "kinki" } },
251
+ { value: "28", label: "\u5175\u5EAB\u770C", extra: { area: "kinki" } },
252
+ { value: "29", label: "\u5948\u826F\u770C", extra: { area: "kinki" } },
253
+ { value: "30", label: "\u548C\u6B4C\u5C71\u770C", extra: { area: "kinki" } },
254
+ // 中国地方
255
+ { value: "31", label: "\u9CE5\u53D6\u770C", extra: { area: "chugoku" } },
256
+ { value: "32", label: "\u5CF6\u6839\u770C", extra: { area: "chugoku" } },
257
+ { value: "33", label: "\u5CA1\u5C71\u770C", extra: { area: "chugoku" } },
258
+ { value: "34", label: "\u5E83\u5CF6\u770C", extra: { area: "chugoku" } },
259
+ { value: "35", label: "\u5C71\u53E3\u770C", extra: { area: "chugoku" } },
260
+ // 四国地方
261
+ { value: "36", label: "\u5FB3\u5CF6\u770C", extra: { area: "shikoku" } },
262
+ { value: "37", label: "\u9999\u5DDD\u770C", extra: { area: "shikoku" } },
263
+ { value: "38", label: "\u611B\u5A9B\u770C", extra: { area: "shikoku" } },
264
+ { value: "39", label: "\u9AD8\u77E5\u770C", extra: { area: "shikoku" } },
265
+ // 九州・沖縄地方
266
+ { value: "40", label: "\u798F\u5CA1\u770C", extra: { area: "kyushu" } },
267
+ { value: "41", label: "\u4F50\u8CC0\u770C", extra: { area: "kyushu" } },
268
+ { value: "42", label: "\u9577\u5D0E\u770C", extra: { area: "kyushu" } },
269
+ { value: "43", label: "\u718A\u672C\u770C", extra: { area: "kyushu" } },
270
+ { value: "44", label: "\u5927\u5206\u770C", extra: { area: "kyushu" } },
271
+ { value: "45", label: "\u5BAE\u5D0E\u770C", extra: { area: "kyushu" } },
272
+ { value: "46", label: "\u9E7F\u5150\u5CF6\u770C", extra: { area: "kyushu" } },
273
+ { value: "47", label: "\u6C96\u7E04\u770C", extra: { area: "kyushu" } }
274
+ ]
145
275
  };
146
276
  var japanTypesPlugin = {
147
277
  name: "@famgia/omnify-japan",
@@ -151,8 +281,10 @@ var japanTypesPlugin = {
151
281
  japanPostalCodeType,
152
282
  japanAddressType,
153
283
  japanNameType,
284
+ japanPersonNameType,
154
285
  japanBankAccountType
155
286
  ],
287
+ enums: [bankAccountTypeEnum, prefectureEnum],
156
288
  setup: (context) => {
157
289
  context.logger.debug("Japan types plugin loaded");
158
290
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture, city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n sql: { sqlType: 'VARCHAR', length: 10 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount type definition\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account number',\n sql: {\n sqlType: 'VARCHAR',\n length: 7,\n },\n typescript: {\n type: 'string',\n },\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition, PluginEnumDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n // Only base fields allowed (no type-specific fields)\n validFields: [],\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n validFields: [],\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture (EnumRef), city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n enumRef: 'Prefecture', // References schemas/Prefecture.yaml enum\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanPersonName compound type definition (legacy naming convention)\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * Column names: {prop}_lastname, {prop}_firstname, {prop}_kana_lastname, {prop}_kana_firstname\n */\nconst japanPersonNameType: CustomTypeDefinition = {\n name: 'JapanPersonName',\n description: 'Japanese person name with kanji and kana (legacy naming)',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanPersonNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@famgia/omnify-japan",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Japan-specific types plugin for omnify-schema",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,13 +18,14 @@
18
18
  "README.md"
19
19
  ],
20
20
  "dependencies": {
21
- "@famgia/omnify-types": "0.0.9"
21
+ "@famgia/omnify-types": "0.0.12"
22
22
  },
23
23
  "scripts": {
24
24
  "build": "tsup",
25
25
  "clean": "rm -rf dist",
26
26
  "test": "vitest run --passWithNoTests",
27
27
  "test:watch": "vitest",
28
- "lint": "eslint src"
28
+ "lint": "eslint src",
29
+ "typecheck": "tsc --noEmit"
29
30
  }
30
31
  }