@wildo-ai/zod-decorators 1.1.4 → 1.1.5
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/esm/currencies.shared.schemas.d.ts.map +1 -1
- package/dist/esm/currencies.shared.schemas.js.map +1 -1
- package/dist/esm/files/agent-file-formats.d.ts +51 -37
- package/dist/esm/files/agent-file-formats.d.ts.map +1 -1
- package/dist/esm/files/agent-file-formats.js +54 -47
- package/dist/esm/files/agent-file-formats.js.map +1 -1
- package/dist/esm/files/extension-nature-map.d.ts.map +1 -1
- package/dist/esm/files/mime-registry.d.ts.map +1 -1
- package/dist/esm/files/unified-registry.d.ts +2 -2
- package/dist/esm/files/unified-registry.d.ts.map +1 -1
- package/dist/esm/files/unified-registry.js +1 -1
- package/dist/esm/files/unified-registry.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/decorated-test-schemas.d.ts.map +1 -1
- package/dist/esm/testing.d.ts +11 -0
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js +11 -0
- package/dist/esm/testing.js.map +1 -1
- package/dist/esm/zod-address.d.ts +146 -0
- package/dist/esm/zod-address.d.ts.map +1 -0
- package/dist/esm/zod-address.js +176 -0
- package/dist/esm/zod-address.js.map +1 -0
- package/dist/esm/zod-bigdecimal.d.ts.map +1 -1
- package/dist/esm/zod-code.d.ts +2 -0
- package/dist/esm/zod-code.d.ts.map +1 -1
- package/dist/esm/zod-code.js.map +1 -1
- package/dist/esm/zod-color.d.ts.map +1 -1
- package/dist/esm/zod-decorators.types.d.ts +265 -19
- package/dist/esm/zod-decorators.types.d.ts.map +1 -1
- package/dist/esm/zod-decorators.types.js +142 -0
- package/dist/esm/zod-decorators.types.js.map +1 -1
- package/dist/esm/zod-duration.d.ts +2 -0
- package/dist/esm/zod-duration.d.ts.map +1 -1
- package/dist/esm/zod-duration.js.map +1 -1
- package/dist/esm/zod-file.d.ts +70 -4
- package/dist/esm/zod-file.d.ts.map +1 -1
- package/dist/esm/zod-file.js +76 -61
- package/dist/esm/zod-file.js.map +1 -1
- package/dist/esm/zod-money.d.ts +2 -0
- package/dist/esm/zod-money.d.ts.map +1 -1
- package/dist/esm/zod-money.js.map +1 -1
- package/dist/esm/zod-phone.d.ts +8 -0
- package/dist/esm/zod-phone.d.ts.map +1 -1
- package/dist/esm/zod-phone.js +6 -1
- package/dist/esm/zod-phone.js.map +1 -1
- package/dist/esm/zod-range.d.ts.map +1 -1
- package/dist/esm/zod-utils.shared.d.ts +311 -9
- package/dist/esm/zod-utils.shared.d.ts.map +1 -1
- package/dist/esm/zod-utils.shared.js +898 -86
- package/dist/esm/zod-utils.shared.js.map +1 -1
- package/dist/esm/zod-versioned.d.ts.map +1 -1
- package/dist/esm/zod-versioned.js.map +1 -1
- package/dist/esm/zod.module-override.d.ts +27 -1
- package/dist/esm/zod.module-override.d.ts.map +1 -1
- package/dist/esm/zod.module-override.js +52 -7
- package/dist/esm/zod.module-override.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -7
- package/dist/esm/.native.tsbuildinfo +0 -1
- package/dist/esm/companion-exports.d.ts +0 -8
- package/dist/esm/companion-exports.d.ts.map +0 -1
- package/dist/esm/companion-exports.js +0 -8
- package/dist/esm/companion-exports.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencies.shared.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"currencies.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/currencies.shared.schemas.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,oBAAY,iBAAiB;IAEzB,GAAG,QAAQ,CAAE,YAAY;IACzB,GAAG,QAAQ,CAAE,OAAO;IACpB,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,cAAc;IAC3B,GAAG,QAAQ,CAAE,eAAe;IAG5B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,qBAAqB;IAGlC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,8CAA8C;IAC3D,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,0CAA0C;IACvD,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,mBAAmB;IAGhC,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,YAAY;IACzB,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,cAAc;IAC3B,GAAG,QAAQ,CAAE,yBAAyB;IACtC,GAAG,QAAQ,CAAE,cAAc;IAC3B,GAAG,QAAQ,CAAE,yBAAyB;IACtC,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,kBAAkB;IAG/B,GAAG,QAAQ,CAAE,aAAa;IAC1B,GAAG,QAAQ,CAAE,cAAc;IAC3B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,aAAa;IAC1B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,cAAc;IAC3B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,cAAc;IAG3B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAG9B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,yBAAyB;IACtC,GAAG,QAAQ,CAAE,4BAA4B;IACzC,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,uBAAuB;IACpC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,uBAAuB;IACpC,GAAG,QAAQ,CAAE,sBAAsB;IACnC,GAAG,QAAQ,CAAE,8BAA8B;IAC3C,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,kBAAkB;IAG/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,8BAA8B;IAC3C,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,oBAAoB;IAGjC,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,6BAA6B;IAC1C,GAAG,QAAQ,CAAE,wBAAwB;IACrC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,aAAa;IAC1B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,wBAAwB;IACrC,GAAG,QAAQ,CAAE,mBAAmB;IAGhC,GAAG,QAAQ,CAAE,YAAY;IAGzB,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,UAAU;IACvB,GAAG,QAAQ,CAAE,iBAAiB;IAC9B,GAAG,QAAQ,CAAE,mBAAmB;IAChC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,oBAAoB;IACjC,GAAG,QAAQ,CAAE,kBAAkB;IAC/B,GAAG,QAAQ,CAAE,qBAAqB;IAClC,GAAG,QAAQ,CAAE,sBAAsB;IACnC,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,gBAAgB;IAC7B,GAAG,QAAQ,CAAE,oBAAoB;IAGjC,GAAG,QAAQ,CAAE,+BAA+B;IAC5C,GAAG,QAAQ,CAAE,cAAc;IAG3B,GAAG,QAAQ,CAAE,UAAU;IACvB,GAAG,QAAQ,CAAE,WAAW;IAGxB,IAAI,SAAS,CAAE,SAAS;IACxB,IAAI,SAAS,CAAE,WAAW;IAC1B,GAAG,QAAQ,CAAE,MAAM;IACnB,KAAK,UAAU,CAAE,aAAa;IAC9B,IAAI,SAAS,CAAE,cAAc;IAG7B,GAAG,QAAQ,CAAE,eAAe;IAC5B,GAAG,QAAQ,CAAE,SAAS;IACtB,GAAG,QAAQ,CAAE,SAAS;IACtB,GAAG,QAAQ,CAAE,OAAO;IACpB,GAAG,QAAQ,CAAE,UAAU;IACvB,IAAI,SAAS,CAAE,YAAY;IAC3B,GAAG,QAAQ,CAAE,MAAM;IACnB,IAAI,SAAS,CAAE,SAAS;IACxB,GAAG,QAAQ,CAAE,UAAU;IACvB,GAAG,QAAQ,CAAE,WAAW;IACxB,GAAG,QAAQ,CAAE,UAAU;IAGvB,IAAI,SAAS,CAAE,WAAW;IAC1B,GAAG,QAAQ,CAAE,eAAe;IAC5B,IAAI,SAAS,CAAE,YAAY;IAC3B,GAAG,QAAQ,CAAE,WAAW;IACxB,GAAG,QAAQ,CAAE,SAAS;IACtB,GAAG,QAAQ,CAAE,UAAU;IACvB,IAAI,SAAS;CACd;AAEH,kGAAkG;AAClG,eAAO,MAAM,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,iBAAiB,CACb,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAGxF,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAiF1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED;;;GAGG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencies.shared.schemas.js","sourceRoot":"","sources":["../../src/currencies.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["\n/**\n * Currencies Shared Schemas\n * \n * Common currency enums for the SaaS platform\n * Based on ISO 4217 standard (2025-05-12)\n */\n\nimport { z } from 'zod';\n\n/**\n * Available Currencies Enum\n * \n * Most commonly used currencies worldwide (ISO 4217 codes)\n */\nexport enum AvailableCurrency {\n // Major Currencies\n USD = 'USD', // US Dollar\n EUR = 'EUR', // Euro\n GBP = 'GBP', // British Pound\n JPY = 'JPY', // Japanese Yen\n CAD = 'CAD', // Canadian Dollar\n AUD = 'AUD', // Australian Dollar\n CHF = 'CHF', // Swiss Franc\n CNY = 'CNY', // Chinese Yuan\n \n // Other Major Currencies\n INR = 'INR', // Indian Rupee\n BRL = 'BRL', // Brazilian Real\n MXN = 'MXN', // Mexican Peso\n KRW = 'KRW', // South Korean Won\n RUB = 'RUB', // Russian Ruble\n ZAR = 'ZAR', // South African Rand\n \n // European Currencies (Non-Euro)\n SEK = 'SEK', // Swedish Krona\n NOK = 'NOK', // Norwegian Krone\n DKK = 'DKK', // Danish Krone\n PLN = 'PLN', // Polish Zloty\n CZK = 'CZK', // Czech Koruna\n HUF = 'HUF', // Hungarian Forint\n RON = 'RON', // Romanian Leu\n BGN = 'BGN', // Bulgarian Lev\n HRK = 'HRK', // Croatian Kuna (historical, replaced by EUR)\n ISK = 'ISK', // Icelandic Krona\n UAH = 'UAH', // Ukrainian Hryvnia\n BYN = 'BYN', // Belarusian Ruble\n RSD = 'RSD', // Serbian Dinar\n BAM = 'BAM', // Bosnia and Herzegovina Convertible Mark\n MDL = 'MDL', // Moldovan Leu\n ALL = 'ALL', // Albanian Lek\n MKD = 'MKD', // Macedonian Denar\n \n // Asia-Pacific\n SGD = 'SGD', // Singapore Dollar\n HKD = 'HKD', // Hong Kong Dollar\n TWD = 'TWD', // New Taiwan Dollar\n THB = 'THB', // Thai Baht\n MYR = 'MYR', // Malaysian Ringgit\n IDR = 'IDR', // Indonesian Rupiah\n PHP = 'PHP', // Philippine Peso\n VND = 'VND', // Vietnamese Dong\n NZD = 'NZD', // New Zealand Dollar\n BND = 'BND', // Brunei Dollar\n FJD = 'FJD', // Fiji Dollar\n PGK = 'PGK', // Papua New Guinean Kina\n WST = 'WST', // Samoan Tala\n SBD = 'SBD', // Solomon Islands Dollar\n VUV = 'VUV', // Vanuatu Vatu\n TOP = 'TOP', // Tongan Pa'anga\n MVR = 'MVR', // Maldivian Rufiyaa\n BTN = 'BTN', // Bhutanese Ngultrum\n MOP = 'MOP', // Macanese Pataca\n \n // Middle East\n AED = 'AED', // UAE Dirham\n SAR = 'SAR', // Saudi Riyal\n QAR = 'QAR', // Qatari Riyal\n KWD = 'KWD', // Kuwaiti Dinar\n BHD = 'BHD', // Bahraini Dinar\n OMR = 'OMR', // Omani Rial\n JOD = 'JOD', // Jordanian Dinar\n ILS = 'ILS', // Israeli Shekel\n TRY = 'TRY', // Turkish Lira\n IQD = 'IQD', // Iraqi Dinar\n IRR = 'IRR', // Iranian Rial\n LBP = 'LBP', // Lebanese Pound\n SYP = 'SYP', // Syrian Pound\n YER = 'YER', // Yemeni Rial\n \n // North Africa\n EGP = 'EGP', // Egyptian Pound\n MAD = 'MAD', // Moroccan Dirham\n TND = 'TND', // Tunisian Dinar\n DZD = 'DZD', // Algerian Dinar\n LYD = 'LYD', // Libyan Dinar\n SDG = 'SDG', // Sudanese Pound\n \n // Sub-Saharan Africa\n NGN = 'NGN', // Nigerian Naira\n KES = 'KES', // Kenyan Shilling\n GHS = 'GHS', // Ghanaian Cedi\n XOF = 'XOF', // West African CFA Franc\n XAF = 'XAF', // Central African CFA Franc\n ETB = 'ETB', // Ethiopian Birr\n UGX = 'UGX', // Ugandan Shilling\n TZS = 'TZS', // Tanzanian Shilling\n RWF = 'RWF', // Rwandan Franc\n MWK = 'MWK', // Malawian Kwacha\n ZMW = 'ZMW', // Zambian Kwacha\n BWP = 'BWP', // Botswana Pula\n NAD = 'NAD', // Namibian Dollar\n SZL = 'SZL', // Swazi Lilangeni\n LSL = 'LSL', // Lesotho Loti\n MZN = 'MZN', // Mozambican Metical\n AOA = 'AOA', // Angolan Kwanza\n MUR = 'MUR', // Mauritian Rupee\n SCR = 'SCR', // Seychelles Rupee\n MGA = 'MGA', // Malagasy Ariary\n SSP = 'SSP', // South Sudanese Pound\n SOS = 'SOS', // Somali Shilling\n DJF = 'DJF', // Djibouti Franc\n KMF = 'KMF', // Comorian Franc\n CVE = 'CVE', // Cabo Verde Escudo\n ERN = 'ERN', // Eritrean Nakfa\n GMD = 'GMD', // Gambian Dalasi\n GNF = 'GNF', // Guinean Franc\n LRD = 'LRD', // Liberian Dollar\n SLE = 'SLE', // Sierra Leonean Leone\n MRU = 'MRU', // Mauritanian Ouguiya\n STN = 'STN', // São Tomé and Príncipe Dobra\n BIF = 'BIF', // Burundi Franc\n CDF = 'CDF', // Congolese Franc\n \n // South America\n ARS = 'ARS', // Argentine Peso\n CLP = 'CLP', // Chilean Peso\n COP = 'COP', // Colombian Peso\n PEN = 'PEN', // Peruvian Sol\n UYU = 'UYU', // Uruguayan Peso\n PYG = 'PYG', // Paraguayan Guarani\n BOB = 'BOB', // Bolivian Boliviano\n VES = 'VES', // Venezuelan Bolívar Soberano\n GYD = 'GYD', // Guyanese Dollar\n SRD = 'SRD', // Surinamese Dollar\n \n // Central America & Caribbean\n CRC = 'CRC', // Costa Rican Colon\n GTQ = 'GTQ', // Guatemalan Quetzal\n HNL = 'HNL', // Honduran Lempira\n NIO = 'NIO', // Nicaraguan Cordoba\n PAB = 'PAB', // Panamanian Balboa\n DOP = 'DOP', // Dominican Peso\n JMD = 'JMD', // Jamaican Dollar\n TTD = 'TTD', // Trinidad and Tobago Dollar\n XCD = 'XCD', // East Caribbean Dollar\n BBD = 'BBD', // Barbados Dollar\n BSD = 'BSD', // Bahamian Dollar\n HTG = 'HTG', // Haitian Gourde\n BZD = 'BZD', // Belize Dollar\n CUP = 'CUP', // Cuban Peso\n AWG = 'AWG', // Aruban Florin\n KYD = 'KYD', // Cayman Islands Dollar\n BMD = 'BMD', // Bermudian Dollar\n \n // Pacific Territories\n XPF = 'XPF', // CFP Franc\n \n // Central Asia\n AFN = 'AFN', // Afghan Afghani\n PKR = 'PKR', // Pakistani Rupee\n BDT = 'BDT', // Bangladeshi Taka\n LKR = 'LKR', // Sri Lankan Rupee\n NPR = 'NPR', // Nepalese Rupee\n MMK = 'MMK', // Myanmar Kyat\n LAK = 'LAK', // Lao Kip\n KHR = 'KHR', // Cambodian Riel\n MNT = 'MNT', // Mongolian Tugrik\n UZS = 'UZS', // Uzbekistani Som\n KZT = 'KZT', // Kazakhstani Tenge\n KGS = 'KGS', // Kyrgyzstani Som\n TJS = 'TJS', // Tajikistani Somoni\n TMT = 'TMT', // Turkmenistani Manat\n GEL = 'GEL', // Georgian Lari\n AMD = 'AMD', // Armenian Dram\n AZN = 'AZN', // Azerbaijani Manat\n \n // Special\n XDR = 'XDR', // Special Drawing Rights (IMF)\n XXX = 'XXX', // No currency\n \n // Cryptocurrencies - Core Majors\n BTC = 'BTC', // Bitcoin\n ETH = 'ETH', // Ethereum\n \n // Cryptocurrencies - Major Stablecoins\n USDT = 'USDT', // Tether\n USDC = 'USDC', // USD Coin\n DAI = 'DAI', // Dai\n PYUSD = 'PYUSD', // PayPal USD\n USDe = 'USDe', // Ethena USDe\n \n // Cryptocurrencies - Large L1/L0 Networks\n BNB = 'BNB', // Binance Coin\n XRP = 'XRP', // Ripple\n SOL = 'SOL', // Solana\n TRX = 'TRX', // TRON\n ADA = 'ADA', // Cardano\n AVAX = 'AVAX', // Avalanche\n SUI = 'SUI', // Sui\n HBAR = 'HBAR', // Hedera\n TON = 'TON', // Toncoin\n DOT = 'DOT', // Polkadot\n XLM = 'XLM', // Stellar\n \n // Cryptocurrencies - Other Big Names\n DOGE = 'DOGE', // Dogecoin\n BCH = 'BCH', // Bitcoin Cash\n LINK = 'LINK', // Chainlink\n LTC = 'LTC', // Litecoin\n XMR = 'XMR', // Monero\n UNI = 'UNI', // Uniswap\n AAVE = 'AAVE', // Aave\n }\n \n/** Canonical Zod schema for AvailableCurrency. Clone via `z_clone()` for independent metadata. */\nexport const AvailableCurrencySchema: z.ZodEnum<typeof AvailableCurrency> =\n z.enum(AvailableCurrency).systemEnum('AvailableCurrency');\n\n/**\n * Currency Schema allowing both common currencies and any valid ISO 4217 code\n */\nexport const CurrencySchema: z.ZodUnion<[z.ZodEnum<typeof AvailableCurrency>, z.ZodString]> = z.union([\n z.enum(AvailableCurrency),\n z.string().length(3).regex(/^[A-Z]{3}$/, { error: 'Invalid currency code format' }) // Any valid ISO 4217 code\n]);\n\nexport type CurrencyType = z.infer<typeof CurrencySchema>; \n\n/**\n * Currencies whose smallest unit is NOT a hundredth — the ISO 4217 exponent exceptions, plus the\n * cryptocurrency conventions.\n *\n * A currency's minor unit is what a payment provider's amount field means: Stripe's `unit_amount` is\n * in cents for USD, in whole yen for JPY, and in thousandths for KWD. Assuming 2 everywhere is not a\n * display bug — it charges and records money at the wrong magnitude, by a factor of 100 or 1000.\n *\n * Only exceptions are listed; every other member of {@link AvailableCurrency} is 2. That is\n * deliberate: an exhaustive 150-row table would have to be re-checked in full whenever a currency is\n * added, while this one is checked against the ISO exponent list, which is short and stable.\n *\n * **The crypto rows are a different kind of claim and are marked as such.** ISO 4217 does not govern\n * them; these are protocol conventions (a bitcoin has 8 decimal places because the protocol says so).\n * They are correct for arithmetic within Wildo — converting a stored amount to a display value — and\n * they are NOT a minor unit any fiat billing provider accepts. A boundary that hands one of these to\n * a provider must refuse rather than convert; see `convertMoneyToCurrencyMinorUnit`.\n */\nconst CURRENCY_MINOR_UNIT_EXCEPTIONS: Partial<Record<AvailableCurrency, number>> = {\n // ── ISO 4217 exponent 0 — no minor unit; the amount IS whole units ──\n [AvailableCurrency.BIF]: 0,\n [AvailableCurrency.CLP]: 0,\n [AvailableCurrency.DJF]: 0,\n [AvailableCurrency.GNF]: 0,\n [AvailableCurrency.ISK]: 0,\n [AvailableCurrency.JPY]: 0,\n [AvailableCurrency.KMF]: 0,\n [AvailableCurrency.KRW]: 0,\n [AvailableCurrency.PYG]: 0,\n [AvailableCurrency.RWF]: 0,\n [AvailableCurrency.UGX]: 0,\n [AvailableCurrency.VND]: 0,\n [AvailableCurrency.VUV]: 0,\n [AvailableCurrency.XAF]: 0,\n [AvailableCurrency.XOF]: 0,\n [AvailableCurrency.XPF]: 0,\n\n // ── ISO 4217 exponent 3 — thousandths (the Gulf and Maghreb dinars) ──\n [AvailableCurrency.BHD]: 3,\n [AvailableCurrency.IQD]: 3,\n [AvailableCurrency.JOD]: 3,\n [AvailableCurrency.KWD]: 3,\n [AvailableCurrency.LYD]: 3,\n [AvailableCurrency.OMR]: 3,\n [AvailableCurrency.TND]: 3,\n\n // ── Cryptocurrency protocol conventions — NOT ISO, NOT a provider minor unit ──\n [AvailableCurrency.BTC]: 8,\n [AvailableCurrency.BCH]: 8,\n [AvailableCurrency.LTC]: 8,\n [AvailableCurrency.ETH]: 18,\n [AvailableCurrency.DAI]: 18,\n [AvailableCurrency.BNB]: 18,\n [AvailableCurrency.UNI]: 18,\n [AvailableCurrency.XMR]: 12,\n [AvailableCurrency.DOT]: 10,\n [AvailableCurrency.SOL]: 9,\n [AvailableCurrency.SUI]: 9,\n [AvailableCurrency.TON]: 9,\n [AvailableCurrency.XLM]: 7,\n [AvailableCurrency.XRP]: 6,\n [AvailableCurrency.TRX]: 6,\n [AvailableCurrency.ADA]: 6,\n};\n\n/**\n * Currencies that have NO minor unit at all, and for which an amount scale is therefore not a\n * question with an answer.\n *\n * `XDR` is the IMF's Special Drawing Right, a basket unit rather than a spendable currency; `XXX` is\n * ISO 4217's explicit \"no currency\". Both are legitimately in the vocabulary — a value can be\n * DENOMINATED in them — and neither can be handed to a payment provider. They resolve to `undefined`\n * rather than to a number, so a boundary refuses instead of inventing a scale.\n */\nconst CURRENCIES_WITHOUT_MINOR_UNIT: ReadonlySet<string> = new Set<string>([\n AvailableCurrency.XDR,\n AvailableCurrency.XXX,\n]);\n\n/**\n * The number of decimal places in a currency's smallest unit — what a payment provider's amount\n * field is denominated in.\n *\n * @returns the exponent, or `undefined` when the currency has no minor unit (`XDR`, `XXX`) or is not\n * a currency this vocabulary knows.\n *\n * **`undefined` rather than a default of 2, and that is the whole point of this function.** Assuming\n * 2 for an unknown code is exactly the defect it exists to remove: it produces a plausible number and\n * charges the wrong amount, silently. A caller that cannot resolve a scale must refuse.\n *\n * `CurrencySchema` admits any three-letter uppercase code, not just the enum, so an application may\n * legitimately hold a currency this function does not know. That is not an error in the application —\n * it is a currency Wildo cannot convert for a provider, and saying so is the honest answer.\n */\nexport function currencyMinorUnitDecimals(currency: string): number | undefined {\n if (CURRENCIES_WITHOUT_MINOR_UNIT.has(currency)) return undefined;\n const exception = CURRENCY_MINOR_UNIT_EXCEPTIONS[currency as AvailableCurrency];\n if (exception !== undefined) return exception;\n // Known currency with no exception: the ISO default.\n return (Object.values(AvailableCurrency) as string[]).includes(currency) ? 2 : undefined;\n}\n\n/**\n * Currency type filter for z_money() `currenciesAllowed` option.\n * Replaces the old showCrypto/majorOnly/fiatOnly boolean flags with a composable enum array.\n */\nexport enum CurrencyAllowed {\n FIAT = 'FIAT',\n FIAT_MAJOR = 'FIAT_MAJOR',\n CRYPTO = 'CRYPTO',\n CRYPTO_MAJOR = 'CRYPTO_MAJOR',\n}\n"]}
|
|
1
|
+
{"version":3,"file":"currencies.shared.schemas.js","sourceRoot":"","sources":["../../../src/currencies.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["\n/**\n * Currencies Shared Schemas\n * \n * Common currency enums for the SaaS platform\n * Based on ISO 4217 standard (2025-05-12)\n */\n\nimport { z } from 'zod';\n\n/**\n * Available Currencies Enum\n * \n * Most commonly used currencies worldwide (ISO 4217 codes)\n */\nexport enum AvailableCurrency {\n // Major Currencies\n USD = 'USD', // US Dollar\n EUR = 'EUR', // Euro\n GBP = 'GBP', // British Pound\n JPY = 'JPY', // Japanese Yen\n CAD = 'CAD', // Canadian Dollar\n AUD = 'AUD', // Australian Dollar\n CHF = 'CHF', // Swiss Franc\n CNY = 'CNY', // Chinese Yuan\n \n // Other Major Currencies\n INR = 'INR', // Indian Rupee\n BRL = 'BRL', // Brazilian Real\n MXN = 'MXN', // Mexican Peso\n KRW = 'KRW', // South Korean Won\n RUB = 'RUB', // Russian Ruble\n ZAR = 'ZAR', // South African Rand\n \n // European Currencies (Non-Euro)\n SEK = 'SEK', // Swedish Krona\n NOK = 'NOK', // Norwegian Krone\n DKK = 'DKK', // Danish Krone\n PLN = 'PLN', // Polish Zloty\n CZK = 'CZK', // Czech Koruna\n HUF = 'HUF', // Hungarian Forint\n RON = 'RON', // Romanian Leu\n BGN = 'BGN', // Bulgarian Lev\n HRK = 'HRK', // Croatian Kuna (historical, replaced by EUR)\n ISK = 'ISK', // Icelandic Krona\n UAH = 'UAH', // Ukrainian Hryvnia\n BYN = 'BYN', // Belarusian Ruble\n RSD = 'RSD', // Serbian Dinar\n BAM = 'BAM', // Bosnia and Herzegovina Convertible Mark\n MDL = 'MDL', // Moldovan Leu\n ALL = 'ALL', // Albanian Lek\n MKD = 'MKD', // Macedonian Denar\n \n // Asia-Pacific\n SGD = 'SGD', // Singapore Dollar\n HKD = 'HKD', // Hong Kong Dollar\n TWD = 'TWD', // New Taiwan Dollar\n THB = 'THB', // Thai Baht\n MYR = 'MYR', // Malaysian Ringgit\n IDR = 'IDR', // Indonesian Rupiah\n PHP = 'PHP', // Philippine Peso\n VND = 'VND', // Vietnamese Dong\n NZD = 'NZD', // New Zealand Dollar\n BND = 'BND', // Brunei Dollar\n FJD = 'FJD', // Fiji Dollar\n PGK = 'PGK', // Papua New Guinean Kina\n WST = 'WST', // Samoan Tala\n SBD = 'SBD', // Solomon Islands Dollar\n VUV = 'VUV', // Vanuatu Vatu\n TOP = 'TOP', // Tongan Pa'anga\n MVR = 'MVR', // Maldivian Rufiyaa\n BTN = 'BTN', // Bhutanese Ngultrum\n MOP = 'MOP', // Macanese Pataca\n \n // Middle East\n AED = 'AED', // UAE Dirham\n SAR = 'SAR', // Saudi Riyal\n QAR = 'QAR', // Qatari Riyal\n KWD = 'KWD', // Kuwaiti Dinar\n BHD = 'BHD', // Bahraini Dinar\n OMR = 'OMR', // Omani Rial\n JOD = 'JOD', // Jordanian Dinar\n ILS = 'ILS', // Israeli Shekel\n TRY = 'TRY', // Turkish Lira\n IQD = 'IQD', // Iraqi Dinar\n IRR = 'IRR', // Iranian Rial\n LBP = 'LBP', // Lebanese Pound\n SYP = 'SYP', // Syrian Pound\n YER = 'YER', // Yemeni Rial\n \n // North Africa\n EGP = 'EGP', // Egyptian Pound\n MAD = 'MAD', // Moroccan Dirham\n TND = 'TND', // Tunisian Dinar\n DZD = 'DZD', // Algerian Dinar\n LYD = 'LYD', // Libyan Dinar\n SDG = 'SDG', // Sudanese Pound\n \n // Sub-Saharan Africa\n NGN = 'NGN', // Nigerian Naira\n KES = 'KES', // Kenyan Shilling\n GHS = 'GHS', // Ghanaian Cedi\n XOF = 'XOF', // West African CFA Franc\n XAF = 'XAF', // Central African CFA Franc\n ETB = 'ETB', // Ethiopian Birr\n UGX = 'UGX', // Ugandan Shilling\n TZS = 'TZS', // Tanzanian Shilling\n RWF = 'RWF', // Rwandan Franc\n MWK = 'MWK', // Malawian Kwacha\n ZMW = 'ZMW', // Zambian Kwacha\n BWP = 'BWP', // Botswana Pula\n NAD = 'NAD', // Namibian Dollar\n SZL = 'SZL', // Swazi Lilangeni\n LSL = 'LSL', // Lesotho Loti\n MZN = 'MZN', // Mozambican Metical\n AOA = 'AOA', // Angolan Kwanza\n MUR = 'MUR', // Mauritian Rupee\n SCR = 'SCR', // Seychelles Rupee\n MGA = 'MGA', // Malagasy Ariary\n SSP = 'SSP', // South Sudanese Pound\n SOS = 'SOS', // Somali Shilling\n DJF = 'DJF', // Djibouti Franc\n KMF = 'KMF', // Comorian Franc\n CVE = 'CVE', // Cabo Verde Escudo\n ERN = 'ERN', // Eritrean Nakfa\n GMD = 'GMD', // Gambian Dalasi\n GNF = 'GNF', // Guinean Franc\n LRD = 'LRD', // Liberian Dollar\n SLE = 'SLE', // Sierra Leonean Leone\n MRU = 'MRU', // Mauritanian Ouguiya\n STN = 'STN', // São Tomé and Príncipe Dobra\n BIF = 'BIF', // Burundi Franc\n CDF = 'CDF', // Congolese Franc\n \n // South America\n ARS = 'ARS', // Argentine Peso\n CLP = 'CLP', // Chilean Peso\n COP = 'COP', // Colombian Peso\n PEN = 'PEN', // Peruvian Sol\n UYU = 'UYU', // Uruguayan Peso\n PYG = 'PYG', // Paraguayan Guarani\n BOB = 'BOB', // Bolivian Boliviano\n VES = 'VES', // Venezuelan Bolívar Soberano\n GYD = 'GYD', // Guyanese Dollar\n SRD = 'SRD', // Surinamese Dollar\n \n // Central America & Caribbean\n CRC = 'CRC', // Costa Rican Colon\n GTQ = 'GTQ', // Guatemalan Quetzal\n HNL = 'HNL', // Honduran Lempira\n NIO = 'NIO', // Nicaraguan Cordoba\n PAB = 'PAB', // Panamanian Balboa\n DOP = 'DOP', // Dominican Peso\n JMD = 'JMD', // Jamaican Dollar\n TTD = 'TTD', // Trinidad and Tobago Dollar\n XCD = 'XCD', // East Caribbean Dollar\n BBD = 'BBD', // Barbados Dollar\n BSD = 'BSD', // Bahamian Dollar\n HTG = 'HTG', // Haitian Gourde\n BZD = 'BZD', // Belize Dollar\n CUP = 'CUP', // Cuban Peso\n AWG = 'AWG', // Aruban Florin\n KYD = 'KYD', // Cayman Islands Dollar\n BMD = 'BMD', // Bermudian Dollar\n \n // Pacific Territories\n XPF = 'XPF', // CFP Franc\n \n // Central Asia\n AFN = 'AFN', // Afghan Afghani\n PKR = 'PKR', // Pakistani Rupee\n BDT = 'BDT', // Bangladeshi Taka\n LKR = 'LKR', // Sri Lankan Rupee\n NPR = 'NPR', // Nepalese Rupee\n MMK = 'MMK', // Myanmar Kyat\n LAK = 'LAK', // Lao Kip\n KHR = 'KHR', // Cambodian Riel\n MNT = 'MNT', // Mongolian Tugrik\n UZS = 'UZS', // Uzbekistani Som\n KZT = 'KZT', // Kazakhstani Tenge\n KGS = 'KGS', // Kyrgyzstani Som\n TJS = 'TJS', // Tajikistani Somoni\n TMT = 'TMT', // Turkmenistani Manat\n GEL = 'GEL', // Georgian Lari\n AMD = 'AMD', // Armenian Dram\n AZN = 'AZN', // Azerbaijani Manat\n \n // Special\n XDR = 'XDR', // Special Drawing Rights (IMF)\n XXX = 'XXX', // No currency\n \n // Cryptocurrencies - Core Majors\n BTC = 'BTC', // Bitcoin\n ETH = 'ETH', // Ethereum\n \n // Cryptocurrencies - Major Stablecoins\n USDT = 'USDT', // Tether\n USDC = 'USDC', // USD Coin\n DAI = 'DAI', // Dai\n PYUSD = 'PYUSD', // PayPal USD\n USDe = 'USDe', // Ethena USDe\n \n // Cryptocurrencies - Large L1/L0 Networks\n BNB = 'BNB', // Binance Coin\n XRP = 'XRP', // Ripple\n SOL = 'SOL', // Solana\n TRX = 'TRX', // TRON\n ADA = 'ADA', // Cardano\n AVAX = 'AVAX', // Avalanche\n SUI = 'SUI', // Sui\n HBAR = 'HBAR', // Hedera\n TON = 'TON', // Toncoin\n DOT = 'DOT', // Polkadot\n XLM = 'XLM', // Stellar\n \n // Cryptocurrencies - Other Big Names\n DOGE = 'DOGE', // Dogecoin\n BCH = 'BCH', // Bitcoin Cash\n LINK = 'LINK', // Chainlink\n LTC = 'LTC', // Litecoin\n XMR = 'XMR', // Monero\n UNI = 'UNI', // Uniswap\n AAVE = 'AAVE', // Aave\n }\n \n/** Canonical Zod schema for AvailableCurrency. Clone via `z_clone()` for independent metadata. */\nexport const AvailableCurrencySchema: z.ZodEnum<typeof AvailableCurrency> =\n z.enum(AvailableCurrency).systemEnum('AvailableCurrency');\n\n/**\n * Currency Schema allowing both common currencies and any valid ISO 4217 code\n */\nexport const CurrencySchema: z.ZodUnion<[z.ZodEnum<typeof AvailableCurrency>, z.ZodString]> = z.union([\n z.enum(AvailableCurrency),\n z.string().length(3).regex(/^[A-Z]{3}$/, { error: 'Invalid currency code format' }) // Any valid ISO 4217 code\n]);\n\nexport type CurrencyType = z.infer<typeof CurrencySchema>; \n\n/**\n * Currencies whose smallest unit is NOT a hundredth — the ISO 4217 exponent exceptions, plus the\n * cryptocurrency conventions.\n *\n * A currency's minor unit is what a payment provider's amount field means: Stripe's `unit_amount` is\n * in cents for USD, in whole yen for JPY, and in thousandths for KWD. Assuming 2 everywhere is not a\n * display bug — it charges and records money at the wrong magnitude, by a factor of 100 or 1000.\n *\n * Only exceptions are listed; every other member of {@link AvailableCurrency} is 2. That is\n * deliberate: an exhaustive 150-row table would have to be re-checked in full whenever a currency is\n * added, while this one is checked against the ISO exponent list, which is short and stable.\n *\n * **The crypto rows are a different kind of claim and are marked as such.** ISO 4217 does not govern\n * them; these are protocol conventions (a bitcoin has 8 decimal places because the protocol says so).\n * They are correct for arithmetic within Wildo — converting a stored amount to a display value — and\n * they are NOT a minor unit any fiat billing provider accepts. A boundary that hands one of these to\n * a provider must refuse rather than convert; see `convertMoneyToCurrencyMinorUnit`.\n */\nconst CURRENCY_MINOR_UNIT_EXCEPTIONS: Partial<Record<AvailableCurrency, number>> = {\n // ── ISO 4217 exponent 0 — no minor unit; the amount IS whole units ──\n [AvailableCurrency.BIF]: 0,\n [AvailableCurrency.CLP]: 0,\n [AvailableCurrency.DJF]: 0,\n [AvailableCurrency.GNF]: 0,\n [AvailableCurrency.ISK]: 0,\n [AvailableCurrency.JPY]: 0,\n [AvailableCurrency.KMF]: 0,\n [AvailableCurrency.KRW]: 0,\n [AvailableCurrency.PYG]: 0,\n [AvailableCurrency.RWF]: 0,\n [AvailableCurrency.UGX]: 0,\n [AvailableCurrency.VND]: 0,\n [AvailableCurrency.VUV]: 0,\n [AvailableCurrency.XAF]: 0,\n [AvailableCurrency.XOF]: 0,\n [AvailableCurrency.XPF]: 0,\n\n // ── ISO 4217 exponent 3 — thousandths (the Gulf and Maghreb dinars) ──\n [AvailableCurrency.BHD]: 3,\n [AvailableCurrency.IQD]: 3,\n [AvailableCurrency.JOD]: 3,\n [AvailableCurrency.KWD]: 3,\n [AvailableCurrency.LYD]: 3,\n [AvailableCurrency.OMR]: 3,\n [AvailableCurrency.TND]: 3,\n\n // ── Cryptocurrency protocol conventions — NOT ISO, NOT a provider minor unit ──\n [AvailableCurrency.BTC]: 8,\n [AvailableCurrency.BCH]: 8,\n [AvailableCurrency.LTC]: 8,\n [AvailableCurrency.ETH]: 18,\n [AvailableCurrency.DAI]: 18,\n [AvailableCurrency.BNB]: 18,\n [AvailableCurrency.UNI]: 18,\n [AvailableCurrency.XMR]: 12,\n [AvailableCurrency.DOT]: 10,\n [AvailableCurrency.SOL]: 9,\n [AvailableCurrency.SUI]: 9,\n [AvailableCurrency.TON]: 9,\n [AvailableCurrency.XLM]: 7,\n [AvailableCurrency.XRP]: 6,\n [AvailableCurrency.TRX]: 6,\n [AvailableCurrency.ADA]: 6,\n};\n\n/**\n * Currencies that have NO minor unit at all, and for which an amount scale is therefore not a\n * question with an answer.\n *\n * `XDR` is the IMF's Special Drawing Right, a basket unit rather than a spendable currency; `XXX` is\n * ISO 4217's explicit \"no currency\". Both are legitimately in the vocabulary — a value can be\n * DENOMINATED in them — and neither can be handed to a payment provider. They resolve to `undefined`\n * rather than to a number, so a boundary refuses instead of inventing a scale.\n */\nconst CURRENCIES_WITHOUT_MINOR_UNIT: ReadonlySet<string> = new Set<string>([\n AvailableCurrency.XDR,\n AvailableCurrency.XXX,\n]);\n\n/**\n * The number of decimal places in a currency's smallest unit — what a payment provider's amount\n * field is denominated in.\n *\n * @returns the exponent, or `undefined` when the currency has no minor unit (`XDR`, `XXX`) or is not\n * a currency this vocabulary knows.\n *\n * **`undefined` rather than a default of 2, and that is the whole point of this function.** Assuming\n * 2 for an unknown code is exactly the defect it exists to remove: it produces a plausible number and\n * charges the wrong amount, silently. A caller that cannot resolve a scale must refuse.\n *\n * `CurrencySchema` admits any three-letter uppercase code, not just the enum, so an application may\n * legitimately hold a currency this function does not know. That is not an error in the application —\n * it is a currency Wildo cannot convert for a provider, and saying so is the honest answer.\n */\nexport function currencyMinorUnitDecimals(currency: string): number | undefined {\n if (CURRENCIES_WITHOUT_MINOR_UNIT.has(currency)) return undefined;\n const exception = CURRENCY_MINOR_UNIT_EXCEPTIONS[currency as AvailableCurrency];\n if (exception !== undefined) return exception;\n // Known currency with no exception: the ISO default.\n return (Object.values(AvailableCurrency) as string[]).includes(currency) ? 2 : undefined;\n}\n\n/**\n * Currency type filter for z_money() `currenciesAllowed` option.\n * Replaces the old showCrypto/majorOnly/fiatOnly boolean flags with a composable enum array.\n */\nexport enum CurrencyAllowed {\n FIAT = 'FIAT',\n FIAT_MAJOR = 'FIAT_MAJOR',\n CRYPTO = 'CRYPTO',\n CRYPTO_MAJOR = 'CRYPTO_MAJOR',\n}\n"]}
|
|
@@ -1,72 +1,86 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent
|
|
2
|
+
* Agent file-format registry — the ONE named source for the formats an agent reads or writes.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This vocabulary used to exist twice: as `AppsBlueprint_FileFormat` / `AppsBlueprint_FileMimes` in
|
|
5
|
+
* `@wildo-ai/saas-models`, and as string literals here that a comment said were kept in step "to
|
|
6
|
+
* avoid circular dependencies". The duplication was the tell that the enum sat in the wrong
|
|
7
|
+
* package: `saas-models` depends on `zod-decorators`, never the reverse, so the lower layer is the
|
|
8
|
+
* only placement that can serve both without a cycle.
|
|
6
9
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* The `saas-models` copy was deleted on 2026-09-19 with the rest of the `apps-blueprint` tree, and
|
|
11
|
+
* `FlowsActors_Agent_OutputSpecSchema` now reaches this enum directly. Nothing about a file format
|
|
12
|
+
* was ever app-creation-specific; the name was.
|
|
13
|
+
*
|
|
14
|
+
* @see `.claude/rules/design-philosophy.md` — one named runtime source per closed vocabulary.
|
|
11
15
|
*/
|
|
12
16
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
17
|
+
* Formats an agent may be asked to emit, and that the framework can map to an extension and a MIME
|
|
18
|
+
* type. Closed on purpose: a format belongs here only once the registry below can answer both
|
|
19
|
+
* mappings for it.
|
|
15
20
|
*/
|
|
16
|
-
export declare
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
export declare enum AgentFileFormat {
|
|
22
|
+
/** Unstructured prose. The default when no format is declared. */
|
|
23
|
+
TEXT = "text",
|
|
24
|
+
/** TypeScript source. `.ts` — module code, schemas, configuration. */
|
|
25
|
+
TYPESCRIPT = "typescript",
|
|
26
|
+
/** TypeScript with JSX. `.tsx` — a component; distinct from TYPESCRIPT because the extension differs and a `.ts` file containing JSX does not compile. */
|
|
27
|
+
TYPESCRIPT_JSX = "typescript_react",
|
|
28
|
+
/** Markdown. Documentation, prompts, authored prose an agent produces for a human. */
|
|
29
|
+
MARKDOWN = "markdown",
|
|
30
|
+
/** JSON. Structured data an agent emits for a machine. */
|
|
31
|
+
JSON = "json",
|
|
32
|
+
/** YAML. Configuration and manifests, where comments and readability matter. */
|
|
33
|
+
YAML = "yaml"
|
|
34
|
+
}
|
|
24
35
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
36
|
+
* The MIME type each {@link AgentFileFormat} is served and recognised as.
|
|
37
|
+
*
|
|
38
|
+
* Kept as a separate vocabulary rather than derived, because the reverse map below accepts
|
|
39
|
+
* ALTERNATIVES this enum deliberately does not name as canonical (`text/yaml` for YAML).
|
|
27
40
|
*/
|
|
28
|
-
export declare
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
41
|
+
export declare enum AgentFileMime {
|
|
42
|
+
TEXT_PLAIN = "text/plain",
|
|
43
|
+
MARKDOWN = "text/markdown",
|
|
44
|
+
JSON = "application/json",
|
|
45
|
+
TYPESCRIPT = "application/typescript",
|
|
46
|
+
TYPESCRIPT_JSX = "application/typescript-jsx",
|
|
47
|
+
YAML = "application/yaml"
|
|
48
|
+
}
|
|
36
49
|
/**
|
|
37
|
-
*
|
|
50
|
+
* The format union, kept as a named alias because callers that hold a plain `string` from a
|
|
51
|
+
* registry lookup need something to widen to.
|
|
38
52
|
*/
|
|
39
|
-
export type AgentFileFormatType =
|
|
53
|
+
export type AgentFileFormatType = `${AgentFileFormat}`;
|
|
40
54
|
/**
|
|
41
55
|
* Registry for agent/blueprint file formats.
|
|
42
56
|
*/
|
|
43
57
|
export declare class AgentFileFormatRegistry {
|
|
44
58
|
/**
|
|
45
|
-
* Get MIME type for
|
|
59
|
+
* Get the MIME type for a format.
|
|
46
60
|
*
|
|
47
|
-
* @param format -
|
|
61
|
+
* @param format - an `AgentFileFormat` value (or a compatible string)
|
|
48
62
|
* @returns MIME type string
|
|
49
63
|
*/
|
|
50
64
|
static getMimeType(format: string): string;
|
|
51
65
|
/**
|
|
52
|
-
* Get extension for
|
|
66
|
+
* Get the file extension for a format.
|
|
53
67
|
*
|
|
54
|
-
* @param format -
|
|
68
|
+
* @param format - an `AgentFileFormat` value (or a compatible string)
|
|
55
69
|
* @returns Extension string (without dot)
|
|
56
70
|
*/
|
|
57
71
|
static getExtension(format: string): string;
|
|
58
72
|
/**
|
|
59
|
-
* Get
|
|
73
|
+
* Get the format for a file extension.
|
|
60
74
|
*
|
|
61
75
|
* @param extension - File extension (without dot)
|
|
62
|
-
* @returns
|
|
76
|
+
* @returns an `AgentFileFormat` value as a string, or undefined
|
|
63
77
|
*/
|
|
64
78
|
static getFormatFromExtension(extension: string): string | undefined;
|
|
65
79
|
/**
|
|
66
|
-
* Get
|
|
80
|
+
* Get the format for a MIME type.
|
|
67
81
|
*
|
|
68
82
|
* @param mimeType - MIME type string
|
|
69
|
-
* @returns
|
|
83
|
+
* @returns an `AgentFileFormat` value as a string, or undefined
|
|
70
84
|
*/
|
|
71
85
|
static getFormatFromMimeType(mimeType: string): string | undefined;
|
|
72
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-file-formats.d.ts","sourceRoot":"","sources":["../../../../src/files/agent-file-formats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-file-formats.d.ts","sourceRoot":"","sources":["../../../../src/files/agent-file-formats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;GAIG;AACH,oBAAY,eAAe;IACzB,kEAAkE;IAClE,IAAI,SAAS;IACb,sEAAsE;IACtE,UAAU,eAAe;IACzB,0JAA0J;IAC1J,cAAc,qBAAqB;IACnC,sFAAsF;IACtF,QAAQ,aAAa;IACrB,0DAA0D;IAC1D,IAAI,SAAS;IACb,gFAAgF;IAChF,IAAI,SAAS;CACd;AAED;;;;;GAKG;AACH,oBAAY,aAAa;IACvB,UAAU,eAAe;IACzB,QAAQ,kBAAkB;IAC1B,IAAI,qBAAqB;IACzB,UAAU,2BAA2B;IACrC,cAAc,+BAA+B;IAC7C,IAAI,qBAAqB;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,GAAG,eAAe,EAAE,CAAC;AA4CvD;;GAEG;AACH,qBAAa,uBAAuB;IAClC;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3C;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpE;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOlE;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAI,MAAM,EAAE;CAGnC"}
|
|
@@ -1,41 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent
|
|
2
|
+
* Agent file-format registry — the ONE named source for the formats an agent reads or writes.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This vocabulary used to exist twice: as `AppsBlueprint_FileFormat` / `AppsBlueprint_FileMimes` in
|
|
5
|
+
* `@wildo-ai/saas-models`, and as string literals here that a comment said were kept in step "to
|
|
6
|
+
* avoid circular dependencies". The duplication was the tell that the enum sat in the wrong
|
|
7
|
+
* package: `saas-models` depends on `zod-decorators`, never the reverse, so the lower layer is the
|
|
8
|
+
* only placement that can serve both without a cycle.
|
|
6
9
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Agent/Blueprint file format string literals.
|
|
14
|
-
* These match AppsBlueprint_FileFormat enum values from @wildo-ai/saas-models.
|
|
10
|
+
* The `saas-models` copy was deleted on 2026-09-19 with the rest of the `apps-blueprint` tree, and
|
|
11
|
+
* `FlowsActors_Agent_OutputSpecSchema` now reaches this enum directly. Nothing about a file format
|
|
12
|
+
* was ever app-creation-specific; the name was.
|
|
13
|
+
*
|
|
14
|
+
* @see `.claude/rules/design-philosophy.md` — one named runtime source per closed vocabulary.
|
|
15
15
|
*/
|
|
16
|
-
export const AgentFileFormat = {
|
|
17
|
-
TEXT: 'text',
|
|
18
|
-
TYPESCRIPT: 'typescript',
|
|
19
|
-
TYPESCRIPT_JSX: 'typescript_react',
|
|
20
|
-
MARKDOWN: 'markdown',
|
|
21
|
-
JSON: 'json',
|
|
22
|
-
YAML: 'yaml',
|
|
23
|
-
};
|
|
24
16
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
17
|
+
* Formats an agent may be asked to emit, and that the framework can map to an extension and a MIME
|
|
18
|
+
* type. Closed on purpose: a format belongs here only once the registry below can answer both
|
|
19
|
+
* mappings for it.
|
|
27
20
|
*/
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
export var AgentFileFormat;
|
|
22
|
+
(function (AgentFileFormat) {
|
|
23
|
+
/** Unstructured prose. The default when no format is declared. */
|
|
24
|
+
AgentFileFormat["TEXT"] = "text";
|
|
25
|
+
/** TypeScript source. `.ts` — module code, schemas, configuration. */
|
|
26
|
+
AgentFileFormat["TYPESCRIPT"] = "typescript";
|
|
27
|
+
/** TypeScript with JSX. `.tsx` — a component; distinct from TYPESCRIPT because the extension differs and a `.ts` file containing JSX does not compile. */
|
|
28
|
+
AgentFileFormat["TYPESCRIPT_JSX"] = "typescript_react";
|
|
29
|
+
/** Markdown. Documentation, prompts, authored prose an agent produces for a human. */
|
|
30
|
+
AgentFileFormat["MARKDOWN"] = "markdown";
|
|
31
|
+
/** JSON. Structured data an agent emits for a machine. */
|
|
32
|
+
AgentFileFormat["JSON"] = "json";
|
|
33
|
+
/** YAML. Configuration and manifests, where comments and readability matter. */
|
|
34
|
+
AgentFileFormat["YAML"] = "yaml";
|
|
35
|
+
})(AgentFileFormat || (AgentFileFormat = {}));
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* The MIME type each {@link AgentFileFormat} is served and recognised as.
|
|
38
|
+
*
|
|
39
|
+
* Kept as a separate vocabulary rather than derived, because the reverse map below accepts
|
|
40
|
+
* ALTERNATIVES this enum deliberately does not name as canonical (`text/yaml` for YAML).
|
|
38
41
|
*/
|
|
42
|
+
export var AgentFileMime;
|
|
43
|
+
(function (AgentFileMime) {
|
|
44
|
+
AgentFileMime["TEXT_PLAIN"] = "text/plain";
|
|
45
|
+
AgentFileMime["MARKDOWN"] = "text/markdown";
|
|
46
|
+
AgentFileMime["JSON"] = "application/json";
|
|
47
|
+
AgentFileMime["TYPESCRIPT"] = "application/typescript";
|
|
48
|
+
AgentFileMime["TYPESCRIPT_JSX"] = "application/typescript-jsx";
|
|
49
|
+
AgentFileMime["YAML"] = "application/yaml";
|
|
50
|
+
})(AgentFileMime || (AgentFileMime = {}));
|
|
51
|
+
/** Canonical MIME type per format. */
|
|
39
52
|
const FORMAT_TO_MIME = {
|
|
40
53
|
[AgentFileFormat.TEXT]: AgentFileMime.TEXT_PLAIN,
|
|
41
54
|
[AgentFileFormat.MARKDOWN]: AgentFileMime.MARKDOWN,
|
|
@@ -44,9 +57,7 @@ const FORMAT_TO_MIME = {
|
|
|
44
57
|
[AgentFileFormat.TYPESCRIPT_JSX]: AgentFileMime.TYPESCRIPT_JSX,
|
|
45
58
|
[AgentFileFormat.YAML]: AgentFileMime.YAML,
|
|
46
59
|
};
|
|
47
|
-
/**
|
|
48
|
-
* Maps AppsBlueprint_FileFormat to extensions.
|
|
49
|
-
*/
|
|
60
|
+
/** Canonical file extension per format. */
|
|
50
61
|
const FORMAT_TO_EXTENSION = {
|
|
51
62
|
[AgentFileFormat.TEXT]: 'txt',
|
|
52
63
|
[AgentFileFormat.MARKDOWN]: 'md',
|
|
@@ -55,9 +66,7 @@ const FORMAT_TO_EXTENSION = {
|
|
|
55
66
|
[AgentFileFormat.TYPESCRIPT_JSX]: 'tsx',
|
|
56
67
|
[AgentFileFormat.YAML]: 'yaml',
|
|
57
68
|
};
|
|
58
|
-
/**
|
|
59
|
-
* Reverse mapping: extension to AppsBlueprint_FileFormat.
|
|
60
|
-
*/
|
|
69
|
+
/** Extension to format, including accepted alternatives. */
|
|
61
70
|
const EXTENSION_TO_FORMAT = {
|
|
62
71
|
'txt': AgentFileFormat.TEXT,
|
|
63
72
|
'md': AgentFileFormat.MARKDOWN,
|
|
@@ -67,9 +76,7 @@ const EXTENSION_TO_FORMAT = {
|
|
|
67
76
|
'yaml': AgentFileFormat.YAML,
|
|
68
77
|
'yml': AgentFileFormat.YAML, // Alternative extension for YAML
|
|
69
78
|
};
|
|
70
|
-
/**
|
|
71
|
-
* Reverse mapping: MIME type to AppsBlueprint_FileFormat.
|
|
72
|
-
*/
|
|
79
|
+
/** MIME type to format, including accepted alternatives. */
|
|
73
80
|
const MIME_TO_FORMAT = {
|
|
74
81
|
'text/plain': AgentFileFormat.TEXT,
|
|
75
82
|
'text/markdown': AgentFileFormat.MARKDOWN,
|
|
@@ -84,28 +91,28 @@ const MIME_TO_FORMAT = {
|
|
|
84
91
|
*/
|
|
85
92
|
export class AgentFileFormatRegistry {
|
|
86
93
|
/**
|
|
87
|
-
* Get MIME type for
|
|
94
|
+
* Get the MIME type for a format.
|
|
88
95
|
*
|
|
89
|
-
* @param format -
|
|
96
|
+
* @param format - an `AgentFileFormat` value (or a compatible string)
|
|
90
97
|
* @returns MIME type string
|
|
91
98
|
*/
|
|
92
99
|
static getMimeType(format) {
|
|
93
100
|
return FORMAT_TO_MIME[format] || '';
|
|
94
101
|
}
|
|
95
102
|
/**
|
|
96
|
-
* Get extension for
|
|
103
|
+
* Get the file extension for a format.
|
|
97
104
|
*
|
|
98
|
-
* @param format -
|
|
105
|
+
* @param format - an `AgentFileFormat` value (or a compatible string)
|
|
99
106
|
* @returns Extension string (without dot)
|
|
100
107
|
*/
|
|
101
108
|
static getExtension(format) {
|
|
102
109
|
return FORMAT_TO_EXTENSION[format] || '';
|
|
103
110
|
}
|
|
104
111
|
/**
|
|
105
|
-
* Get
|
|
112
|
+
* Get the format for a file extension.
|
|
106
113
|
*
|
|
107
114
|
* @param extension - File extension (without dot)
|
|
108
|
-
* @returns
|
|
115
|
+
* @returns an `AgentFileFormat` value as a string, or undefined
|
|
109
116
|
*/
|
|
110
117
|
static getFormatFromExtension(extension) {
|
|
111
118
|
if (!extension)
|
|
@@ -114,10 +121,10 @@ export class AgentFileFormatRegistry {
|
|
|
114
121
|
return EXTENSION_TO_FORMAT[normalizedExt];
|
|
115
122
|
}
|
|
116
123
|
/**
|
|
117
|
-
* Get
|
|
124
|
+
* Get the format for a MIME type.
|
|
118
125
|
*
|
|
119
126
|
* @param mimeType - MIME type string
|
|
120
|
-
* @returns
|
|
127
|
+
* @returns an `AgentFileFormat` value as a string, or undefined
|
|
121
128
|
*/
|
|
122
129
|
static getFormatFromMimeType(mimeType) {
|
|
123
130
|
if (!mimeType)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-file-formats.js","sourceRoot":"","sources":["../../../../src/files/agent-file-formats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-file-formats.js","sourceRoot":"","sources":["../../../../src/files/agent-file-formats.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent file-format registry — the ONE named source for the formats an agent reads or writes.\n *\n * This vocabulary used to exist twice: as `AppsBlueprint_FileFormat` / `AppsBlueprint_FileMimes` in\n * `@wildo-ai/saas-models`, and as string literals here that a comment said were kept in step \"to\n * avoid circular dependencies\". The duplication was the tell that the enum sat in the wrong\n * package: `saas-models` depends on `zod-decorators`, never the reverse, so the lower layer is the\n * only placement that can serve both without a cycle.\n *\n * The `saas-models` copy was deleted on 2026-09-19 with the rest of the `apps-blueprint` tree, and\n * `FlowsActors_Agent_OutputSpecSchema` now reaches this enum directly. Nothing about a file format\n * was ever app-creation-specific; the name was.\n *\n * @see `.claude/rules/design-philosophy.md` — one named runtime source per closed vocabulary.\n */\n\nimport mime from 'mime';\n\n/**\n * Formats an agent may be asked to emit, and that the framework can map to an extension and a MIME\n * type. Closed on purpose: a format belongs here only once the registry below can answer both\n * mappings for it.\n */\nexport enum AgentFileFormat {\n /** Unstructured prose. The default when no format is declared. */\n TEXT = 'text',\n /** TypeScript source. `.ts` — module code, schemas, configuration. */\n TYPESCRIPT = 'typescript',\n /** TypeScript with JSX. `.tsx` — a component; distinct from TYPESCRIPT because the extension differs and a `.ts` file containing JSX does not compile. */\n TYPESCRIPT_JSX = 'typescript_react',\n /** Markdown. Documentation, prompts, authored prose an agent produces for a human. */\n MARKDOWN = 'markdown',\n /** JSON. Structured data an agent emits for a machine. */\n JSON = 'json',\n /** YAML. Configuration and manifests, where comments and readability matter. */\n YAML = 'yaml',\n}\n\n/**\n * The MIME type each {@link AgentFileFormat} is served and recognised as.\n *\n * Kept as a separate vocabulary rather than derived, because the reverse map below accepts\n * ALTERNATIVES this enum deliberately does not name as canonical (`text/yaml` for YAML).\n */\nexport enum AgentFileMime {\n TEXT_PLAIN = 'text/plain',\n MARKDOWN = 'text/markdown',\n JSON = 'application/json',\n TYPESCRIPT = 'application/typescript',\n TYPESCRIPT_JSX = 'application/typescript-jsx',\n YAML = 'application/yaml',\n}\n\n/**\n * The format union, kept as a named alias because callers that hold a plain `string` from a\n * registry lookup need something to widen to.\n */\nexport type AgentFileFormatType = `${AgentFileFormat}`;\n\n/** Canonical MIME type per format. */\nconst FORMAT_TO_MIME: Record<string, string> = {\n [AgentFileFormat.TEXT]: AgentFileMime.TEXT_PLAIN,\n [AgentFileFormat.MARKDOWN]: AgentFileMime.MARKDOWN,\n [AgentFileFormat.JSON]: AgentFileMime.JSON,\n [AgentFileFormat.TYPESCRIPT]: AgentFileMime.TYPESCRIPT,\n [AgentFileFormat.TYPESCRIPT_JSX]: AgentFileMime.TYPESCRIPT_JSX,\n [AgentFileFormat.YAML]: AgentFileMime.YAML,\n};\n\n/** Canonical file extension per format. */\nconst FORMAT_TO_EXTENSION: Record<string, string> = {\n [AgentFileFormat.TEXT]: 'txt',\n [AgentFileFormat.MARKDOWN]: 'md',\n [AgentFileFormat.JSON]: 'json',\n [AgentFileFormat.TYPESCRIPT]: 'ts',\n [AgentFileFormat.TYPESCRIPT_JSX]: 'tsx',\n [AgentFileFormat.YAML]: 'yaml',\n};\n\n/** Extension to format, including accepted alternatives. */\nconst EXTENSION_TO_FORMAT: Record<string, string> = {\n 'txt': AgentFileFormat.TEXT,\n 'md': AgentFileFormat.MARKDOWN,\n 'json': AgentFileFormat.JSON,\n 'ts': AgentFileFormat.TYPESCRIPT,\n 'tsx': AgentFileFormat.TYPESCRIPT_JSX,\n 'yaml': AgentFileFormat.YAML,\n 'yml': AgentFileFormat.YAML, // Alternative extension for YAML\n};\n\n/** MIME type to format, including accepted alternatives. */\nconst MIME_TO_FORMAT: Record<string, string> = {\n 'text/plain': AgentFileFormat.TEXT,\n 'text/markdown': AgentFileFormat.MARKDOWN,\n 'application/json': AgentFileFormat.JSON,\n 'application/typescript': AgentFileFormat.TYPESCRIPT,\n 'application/typescript-jsx': AgentFileFormat.TYPESCRIPT_JSX,\n 'application/yaml': AgentFileFormat.YAML,\n 'text/yaml': AgentFileFormat.YAML, // Alternative MIME type\n};\n\n/**\n * Registry for agent/blueprint file formats.\n */\nexport class AgentFileFormatRegistry {\n /**\n * Get the MIME type for a format.\n * \n * @param format - an `AgentFileFormat` value (or a compatible string)\n * @returns MIME type string\n */\n static getMimeType(format: string): string {\n return FORMAT_TO_MIME[format] || '';\n }\n \n /**\n * Get the file extension for a format.\n * \n * @param format - an `AgentFileFormat` value (or a compatible string)\n * @returns Extension string (without dot)\n */\n static getExtension(format: string): string {\n return FORMAT_TO_EXTENSION[format] || '';\n }\n \n /**\n * Get the format for a file extension.\n * \n * @param extension - File extension (without dot)\n * @returns an `AgentFileFormat` value as a string, or undefined\n */\n static getFormatFromExtension(extension: string): string | undefined {\n if (!extension) return undefined;\n \n const normalizedExt = extension.toLowerCase().trim();\n return EXTENSION_TO_FORMAT[normalizedExt];\n }\n \n /**\n * Get the format for a MIME type.\n * \n * @param mimeType - MIME type string\n * @returns an `AgentFileFormat` value as a string, or undefined\n */\n static getFormatFromMimeType(mimeType: string): string | undefined {\n if (!mimeType) return undefined;\n \n const normalizedMime = mimeType.toLowerCase().trim();\n return MIME_TO_FORMAT[normalizedMime];\n }\n \n /**\n * Check if extension is an agent file format.\n * \n * @param extension - File extension (without dot)\n * @returns true if extension is an agent format\n */\n static isAgentFormat(extension: string): boolean {\n return this.getFormatFromExtension(extension) !== undefined;\n }\n \n /**\n * Check if MIME type is an agent file format.\n * \n * @param mimeType - MIME type string\n * @returns true if MIME type is an agent format\n */\n static isAgentMimeType(mimeType: string): boolean {\n return this.getFormatFromMimeType(mimeType) !== undefined;\n }\n \n /**\n * Get all agent format extensions.\n * \n * @returns Array of extension strings\n */\n static getAllExtensions(): string[] {\n return Object.values(FORMAT_TO_EXTENSION);\n }\n \n /**\n * Get all agent format MIME types.\n * \n * @returns Array of MIME type strings\n */\n static getAllMimeTypes(): string[] {\n return Object.values(FORMAT_TO_MIME);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-nature-map.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"extension-nature-map.d.ts","sourceRoot":"","sources":["../../../../src/files/extension-nature-map.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAwD3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime-registry.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"mime-registry.d.ts","sourceRoot":"","sources":["../../../../src/files/mime-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAsCrD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAezD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAWhD;;;;;;;OAOG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOpD;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAOxE;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAUtE;;;;;;OAMG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAoB/E;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE;IAM3D;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE;CAa3D"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { FileNature } from '../zod-decorators.types';
|
|
8
8
|
/**
|
|
9
9
|
* Result type for format type detection.
|
|
10
|
-
* format is a string compatible with
|
|
10
|
+
* format is a string compatible with the `AgentFileFormat` enum.
|
|
11
11
|
*/
|
|
12
12
|
export type FormatTypeResult = {
|
|
13
13
|
type: 'nature';
|
|
@@ -43,7 +43,7 @@ export declare class UnifiedFileFormatRegistry {
|
|
|
43
43
|
*/
|
|
44
44
|
static getExtensions(mimeType: string): string[];
|
|
45
45
|
/**
|
|
46
|
-
* Get format type (FileNature or
|
|
46
|
+
* Get format type (FileNature or `AgentFileFormat`) from extension.
|
|
47
47
|
*
|
|
48
48
|
* @param extension - File extension (without dot)
|
|
49
49
|
* @returns FormatTypeResult indicating whether it's a nature or agent format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-registry.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"unified-registry.d.ts","sourceRoot":"","sources":["../../../../src/files/unified-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC,SAAS,CAAC;AAEd;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOjD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAazD;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAchD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAkBzD;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAItE;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAkBpE;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;;;;OAOG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAc/E;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAcpD;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE;IAI3D;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE;CAG3D"}
|
|
@@ -61,7 +61,7 @@ export class UnifiedFileFormatRegistry {
|
|
|
61
61
|
return FileMimeTypeRegistry.getExtensions(mimeType);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* Get format type (FileNature or
|
|
64
|
+
* Get format type (FileNature or `AgentFileFormat`) from extension.
|
|
65
65
|
*
|
|
66
66
|
* @param extension - File extension (without dot)
|
|
67
67
|
* @returns FormatTypeResult indicating whether it's a nature or agent format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-registry.js","sourceRoot":"","sources":["../../../../src/files/unified-registry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Unified File Format Registry\n * \n * Unified registry that handles both general files and agent/blueprint formats.\n * Provides a single API for all file format operations.\n */\n\nimport { FileNature } from '../zod-decorators.types';\nimport { FileMimeTypeRegistry } from './mime-registry';\nimport { AgentFileFormatRegistry } from './agent-file-formats';\n\n/**\n * Result type for format type detection.\n * format is a string compatible with AppsBlueprint_FileFormat enum.\n */\nexport type FormatTypeResult =\n | { type: 'nature'; nature: FileNature }\n | { type: 'agent'; format: string } // Compatible with AppsBlueprint_FileFormat\n | undefined;\n\n/**\n * Unified registry for all file formats (general + agent).\n */\nexport class UnifiedFileFormatRegistry {\n /**\n * Extract file extension from filename (without dot, lowercase).\n * \n * @param filename - Full filename or path\n * @returns File extension (without dot) or empty string if not found\n */\n static getFileExtension(filename: string): string {\n if (!filename) return '';\n const lastDot = filename.lastIndexOf('.');\n if (lastDot === -1 || lastDot === filename.length - 1) return '';\n return filename.substring(lastDot + 1).toLowerCase();\n }\n\n /**\n * Get MIME type from extension (works for both general files and agent formats).\n * \n * @param extension - File extension (without dot)\n * @returns MIME type string or undefined if not found\n */\n static getMimeType(extension: string): string | undefined {\n if (!extension) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n return AgentFileFormatRegistry.getMimeType(agentFormat);\n }\n \n // Fall back to general file registry\n return FileMimeTypeRegistry.getMimeType(extension);\n }\n \n /**\n * Get all extensions for a MIME type.\n * Works for both general files and agent formats.\n * \n * @param mimeType - MIME type string\n * @returns Array of extensions (without dots)\n */\n static getExtensions(mimeType: string): string[] {\n if (!mimeType) return [];\n \n // Check agent formats first\n const agentFormat = AgentFileFormatRegistry.getFormatFromMimeType(mimeType);\n if (agentFormat) {\n const ext = AgentFileFormatRegistry.getExtension(agentFormat);\n return ext ? [ext] : [];\n }\n \n // Fall back to general file registry\n return FileMimeTypeRegistry.getExtensions(mimeType);\n }\n\n /**\n * Get format type (FileNature or AppsBlueprint_FileFormat) from extension.\n * \n * @param extension - File extension (without dot)\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatType(extension: string): FormatTypeResult {\n if (!extension) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n return { type: 'agent', format: agentFormat };\n }\n \n // Check general file nature\n const nature = FileMimeTypeRegistry.getNatureFromExtension(extension);\n if (nature) {\n return { type: 'nature', nature };\n }\n \n return undefined;\n }\n \n /**\n * Get format type from extension (alias for getFormatType for consistency).\n * \n * @param extension - File extension (without dot)\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatTypeFromExtension(extension: string): FormatTypeResult {\n return this.getFormatType(extension);\n }\n\n /**\n * Get format type from MIME type.\n * \n * @param mimeType - MIME type string\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatTypeFromMimeType(mimeType: string): FormatTypeResult {\n if (!mimeType) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromMimeType(mimeType);\n if (agentFormat) {\n return { type: 'agent', format: agentFormat };\n }\n \n // Check general file nature\n const nature = FileMimeTypeRegistry.getNatureFromMimeType(mimeType);\n if (nature) {\n return { type: 'nature', nature };\n }\n \n return undefined;\n }\n \n /**\n * Check if file is an agent/blueprint format.\n * \n * @param extension - File extension (without dot)\n * @returns true if extension is an agent format\n */\n static isAgentFormat(extension: string): boolean {\n return AgentFileFormatRegistry.isAgentFormat(extension);\n }\n \n /**\n * Check if MIME type is an agent/blueprint format.\n * \n * @param mimeType - MIME type string\n * @returns true if MIME type is an agent format\n */\n static isAgentMimeType(mimeType: string): boolean {\n return AgentFileFormatRegistry.isAgentMimeType(mimeType);\n }\n \n /**\n * Validate that extension matches MIME type.\n * Works for both general files and agent formats.\n * \n * @param extension - File extension (without dot)\n * @param mimeType - MIME type string\n * @returns true if extension matches MIME type\n */\n static validateExtensionMimeMatch(extension: string, mimeType: string): boolean {\n if (!extension || !mimeType) return false;\n \n // Check agent formats first\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n const expectedMime = AgentFileFormatRegistry.getMimeType(agentFormat);\n return expectedMime === mimeType;\n }\n \n // Fall back to general file validation\n return FileMimeTypeRegistry.validateExtensionMimeMatch(extension, mimeType);\n }\n \n /**\n * Normalize extension to canonical format name.\n * Works for both general files and agent formats.\n * \n * @param extension - File extension (without dot)\n * @returns Normalized format name\n */\n static normalizeExtension(extension: string): string {\n if (!extension) return extension;\n \n // Check if it's an agent format\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n // For agent formats, return the format name directly\n return agentFormat;\n }\n \n // Use general file normalization\n return FileMimeTypeRegistry.normalizeExtension(extension);\n }\n \n /**\n * Get all extensions for a FileNature.\n * \n * @param nature - FileNature enum value\n * @returns Array of extensions (without dots)\n */\n static getExtensionsForNature(nature: FileNature): string[] {\n return FileMimeTypeRegistry.getExtensionsForNature(nature);\n }\n \n /**\n * Get all MIME types for a FileNature.\n * \n * @param nature - FileNature enum value\n * @returns Array of MIME type strings\n */\n static getMimeTypesForNature(nature: FileNature): string[] {\n return FileMimeTypeRegistry.getMimeTypesForNature(nature);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"unified-registry.js","sourceRoot":"","sources":["../../../../src/files/unified-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAW/D;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QACtC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACjE,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAiB;QAClC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,4CAA4C;QAC5C,MAAM,WAAW,GAAG,uBAAuB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;QAED,qCAAqC;QACrC,OAAO,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,QAAgB;QACnC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,4BAA4B;QAC5B,MAAM,WAAW,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,uBAAuB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,CAAC;QAED,qCAAqC;QACrC,OAAO,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAiB;QACpC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,4CAA4C;QAC5C,MAAM,WAAW,GAAG,uBAAuB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAiB;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,QAAgB;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,4CAA4C;QAC5C,MAAM,WAAW,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAiB;QACpC,OAAO,uBAAuB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,QAAgB;QACrC,OAAO,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAiB,EAAE,QAAgB;QACnE,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE1C,4BAA4B;QAC5B,MAAM,WAAW,GAAG,uBAAuB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACtE,OAAO,YAAY,KAAK,QAAQ,CAAC;QACnC,CAAC;QAED,uCAAuC;QACvC,OAAO,oBAAoB,CAAC,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAiB;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,gCAAgC;QAChC,MAAM,WAAW,GAAG,uBAAuB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,qDAAqD;YACrD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,iCAAiC;QACjC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAkB;QAC9C,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAkB;QAC7C,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;CACF","sourcesContent":["/**\n * Unified File Format Registry\n * \n * Unified registry that handles both general files and agent/blueprint formats.\n * Provides a single API for all file format operations.\n */\n\nimport { FileNature } from '../zod-decorators.types';\nimport { FileMimeTypeRegistry } from './mime-registry';\nimport { AgentFileFormatRegistry } from './agent-file-formats';\n\n/**\n * Result type for format type detection.\n * format is a string compatible with the `AgentFileFormat` enum.\n */\nexport type FormatTypeResult =\n | { type: 'nature'; nature: FileNature }\n | { type: 'agent'; format: string } // Compatible with `AgentFileFormat`\n | undefined;\n\n/**\n * Unified registry for all file formats (general + agent).\n */\nexport class UnifiedFileFormatRegistry {\n /**\n * Extract file extension from filename (without dot, lowercase).\n * \n * @param filename - Full filename or path\n * @returns File extension (without dot) or empty string if not found\n */\n static getFileExtension(filename: string): string {\n if (!filename) return '';\n const lastDot = filename.lastIndexOf('.');\n if (lastDot === -1 || lastDot === filename.length - 1) return '';\n return filename.substring(lastDot + 1).toLowerCase();\n }\n\n /**\n * Get MIME type from extension (works for both general files and agent formats).\n * \n * @param extension - File extension (without dot)\n * @returns MIME type string or undefined if not found\n */\n static getMimeType(extension: string): string | undefined {\n if (!extension) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n return AgentFileFormatRegistry.getMimeType(agentFormat);\n }\n \n // Fall back to general file registry\n return FileMimeTypeRegistry.getMimeType(extension);\n }\n \n /**\n * Get all extensions for a MIME type.\n * Works for both general files and agent formats.\n * \n * @param mimeType - MIME type string\n * @returns Array of extensions (without dots)\n */\n static getExtensions(mimeType: string): string[] {\n if (!mimeType) return [];\n \n // Check agent formats first\n const agentFormat = AgentFileFormatRegistry.getFormatFromMimeType(mimeType);\n if (agentFormat) {\n const ext = AgentFileFormatRegistry.getExtension(agentFormat);\n return ext ? [ext] : [];\n }\n \n // Fall back to general file registry\n return FileMimeTypeRegistry.getExtensions(mimeType);\n }\n\n /**\n * Get format type (FileNature or `AgentFileFormat`) from extension.\n * \n * @param extension - File extension (without dot)\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatType(extension: string): FormatTypeResult {\n if (!extension) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n return { type: 'agent', format: agentFormat };\n }\n \n // Check general file nature\n const nature = FileMimeTypeRegistry.getNatureFromExtension(extension);\n if (nature) {\n return { type: 'nature', nature };\n }\n \n return undefined;\n }\n \n /**\n * Get format type from extension (alias for getFormatType for consistency).\n * \n * @param extension - File extension (without dot)\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatTypeFromExtension(extension: string): FormatTypeResult {\n return this.getFormatType(extension);\n }\n\n /**\n * Get format type from MIME type.\n * \n * @param mimeType - MIME type string\n * @returns FormatTypeResult indicating whether it's a nature or agent format\n */\n static getFormatTypeFromMimeType(mimeType: string): FormatTypeResult {\n if (!mimeType) return undefined;\n \n // Check agent formats first (more specific)\n const agentFormat = AgentFileFormatRegistry.getFormatFromMimeType(mimeType);\n if (agentFormat) {\n return { type: 'agent', format: agentFormat };\n }\n \n // Check general file nature\n const nature = FileMimeTypeRegistry.getNatureFromMimeType(mimeType);\n if (nature) {\n return { type: 'nature', nature };\n }\n \n return undefined;\n }\n \n /**\n * Check if file is an agent/blueprint format.\n * \n * @param extension - File extension (without dot)\n * @returns true if extension is an agent format\n */\n static isAgentFormat(extension: string): boolean {\n return AgentFileFormatRegistry.isAgentFormat(extension);\n }\n \n /**\n * Check if MIME type is an agent/blueprint format.\n * \n * @param mimeType - MIME type string\n * @returns true if MIME type is an agent format\n */\n static isAgentMimeType(mimeType: string): boolean {\n return AgentFileFormatRegistry.isAgentMimeType(mimeType);\n }\n \n /**\n * Validate that extension matches MIME type.\n * Works for both general files and agent formats.\n * \n * @param extension - File extension (without dot)\n * @param mimeType - MIME type string\n * @returns true if extension matches MIME type\n */\n static validateExtensionMimeMatch(extension: string, mimeType: string): boolean {\n if (!extension || !mimeType) return false;\n \n // Check agent formats first\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n const expectedMime = AgentFileFormatRegistry.getMimeType(agentFormat);\n return expectedMime === mimeType;\n }\n \n // Fall back to general file validation\n return FileMimeTypeRegistry.validateExtensionMimeMatch(extension, mimeType);\n }\n \n /**\n * Normalize extension to canonical format name.\n * Works for both general files and agent formats.\n * \n * @param extension - File extension (without dot)\n * @returns Normalized format name\n */\n static normalizeExtension(extension: string): string {\n if (!extension) return extension;\n \n // Check if it's an agent format\n const agentFormat = AgentFileFormatRegistry.getFormatFromExtension(extension);\n if (agentFormat) {\n // For agent formats, return the format name directly\n return agentFormat;\n }\n \n // Use general file normalization\n return FileMimeTypeRegistry.normalizeExtension(extension);\n }\n \n /**\n * Get all extensions for a FileNature.\n * \n * @param nature - FileNature enum value\n * @returns Array of extensions (without dots)\n */\n static getExtensionsForNature(nature: FileNature): string[] {\n return FileMimeTypeRegistry.getExtensionsForNature(nature);\n }\n \n /**\n * Get all MIME types for a FileNature.\n * \n * @param nature - FileNature enum value\n * @returns Array of MIME type strings\n */\n static getMimeTypesForNature(nature: FileNature): string[] {\n return FileMimeTypeRegistry.getMimeTypesForNature(nature);\n }\n}\n"]}
|