@famgia/omnify-japan 0.0.19 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +27 -37
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +27 -37
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -104,7 +104,7 @@ var japanPostalCodeType = {
|
|
|
104
104
|
};
|
|
105
105
|
var japanAddressType = {
|
|
106
106
|
name: "JapanAddress",
|
|
107
|
-
description: "Full Japanese address with postal code, prefecture
|
|
107
|
+
description: "Full Japanese address with postal code, prefecture ID, and street addresses",
|
|
108
108
|
compound: true,
|
|
109
109
|
validFields: [],
|
|
110
110
|
expand: [
|
|
@@ -114,25 +114,32 @@ var japanAddressType = {
|
|
|
114
114
|
typescript: { type: "string" }
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
suffix: "
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
suffix: "PrefectureId",
|
|
118
|
+
sql: { sqlType: "TINYINT", unsigned: true },
|
|
119
|
+
typescript: { type: "number" }
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
suffix: "
|
|
123
|
-
sql: { sqlType: "VARCHAR", length:
|
|
122
|
+
suffix: "Address1",
|
|
123
|
+
sql: { sqlType: "VARCHAR", length: 255 },
|
|
124
124
|
typescript: { type: "string" }
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
|
-
suffix: "
|
|
127
|
+
suffix: "Address2",
|
|
128
128
|
sql: { sqlType: "VARCHAR", length: 255 },
|
|
129
129
|
typescript: { type: "string" }
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
|
-
suffix: "
|
|
132
|
+
suffix: "Address3",
|
|
133
133
|
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
134
134
|
typescript: { type: "string" }
|
|
135
135
|
}
|
|
136
|
+
],
|
|
137
|
+
accessors: [
|
|
138
|
+
{
|
|
139
|
+
name: "full_address",
|
|
140
|
+
fields: ["Address1", "Address2", "Address3"],
|
|
141
|
+
separator: ""
|
|
142
|
+
}
|
|
136
143
|
]
|
|
137
144
|
};
|
|
138
145
|
var japanNameType = {
|
|
@@ -142,52 +149,36 @@ var japanNameType = {
|
|
|
142
149
|
validFields: [],
|
|
143
150
|
expand: [
|
|
144
151
|
{
|
|
145
|
-
suffix: "
|
|
152
|
+
suffix: "Lastname",
|
|
146
153
|
sql: { sqlType: "VARCHAR", length: 50 },
|
|
147
154
|
typescript: { type: "string" }
|
|
148
155
|
},
|
|
149
156
|
{
|
|
150
|
-
suffix: "
|
|
157
|
+
suffix: "Firstname",
|
|
151
158
|
sql: { sqlType: "VARCHAR", length: 50 },
|
|
152
159
|
typescript: { type: "string" }
|
|
153
160
|
},
|
|
154
161
|
{
|
|
155
|
-
suffix: "
|
|
162
|
+
suffix: "KanaLastname",
|
|
156
163
|
sql: { sqlType: "VARCHAR", length: 100 },
|
|
157
164
|
typescript: { type: "string" }
|
|
158
165
|
},
|
|
159
166
|
{
|
|
160
|
-
suffix: "
|
|
167
|
+
suffix: "KanaFirstname",
|
|
161
168
|
sql: { sqlType: "VARCHAR", length: 100 },
|
|
162
169
|
typescript: { type: "string" }
|
|
163
170
|
}
|
|
164
|
-
]
|
|
165
|
-
|
|
166
|
-
var japanPersonNameType = {
|
|
167
|
-
name: "JapanPersonName",
|
|
168
|
-
description: "Japanese person name with kanji and kana (legacy naming)",
|
|
169
|
-
compound: true,
|
|
170
|
-
validFields: [],
|
|
171
|
-
expand: [
|
|
172
|
-
{
|
|
173
|
-
suffix: "Lastname",
|
|
174
|
-
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
175
|
-
typescript: { type: "string" }
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
suffix: "Firstname",
|
|
179
|
-
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
180
|
-
typescript: { type: "string" }
|
|
181
|
-
},
|
|
171
|
+
],
|
|
172
|
+
accessors: [
|
|
182
173
|
{
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
174
|
+
name: "full_name",
|
|
175
|
+
fields: ["Lastname", "Firstname"],
|
|
176
|
+
separator: " "
|
|
186
177
|
},
|
|
187
178
|
{
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
179
|
+
name: "full_name_kana",
|
|
180
|
+
fields: ["KanaLastname", "KanaFirstname"],
|
|
181
|
+
separator: " "
|
|
191
182
|
}
|
|
192
183
|
]
|
|
193
184
|
};
|
|
@@ -307,7 +298,6 @@ var japanTypesPlugin = {
|
|
|
307
298
|
japanPostalCodeType,
|
|
308
299
|
japanAddressType,
|
|
309
300
|
japanNameType,
|
|
310
|
-
japanPersonNameType,
|
|
311
301
|
japanBankAccountType
|
|
312
302
|
],
|
|
313
303
|
enums: [bankAccountTypeEnum, prefectureEnum],
|
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 (EnumRef), city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n enumRef: 'Prefecture', // References schemas/Prefecture.yaml enum\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanPersonName compound type definition (legacy naming convention)\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * Column names: {prop}_lastname, {prop}_firstname, {prop}_kana_lastname, {prop}_kana_firstname\n */\nconst japanPersonNameType: CustomTypeDefinition = {\n name: 'JapanPersonName',\n description: 'Japanese person name with kanji and kana (legacy naming)',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanPersonNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition, PluginEnumDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n // Only base fields allowed (no type-specific fields)\n validFields: [],\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n validFields: [],\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture_id (TinyInt 1-47), address1, address2, address3\n * (matching legacy omnify naming convention)\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture ID, and street addresses',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'PrefectureId',\n sql: { sqlType: 'TINYINT', unsigned: true },\n typescript: { type: 'number' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address3',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_address',\n fields: ['Address1', 'Address2', 'Address3'],\n separator: '',\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_name',\n fields: ['Lastname', 'Firstname'],\n separator: ' ',\n },\n {\n name: 'full_name_kana',\n fields: ['KanaLastname', 'KanaFirstname'],\n separator: ' ',\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -78,7 +78,7 @@ var japanPostalCodeType = {
|
|
|
78
78
|
};
|
|
79
79
|
var japanAddressType = {
|
|
80
80
|
name: "JapanAddress",
|
|
81
|
-
description: "Full Japanese address with postal code, prefecture
|
|
81
|
+
description: "Full Japanese address with postal code, prefecture ID, and street addresses",
|
|
82
82
|
compound: true,
|
|
83
83
|
validFields: [],
|
|
84
84
|
expand: [
|
|
@@ -88,25 +88,32 @@ var japanAddressType = {
|
|
|
88
88
|
typescript: { type: "string" }
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
|
-
suffix: "
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
suffix: "PrefectureId",
|
|
92
|
+
sql: { sqlType: "TINYINT", unsigned: true },
|
|
93
|
+
typescript: { type: "number" }
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
|
-
suffix: "
|
|
97
|
-
sql: { sqlType: "VARCHAR", length:
|
|
96
|
+
suffix: "Address1",
|
|
97
|
+
sql: { sqlType: "VARCHAR", length: 255 },
|
|
98
98
|
typescript: { type: "string" }
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
|
-
suffix: "
|
|
101
|
+
suffix: "Address2",
|
|
102
102
|
sql: { sqlType: "VARCHAR", length: 255 },
|
|
103
103
|
typescript: { type: "string" }
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
|
-
suffix: "
|
|
106
|
+
suffix: "Address3",
|
|
107
107
|
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
108
108
|
typescript: { type: "string" }
|
|
109
109
|
}
|
|
110
|
+
],
|
|
111
|
+
accessors: [
|
|
112
|
+
{
|
|
113
|
+
name: "full_address",
|
|
114
|
+
fields: ["Address1", "Address2", "Address3"],
|
|
115
|
+
separator: ""
|
|
116
|
+
}
|
|
110
117
|
]
|
|
111
118
|
};
|
|
112
119
|
var japanNameType = {
|
|
@@ -116,52 +123,36 @@ var japanNameType = {
|
|
|
116
123
|
validFields: [],
|
|
117
124
|
expand: [
|
|
118
125
|
{
|
|
119
|
-
suffix: "
|
|
126
|
+
suffix: "Lastname",
|
|
120
127
|
sql: { sqlType: "VARCHAR", length: 50 },
|
|
121
128
|
typescript: { type: "string" }
|
|
122
129
|
},
|
|
123
130
|
{
|
|
124
|
-
suffix: "
|
|
131
|
+
suffix: "Firstname",
|
|
125
132
|
sql: { sqlType: "VARCHAR", length: 50 },
|
|
126
133
|
typescript: { type: "string" }
|
|
127
134
|
},
|
|
128
135
|
{
|
|
129
|
-
suffix: "
|
|
136
|
+
suffix: "KanaLastname",
|
|
130
137
|
sql: { sqlType: "VARCHAR", length: 100 },
|
|
131
138
|
typescript: { type: "string" }
|
|
132
139
|
},
|
|
133
140
|
{
|
|
134
|
-
suffix: "
|
|
141
|
+
suffix: "KanaFirstname",
|
|
135
142
|
sql: { sqlType: "VARCHAR", length: 100 },
|
|
136
143
|
typescript: { type: "string" }
|
|
137
144
|
}
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
var japanPersonNameType = {
|
|
141
|
-
name: "JapanPersonName",
|
|
142
|
-
description: "Japanese person name with kanji and kana (legacy naming)",
|
|
143
|
-
compound: true,
|
|
144
|
-
validFields: [],
|
|
145
|
-
expand: [
|
|
146
|
-
{
|
|
147
|
-
suffix: "Lastname",
|
|
148
|
-
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
149
|
-
typescript: { type: "string" }
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
suffix: "Firstname",
|
|
153
|
-
sql: { sqlType: "VARCHAR", length: 255, nullable: true },
|
|
154
|
-
typescript: { type: "string" }
|
|
155
|
-
},
|
|
145
|
+
],
|
|
146
|
+
accessors: [
|
|
156
147
|
{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
148
|
+
name: "full_name",
|
|
149
|
+
fields: ["Lastname", "Firstname"],
|
|
150
|
+
separator: " "
|
|
160
151
|
},
|
|
161
152
|
{
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
153
|
+
name: "full_name_kana",
|
|
154
|
+
fields: ["KanaLastname", "KanaFirstname"],
|
|
155
|
+
separator: " "
|
|
165
156
|
}
|
|
166
157
|
]
|
|
167
158
|
};
|
|
@@ -281,7 +272,6 @@ var japanTypesPlugin = {
|
|
|
281
272
|
japanPostalCodeType,
|
|
282
273
|
japanAddressType,
|
|
283
274
|
japanNameType,
|
|
284
|
-
japanPersonNameType,
|
|
285
275
|
japanBankAccountType
|
|
286
276
|
],
|
|
287
277
|
enums: [bankAccountTypeEnum, prefectureEnum],
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition, PluginEnumDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n // Only base fields allowed (no type-specific fields)\n validFields: [],\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n validFields: [],\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture (EnumRef), city, address1, address2\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture, city, and street',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Prefecture',\n enumRef: 'Prefecture', // References schemas/Prefecture.yaml enum\n },\n {\n suffix: 'City',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: first_name, last_name, first_name_kana, last_name_kana\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'LastName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstName',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'LastNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'FirstNameKana',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanPersonName compound type definition (legacy naming convention)\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * Column names: {prop}_lastname, {prop}_firstname, {prop}_kana_lastname, {prop}_kana_firstname\n */\nconst japanPersonNameType: CustomTypeDefinition = {\n name: 'JapanPersonName',\n description: 'Japanese person name with kanji and kana (legacy naming)',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanPersonNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @famgia/omnify-japan\n * Japan-specific types plugin for omnify-schema\n *\n * Provides custom types for Japanese data formats:\n * - JapanPhone: Japanese phone number format\n * - JapanPostalCode: Japanese postal code format\n * - JapanAddress: Compound type for full Japanese address\n * - Prefecture: Japanese prefecture enum\n */\n\nimport type { OmnifyPlugin, CustomTypeDefinition, PluginEnumDefinition } from '@famgia/omnify-types';\n\n/**\n * Japanese prefectures (都道府県)\n */\nexport const PREFECTURES = [\n '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県',\n '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県',\n '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', '岐阜県',\n '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県',\n '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県',\n '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県',\n '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県',\n] as const;\n\nexport type Prefecture = typeof PREFECTURES[number];\n\n/**\n * JapanPhone type definition\n * Format: 090-1234-5678 or 03-1234-5678\n */\nconst japanPhoneType: CustomTypeDefinition = {\n name: 'JapanPhone',\n description: 'Japanese phone number (e.g., 090-1234-5678)',\n sql: {\n sqlType: 'VARCHAR',\n length: 15,\n },\n typescript: {\n type: 'string',\n },\n // Only base fields allowed (no type-specific fields)\n validFields: [],\n validate: (_prop) => {\n // Optional validation logic\n return undefined;\n },\n};\n\n/**\n * JapanPostalCode type definition\n * Format: 123-4567\n */\nconst japanPostalCodeType: CustomTypeDefinition = {\n name: 'JapanPostalCode',\n description: 'Japanese postal code (e.g., 123-4567)',\n sql: {\n sqlType: 'VARCHAR',\n length: 8,\n },\n typescript: {\n type: 'string',\n },\n validFields: [],\n};\n\n/**\n * JapanAddress compound type definition\n * Expands to: postal_code, prefecture_id (TinyInt 1-47), address1, address2, address3\n * (matching legacy omnify naming convention)\n */\nconst japanAddressType: CustomTypeDefinition = {\n name: 'JapanAddress',\n description: 'Full Japanese address with postal code, prefecture ID, and street addresses',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'PostalCode',\n sql: { sqlType: 'VARCHAR', length: 8 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'PrefectureId',\n sql: { sqlType: 'TINYINT', unsigned: true },\n typescript: { type: 'number' },\n },\n {\n suffix: 'Address1',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address2',\n sql: { sqlType: 'VARCHAR', length: 255 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Address3',\n sql: { sqlType: 'VARCHAR', length: 255, nullable: true },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_address',\n fields: ['Address1', 'Address2', 'Address3'],\n separator: '',\n },\n ],\n};\n\n/**\n * JapanName compound type definition\n * Expands to: lastname, firstname, kana_lastname, kana_firstname\n * (matching legacy omnify naming convention)\n */\nconst japanNameType: CustomTypeDefinition = {\n name: 'JapanName',\n description: 'Japanese name with kanji and kana variants',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'Lastname',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'Firstname',\n sql: { sqlType: 'VARCHAR', length: 50 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaLastname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'KanaFirstname',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n accessors: [\n {\n name: 'full_name',\n fields: ['Lastname', 'Firstname'],\n separator: ' ',\n },\n {\n name: 'full_name_kana',\n fields: ['KanaLastname', 'KanaFirstname'],\n separator: ' ',\n },\n ],\n};\n\n/**\n * JapanBankAccount compound type definition\n * Expands to: bank_code, branch_code, account_type, account_number, account_holder\n */\nconst japanBankAccountType: CustomTypeDefinition = {\n name: 'JapanBankAccount',\n description: 'Japanese bank account with bank/branch codes, type, number, and holder name',\n compound: true,\n validFields: [],\n expand: [\n {\n suffix: 'BankCode',\n sql: { sqlType: 'VARCHAR', length: 4 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'BranchCode',\n sql: { sqlType: 'VARCHAR', length: 3 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountType',\n enumRef: 'BankAccountType', // 普通/当座/貯蓄\n },\n {\n suffix: 'AccountNumber',\n sql: { sqlType: 'VARCHAR', length: 7 },\n typescript: { type: 'string' },\n },\n {\n suffix: 'AccountHolder',\n sql: { sqlType: 'VARCHAR', length: 100 },\n typescript: { type: 'string' },\n },\n ],\n};\n\n/**\n * BankAccountType enum definition - Japanese bank account types\n */\nconst bankAccountTypeEnum: PluginEnumDefinition = {\n name: 'BankAccountType',\n displayName: '口座種別',\n description: 'Japanese bank account types (Zengin system codes)',\n values: [\n { value: '1', label: '普通' }, // Ordinary savings\n { value: '2', label: '当座' }, // Checking\n { value: '4', label: '貯蓄' }, // Savings\n ],\n};\n\n/**\n * Prefecture enum definition - all 47 Japanese prefectures\n * Values are JIS X 0401 prefecture codes (1-47)\n * Areas: hokkaido, tohoku, kanto, chubu, kinki, chugoku, shikoku, kyushu\n */\nconst prefectureEnum: PluginEnumDefinition = {\n name: 'Prefecture',\n displayName: '都道府県',\n description: 'Japanese prefectures (JIS X 0401 codes)',\n values: [\n // 北海道地方\n { value: '1', label: '北海道', extra: { area: 'hokkaido' } },\n // 東北地方\n { value: '2', label: '青森県', extra: { area: 'tohoku' } },\n { value: '3', label: '岩手県', extra: { area: 'tohoku' } },\n { value: '4', label: '宮城県', extra: { area: 'tohoku' } },\n { value: '5', label: '秋田県', extra: { area: 'tohoku' } },\n { value: '6', label: '山形県', extra: { area: 'tohoku' } },\n { value: '7', label: '福島県', extra: { area: 'tohoku' } },\n // 関東地方\n { value: '8', label: '茨城県', extra: { area: 'kanto' } },\n { value: '9', label: '栃木県', extra: { area: 'kanto' } },\n { value: '10', label: '群馬県', extra: { area: 'kanto' } },\n { value: '11', label: '埼玉県', extra: { area: 'kanto' } },\n { value: '12', label: '千葉県', extra: { area: 'kanto' } },\n { value: '13', label: '東京都', extra: { area: 'kanto' } },\n { value: '14', label: '神奈川県', extra: { area: 'kanto' } },\n // 中部地方\n { value: '15', label: '新潟県', extra: { area: 'chubu' } },\n { value: '16', label: '富山県', extra: { area: 'chubu' } },\n { value: '17', label: '石川県', extra: { area: 'chubu' } },\n { value: '18', label: '福井県', extra: { area: 'chubu' } },\n { value: '19', label: '山梨県', extra: { area: 'chubu' } },\n { value: '20', label: '長野県', extra: { area: 'chubu' } },\n { value: '21', label: '岐阜県', extra: { area: 'chubu' } },\n { value: '22', label: '静岡県', extra: { area: 'chubu' } },\n { value: '23', label: '愛知県', extra: { area: 'chubu' } },\n // 近畿地方\n { value: '24', label: '三重県', extra: { area: 'kinki' } },\n { value: '25', label: '滋賀県', extra: { area: 'kinki' } },\n { value: '26', label: '京都府', extra: { area: 'kinki' } },\n { value: '27', label: '大阪府', extra: { area: 'kinki' } },\n { value: '28', label: '兵庫県', extra: { area: 'kinki' } },\n { value: '29', label: '奈良県', extra: { area: 'kinki' } },\n { value: '30', label: '和歌山県', extra: { area: 'kinki' } },\n // 中国地方\n { value: '31', label: '鳥取県', extra: { area: 'chugoku' } },\n { value: '32', label: '島根県', extra: { area: 'chugoku' } },\n { value: '33', label: '岡山県', extra: { area: 'chugoku' } },\n { value: '34', label: '広島県', extra: { area: 'chugoku' } },\n { value: '35', label: '山口県', extra: { area: 'chugoku' } },\n // 四国地方\n { value: '36', label: '徳島県', extra: { area: 'shikoku' } },\n { value: '37', label: '香川県', extra: { area: 'shikoku' } },\n { value: '38', label: '愛媛県', extra: { area: 'shikoku' } },\n { value: '39', label: '高知県', extra: { area: 'shikoku' } },\n // 九州・沖縄地方\n { value: '40', label: '福岡県', extra: { area: 'kyushu' } },\n { value: '41', label: '佐賀県', extra: { area: 'kyushu' } },\n { value: '42', label: '長崎県', extra: { area: 'kyushu' } },\n { value: '43', label: '熊本県', extra: { area: 'kyushu' } },\n { value: '44', label: '大分県', extra: { area: 'kyushu' } },\n { value: '45', label: '宮崎県', extra: { area: 'kyushu' } },\n { value: '46', label: '鹿児島県', extra: { area: 'kyushu' } },\n { value: '47', label: '沖縄県', extra: { area: 'kyushu' } },\n ],\n};\n\n/**\n * @famgia/omnify-japan plugin definition\n */\nexport const japanTypesPlugin: OmnifyPlugin = {\n name: '@famgia/omnify-japan',\n version: '0.0.1',\n types: [\n japanPhoneType,\n japanPostalCodeType,\n japanAddressType,\n japanNameType,\n japanBankAccountType,\n ],\n enums: [bankAccountTypeEnum, prefectureEnum],\n setup: (context) => {\n context.logger.debug('Japan types plugin loaded');\n },\n};\n\n/**\n * Default export for easy importing\n */\nexport default japanTypesPlugin;\n\n/**\n * Re-export types for type-safe usage\n */\nexport type { OmnifyPlugin, CustomTypeDefinition } from '@famgia/omnify-types';\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@famgia/omnify-japan",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.21",
|
|
4
4
|
"description": "Japan-specific types plugin for omnify-schema",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@famgia/omnify-types": "0.0.
|
|
22
|
+
"@famgia/omnify-types": "0.0.23"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsup",
|