@famgia/omnify-japan 0.0.23 → 0.0.24
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 +6 -6
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/schemas/schema-contribution.json +15 -15
package/README.md
CHANGED
|
@@ -27,13 +27,13 @@ const omnify = createOmnify({
|
|
|
27
27
|
name: Customer
|
|
28
28
|
properties:
|
|
29
29
|
postal_code:
|
|
30
|
-
type:
|
|
30
|
+
type: JapanesePostalCode
|
|
31
31
|
phone:
|
|
32
|
-
type:
|
|
32
|
+
type: JapanesePhone
|
|
33
33
|
prefecture:
|
|
34
34
|
type: JapanPrefecture
|
|
35
35
|
address:
|
|
36
|
-
type:
|
|
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
|
-
| `
|
|
46
|
-
| `
|
|
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
|
-
| `
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: [],
|
package/dist/index.cjs.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/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
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
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
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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.
|
|
3
|
+
"version": "0.0.24",
|
|
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.
|
|
22
|
+
"@famgia/omnify-types": "0.0.26"
|
|
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
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
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": "
|
|
27
|
+
"const": "JapanesePostalCode",
|
|
28
28
|
"description": "Japanese postal code (e.g., 123-4567)"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
]
|
|
33
33
|
},
|
|
34
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
96
|
+
"JapanesePhoneProperty",
|
|
97
|
+
"JapanesePostalCodeProperty",
|
|
98
|
+
"JapaneseAddressProperty",
|
|
99
|
+
"JapaneseNameProperty",
|
|
100
100
|
"JapanPersonNameProperty",
|
|
101
|
-
"
|
|
101
|
+
"JapaneseBankAccountProperty"
|
|
102
102
|
]
|
|
103
103
|
}
|