@famgia/omnify-japan 0.0.23 → 0.0.25

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/README.md CHANGED
@@ -27,13 +27,13 @@ const omnify = createOmnify({
27
27
  name: Customer
28
28
  properties:
29
29
  postal_code:
30
- type: JapanPostalCode
30
+ type: JapanesePostalCode
31
31
  phone:
32
- type: JapanPhone
32
+ type: JapanesePhone
33
33
  prefecture:
34
34
  type: JapanPrefecture
35
35
  address:
36
- type: JapanAddress
36
+ type: JapaneseAddress
37
37
  date:
38
38
  type: JapanDate
39
39
  ```
@@ -42,10 +42,10 @@ properties:
42
42
 
43
43
  | Type | Description | Example |
44
44
  |------|-------------|---------|
45
- | `JapanPostalCode` | 7-digit postal code | `123-4567` |
46
- | `JapanPhone` | Japanese phone number | `03-1234-5678` |
45
+ | `JapanesePostalCode` | 7-digit postal code | `123-4567` |
46
+ | `JapanesePhone` | Japanese phone number | `03-1234-5678` |
47
47
  | `JapanPrefecture` | Prefecture enum (47) | `Tokyo`, `Osaka` |
48
- | `JapanAddress` | Full address format | Structured address |
48
+ | `JapaneseAddress` | Full address format | Structured address |
49
49
  | `JapanDate` | Japanese date format | `2024-01-01` |
50
50
 
51
51
  ## Generated Output
package/dist/index.cjs CHANGED
@@ -75,7 +75,7 @@ var PREFECTURES = [
75
75
  "\u6C96\u7E04\u770C"
76
76
  ];
77
77
  var japanPhoneType = {
78
- name: "JapanPhone",
78
+ name: "JapanesePhone",
79
79
  description: "Japanese phone number (e.g., 090-1234-5678)",
80
80
  sql: {
81
81
  sqlType: "VARCHAR",
@@ -91,7 +91,7 @@ var japanPhoneType = {
91
91
  }
92
92
  };
93
93
  var japanPostalCodeType = {
94
- name: "JapanPostalCode",
94
+ name: "JapanesePostalCode",
95
95
  description: "Japanese postal code (e.g., 123-4567)",
96
96
  sql: {
97
97
  sqlType: "VARCHAR",
@@ -103,7 +103,7 @@ var japanPostalCodeType = {
103
103
  validFields: []
104
104
  };
105
105
  var japanAddressType = {
106
- name: "JapanAddress",
106
+ name: "JapaneseAddress",
107
107
  description: "Full Japanese address with postal code, prefecture ID, and street addresses",
108
108
  compound: true,
109
109
  validFields: [],
@@ -143,7 +143,7 @@ var japanAddressType = {
143
143
  ]
144
144
  };
145
145
  var japanNameType = {
146
- name: "JapanName",
146
+ name: "JapaneseName",
147
147
  description: "Japanese name with kanji and kana variants",
148
148
  compound: true,
149
149
  validFields: [],
@@ -183,7 +183,7 @@ var japanNameType = {
183
183
  ]
184
184
  };
185
185
  var japanBankAccountType = {
186
- name: "JapanBankAccount",
186
+ name: "JapaneseBankAccount",
187
187
  description: "Japanese bank account with bank/branch codes, type, number, and holder name",
188
188
  compound: true,
189
189
  validFields: [],
@@ -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_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":[]}
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 * - JapanesePhone: Japanese phone number format\n * - JapanesePostalCode: Japanese postal code format\n * - JapaneseAddress: 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 * JapanesePhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanesePhone',\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 * JapanesePostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanesePostalCode',\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 * JapaneseAddress 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: 'JapaneseAddress',\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 * JapaneseName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapaneseName',\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 * JapaneseBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapaneseBankAccount',\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.d.cts CHANGED
@@ -6,9 +6,9 @@ export { CustomTypeDefinition, OmnifyPlugin } from '@famgia/omnify-types';
6
6
  * Japan-specific types plugin for omnify-schema
7
7
  *
8
8
  * Provides custom types for Japanese data formats:
9
- * - JapanPhone: Japanese phone number format
10
- * - JapanPostalCode: Japanese postal code format
11
- * - JapanAddress: Compound type for full Japanese address
9
+ * - JapanesePhone: Japanese phone number format
10
+ * - JapanesePostalCode: Japanese postal code format
11
+ * - JapaneseAddress: Compound type for full Japanese address
12
12
  * - Prefecture: Japanese prefecture enum
13
13
  */
14
14
 
package/dist/index.d.ts CHANGED
@@ -6,9 +6,9 @@ export { CustomTypeDefinition, OmnifyPlugin } from '@famgia/omnify-types';
6
6
  * Japan-specific types plugin for omnify-schema
7
7
  *
8
8
  * Provides custom types for Japanese data formats:
9
- * - JapanPhone: Japanese phone number format
10
- * - JapanPostalCode: Japanese postal code format
11
- * - JapanAddress: Compound type for full Japanese address
9
+ * - JapanesePhone: Japanese phone number format
10
+ * - JapanesePostalCode: Japanese postal code format
11
+ * - JapaneseAddress: Compound type for full Japanese address
12
12
  * - Prefecture: Japanese prefecture enum
13
13
  */
14
14
 
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ var PREFECTURES = [
49
49
  "\u6C96\u7E04\u770C"
50
50
  ];
51
51
  var japanPhoneType = {
52
- name: "JapanPhone",
52
+ name: "JapanesePhone",
53
53
  description: "Japanese phone number (e.g., 090-1234-5678)",
54
54
  sql: {
55
55
  sqlType: "VARCHAR",
@@ -65,7 +65,7 @@ var japanPhoneType = {
65
65
  }
66
66
  };
67
67
  var japanPostalCodeType = {
68
- name: "JapanPostalCode",
68
+ name: "JapanesePostalCode",
69
69
  description: "Japanese postal code (e.g., 123-4567)",
70
70
  sql: {
71
71
  sqlType: "VARCHAR",
@@ -77,7 +77,7 @@ var japanPostalCodeType = {
77
77
  validFields: []
78
78
  };
79
79
  var japanAddressType = {
80
- name: "JapanAddress",
80
+ name: "JapaneseAddress",
81
81
  description: "Full Japanese address with postal code, prefecture ID, and street addresses",
82
82
  compound: true,
83
83
  validFields: [],
@@ -117,7 +117,7 @@ var japanAddressType = {
117
117
  ]
118
118
  };
119
119
  var japanNameType = {
120
- name: "JapanName",
120
+ name: "JapaneseName",
121
121
  description: "Japanese name with kanji and kana variants",
122
122
  compound: true,
123
123
  validFields: [],
@@ -157,7 +157,7 @@ var japanNameType = {
157
157
  ]
158
158
  };
159
159
  var japanBankAccountType = {
160
- name: "JapanBankAccount",
160
+ name: "JapaneseBankAccount",
161
161
  description: "Japanese bank account with bank/branch codes, type, number, and holder name",
162
162
  compound: true,
163
163
  validFields: [],
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_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":[]}
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 * - JapanesePhone: Japanese phone number format\n * - JapanesePostalCode: Japanese postal code format\n * - JapaneseAddress: 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 * JapanesePhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanesePhone',\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 * JapanesePostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanesePostalCode',\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 * JapaneseAddress 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: 'JapaneseAddress',\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 * JapaneseName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapaneseName',\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 * JapaneseBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapaneseBankAccount',\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.23",
3
+ "version": "0.0.25",
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.25"
22
+ "@famgia/omnify-types": "0.0.27"
23
23
  },
24
24
  "scripts": {
25
25
  "build": "tsup",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "Schema contribution for @famgia/omnify-japan plugin",
3
3
  "definitions": {
4
- "JapanPhoneProperty": {
4
+ "JapanesePhoneProperty": {
5
5
  "allOf": [
6
6
  { "$ref": "#/definitions/BaseProperty" },
7
7
  {
@@ -9,14 +9,14 @@
9
9
  "required": ["type"],
10
10
  "properties": {
11
11
  "type": {
12
- "const": "JapanPhone",
12
+ "const": "JapanesePhone",
13
13
  "description": "Japanese phone number (e.g., 090-1234-5678)"
14
14
  }
15
15
  }
16
16
  }
17
17
  ]
18
18
  },
19
- "JapanPostalCodeProperty": {
19
+ "JapanesePostalCodeProperty": {
20
20
  "allOf": [
21
21
  { "$ref": "#/definitions/BaseProperty" },
22
22
  {
@@ -24,14 +24,14 @@
24
24
  "required": ["type"],
25
25
  "properties": {
26
26
  "type": {
27
- "const": "JapanPostalCode",
27
+ "const": "JapanesePostalCode",
28
28
  "description": "Japanese postal code (e.g., 123-4567)"
29
29
  }
30
30
  }
31
31
  }
32
32
  ]
33
33
  },
34
- "JapanAddressProperty": {
34
+ "JapaneseAddressProperty": {
35
35
  "allOf": [
36
36
  { "$ref": "#/definitions/BaseProperty" },
37
37
  {
@@ -39,14 +39,14 @@
39
39
  "required": ["type"],
40
40
  "properties": {
41
41
  "type": {
42
- "const": "JapanAddress",
42
+ "const": "JapaneseAddress",
43
43
  "description": "Full Japanese address (expands to postal_code, prefecture, city, address1, address2)"
44
44
  }
45
45
  }
46
46
  }
47
47
  ]
48
48
  },
49
- "JapanNameProperty": {
49
+ "JapaneseNameProperty": {
50
50
  "allOf": [
51
51
  { "$ref": "#/definitions/BaseProperty" },
52
52
  {
@@ -54,7 +54,7 @@
54
54
  "required": ["type"],
55
55
  "properties": {
56
56
  "type": {
57
- "const": "JapanName",
57
+ "const": "JapaneseName",
58
58
  "description": "Japanese name with kanji and kana (expands to last_name, first_name, last_name_kana, first_name_kana)"
59
59
  }
60
60
  }
@@ -76,7 +76,7 @@
76
76
  }
77
77
  ]
78
78
  },
79
- "JapanBankAccountProperty": {
79
+ "JapaneseBankAccountProperty": {
80
80
  "allOf": [
81
81
  { "$ref": "#/definitions/BaseProperty" },
82
82
  {
@@ -84,7 +84,7 @@
84
84
  "required": ["type"],
85
85
  "properties": {
86
86
  "type": {
87
- "const": "JapanBankAccount",
87
+ "const": "JapaneseBankAccount",
88
88
  "description": "Japanese bank account (expands to bank_code, branch_code, account_type, account_number, account_holder)"
89
89
  }
90
90
  }
@@ -93,11 +93,11 @@
93
93
  }
94
94
  },
95
95
  "propertyTypes": [
96
- "JapanPhoneProperty",
97
- "JapanPostalCodeProperty",
98
- "JapanAddressProperty",
99
- "JapanNameProperty",
96
+ "JapanesePhoneProperty",
97
+ "JapanesePostalCodeProperty",
98
+ "JapaneseAddressProperty",
99
+ "JapaneseNameProperty",
100
100
  "JapanPersonNameProperty",
101
- "JapanBankAccountProperty"
101
+ "JapaneseBankAccountProperty"
102
102
  ]
103
103
  }