@famgia/omnify-japan 0.0.19 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -104,7 +104,7 @@ var japanPostalCodeType = {
104
104
  };
105
105
  var japanAddressType = {
106
106
  name: "JapanAddress",
107
- description: "Full Japanese address with postal code, prefecture, city, and street",
107
+ description: "Full Japanese address with postal code, prefecture ID, and street addresses",
108
108
  compound: true,
109
109
  validFields: [],
110
110
  expand: [
@@ -114,25 +114,32 @@ var japanAddressType = {
114
114
  typescript: { type: "string" }
115
115
  },
116
116
  {
117
- suffix: "Prefecture",
118
- enumRef: "Prefecture"
119
- // References schemas/Prefecture.yaml enum
117
+ suffix: "PrefectureId",
118
+ sql: { sqlType: "TINYINT", unsigned: true },
119
+ typescript: { type: "number" }
120
120
  },
121
121
  {
122
- suffix: "City",
123
- sql: { sqlType: "VARCHAR", length: 100 },
122
+ suffix: "Address1",
123
+ sql: { sqlType: "VARCHAR", length: 255 },
124
124
  typescript: { type: "string" }
125
125
  },
126
126
  {
127
- suffix: "Address1",
127
+ suffix: "Address2",
128
128
  sql: { sqlType: "VARCHAR", length: 255 },
129
129
  typescript: { type: "string" }
130
130
  },
131
131
  {
132
- suffix: "Address2",
132
+ suffix: "Address3",
133
133
  sql: { sqlType: "VARCHAR", length: 255, nullable: true },
134
134
  typescript: { type: "string" }
135
135
  }
136
+ ],
137
+ accessors: [
138
+ {
139
+ name: "full_address",
140
+ fields: ["Address1", "Address2", "Address3"],
141
+ separator: ""
142
+ }
136
143
  ]
137
144
  };
138
145
  var japanNameType = {
@@ -142,52 +149,36 @@ var japanNameType = {
142
149
  validFields: [],
143
150
  expand: [
144
151
  {
145
- suffix: "LastName",
152
+ suffix: "Lastname",
146
153
  sql: { sqlType: "VARCHAR", length: 50 },
147
154
  typescript: { type: "string" }
148
155
  },
149
156
  {
150
- suffix: "FirstName",
157
+ suffix: "Firstname",
151
158
  sql: { sqlType: "VARCHAR", length: 50 },
152
159
  typescript: { type: "string" }
153
160
  },
154
161
  {
155
- suffix: "LastNameKana",
162
+ suffix: "KanaLastname",
156
163
  sql: { sqlType: "VARCHAR", length: 100 },
157
164
  typescript: { type: "string" }
158
165
  },
159
166
  {
160
- suffix: "FirstNameKana",
167
+ suffix: "KanaFirstname",
161
168
  sql: { sqlType: "VARCHAR", length: 100 },
162
169
  typescript: { type: "string" }
163
170
  }
164
- ]
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
- },
171
+ ],
172
+ accessors: [
182
173
  {
183
- suffix: "KanaLastname",
184
- sql: { sqlType: "VARCHAR", length: 255, nullable: true },
185
- typescript: { type: "string" }
174
+ name: "full_name",
175
+ fields: ["Lastname", "Firstname"],
176
+ separator: " "
186
177
  },
187
178
  {
188
- suffix: "KanaFirstname",
189
- sql: { sqlType: "VARCHAR", length: 255, nullable: true },
190
- typescript: { type: "string" }
179
+ name: "full_name_kana",
180
+ fields: ["KanaLastname", "KanaFirstname"],
181
+ separator: " "
191
182
  }
192
183
  ]
193
184
  };
@@ -307,7 +298,6 @@ var japanTypesPlugin = {
307
298
  japanPostalCodeType,
308
299
  japanAddressType,
309
300
  japanNameType,
310
- japanPersonNameType,
311
301
  japanBankAccountType
312
302
  ],
313
303
  enums: [bankAccountTypeEnum, prefectureEnum],
@@ -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, 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":[]}
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_id (TinyInt 1-47), address1, address2, address3\n * (matching legacy omnify naming convention)\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture ID, and street addresses',\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: 'PrefectureId',\n sql: { sqlType: 'TINYINT', unsigned: true },\n typescript: { type: 'number' },\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 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address3',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_address',\n fields: ['Address1', 'Address2', 'Address3'],\n separator: '',\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\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: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_name',\n fields: ['Lastname', 'Firstname'],\n separator: ' ',\n },\n {\n name: 'full_name_kana',\n fields: ['KanaLastname', 'KanaFirstname'],\n separator: ' ',\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 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
@@ -78,7 +78,7 @@ var japanPostalCodeType = {
78
78
  };
79
79
  var japanAddressType = {
80
80
  name: "JapanAddress",
81
- description: "Full Japanese address with postal code, prefecture, city, and street",
81
+ description: "Full Japanese address with postal code, prefecture ID, and street addresses",
82
82
  compound: true,
83
83
  validFields: [],
84
84
  expand: [
@@ -88,25 +88,32 @@ var japanAddressType = {
88
88
  typescript: { type: "string" }
89
89
  },
90
90
  {
91
- suffix: "Prefecture",
92
- enumRef: "Prefecture"
93
- // References schemas/Prefecture.yaml enum
91
+ suffix: "PrefectureId",
92
+ sql: { sqlType: "TINYINT", unsigned: true },
93
+ typescript: { type: "number" }
94
94
  },
95
95
  {
96
- suffix: "City",
97
- sql: { sqlType: "VARCHAR", length: 100 },
96
+ suffix: "Address1",
97
+ sql: { sqlType: "VARCHAR", length: 255 },
98
98
  typescript: { type: "string" }
99
99
  },
100
100
  {
101
- suffix: "Address1",
101
+ suffix: "Address2",
102
102
  sql: { sqlType: "VARCHAR", length: 255 },
103
103
  typescript: { type: "string" }
104
104
  },
105
105
  {
106
- suffix: "Address2",
106
+ suffix: "Address3",
107
107
  sql: { sqlType: "VARCHAR", length: 255, nullable: true },
108
108
  typescript: { type: "string" }
109
109
  }
110
+ ],
111
+ accessors: [
112
+ {
113
+ name: "full_address",
114
+ fields: ["Address1", "Address2", "Address3"],
115
+ separator: ""
116
+ }
110
117
  ]
111
118
  };
112
119
  var japanNameType = {
@@ -116,52 +123,36 @@ var japanNameType = {
116
123
  validFields: [],
117
124
  expand: [
118
125
  {
119
- suffix: "LastName",
126
+ suffix: "Lastname",
120
127
  sql: { sqlType: "VARCHAR", length: 50 },
121
128
  typescript: { type: "string" }
122
129
  },
123
130
  {
124
- suffix: "FirstName",
131
+ suffix: "Firstname",
125
132
  sql: { sqlType: "VARCHAR", length: 50 },
126
133
  typescript: { type: "string" }
127
134
  },
128
135
  {
129
- suffix: "LastNameKana",
136
+ suffix: "KanaLastname",
130
137
  sql: { sqlType: "VARCHAR", length: 100 },
131
138
  typescript: { type: "string" }
132
139
  },
133
140
  {
134
- suffix: "FirstNameKana",
141
+ suffix: "KanaFirstname",
135
142
  sql: { sqlType: "VARCHAR", length: 100 },
136
143
  typescript: { type: "string" }
137
144
  }
138
- ]
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
- },
145
+ ],
146
+ accessors: [
156
147
  {
157
- suffix: "KanaLastname",
158
- sql: { sqlType: "VARCHAR", length: 255, nullable: true },
159
- typescript: { type: "string" }
148
+ name: "full_name",
149
+ fields: ["Lastname", "Firstname"],
150
+ separator: " "
160
151
  },
161
152
  {
162
- suffix: "KanaFirstname",
163
- sql: { sqlType: "VARCHAR", length: 255, nullable: true },
164
- typescript: { type: "string" }
153
+ name: "full_name_kana",
154
+ fields: ["KanaLastname", "KanaFirstname"],
155
+ separator: " "
165
156
  }
166
157
  ]
167
158
  };
@@ -281,7 +272,6 @@ var japanTypesPlugin = {
281
272
  japanPostalCodeType,
282
273
  japanAddressType,
283
274
  japanNameType,
284
- japanPersonNameType,
285
275
  japanBankAccountType
286
276
  ],
287
277
  enums: [bankAccountTypeEnum, prefectureEnum],
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, 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":[]}
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_id (TinyInt 1-47), address1, address2, address3\n * (matching legacy omnify naming convention)\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture ID, and street addresses',\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: 'PrefectureId',\n sql: { sqlType: 'TINYINT', unsigned: true },\n typescript: { type: 'number' },\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 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address3',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_address',\n fields: ['Address1', 'Address2', 'Address3'],\n separator: '',\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\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: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_name',\n fields: ['Lastname', 'Firstname'],\n separator: ' ',\n },\n {\n name: 'full_name_kana',\n fields: ['KanaLastname', 'KanaFirstname'],\n separator: ' ',\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 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.19",
3
+ "version": "0.0.21",
4
4
  "description": "Japan-specific types plugin for omnify-schema",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,7 +19,7 @@
19
19
  "README.md"
20
20
  ],
21
21
  "dependencies": {
22
- "@famgia/omnify-types": "0.0.21"
22
+ "@famgia/omnify-types": "0.0.23"
23
23
  },
24
24
  "scripts": {
25
25
  "build": "tsup",