UNPKG

@mysten/sui

Version:
1 lines 2.13 kB
{"version":3,"file":"suins.mjs","names":[],"sources":["../../src/utils/suins.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nconst SUI_NS_NAME_REGEX =\n\t/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i;\nconst SUI_NS_DOMAIN_REGEX = /^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\\.)+sui$/i;\nconst MAX_SUI_NS_NAME_LENGTH = 235;\n\nexport function isValidSuiNSName(name: string): boolean {\n\tif (name.length > MAX_SUI_NS_NAME_LENGTH) {\n\t\treturn false;\n\t}\n\n\tif (name.includes('@')) {\n\t\treturn SUI_NS_NAME_REGEX.test(name);\n\t}\n\n\treturn SUI_NS_DOMAIN_REGEX.test(name);\n}\n\nexport function normalizeSuiNSName(name: string, format: 'at' | 'dot' = 'at'): string {\n\tconst lowerCase = name.toLowerCase();\n\tlet parts;\n\n\tif (lowerCase.includes('@')) {\n\t\tif (!SUI_NS_NAME_REGEX.test(lowerCase)) {\n\t\t\tthrow new Error(`Invalid SuiNS name ${name}`);\n\t\t}\n\t\tconst [labels, domain] = lowerCase.split('@');\n\t\tparts = [...(labels ? labels.split('.') : []), domain];\n\t} else {\n\t\tif (!SUI_NS_DOMAIN_REGEX.test(lowerCase)) {\n\t\t\tthrow new Error(`Invalid SuiNS name ${name}`);\n\t\t}\n\t\tparts = lowerCase.split('.').slice(0, -1);\n\t}\n\n\tif (format === 'dot') {\n\t\treturn `${parts.join('.')}.sui`;\n\t}\n\n\treturn `${parts.slice(0, -1).join('.')}@${parts[parts.length - 1]}`;\n}\n"],"mappings":";AAGA,MAAM,oBACL;AACD,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAE/B,SAAgB,iBAAiB,MAAuB;AACvD,KAAI,KAAK,SAAS,uBACjB,QAAO;AAGR,KAAI,KAAK,SAAS,IAAI,CACrB,QAAO,kBAAkB,KAAK,KAAK;AAGpC,QAAO,oBAAoB,KAAK,KAAK;;AAGtC,SAAgB,mBAAmB,MAAc,SAAuB,MAAc;CACrF,MAAM,YAAY,KAAK,aAAa;CACpC,IAAI;AAEJ,KAAI,UAAU,SAAS,IAAI,EAAE;AAC5B,MAAI,CAAC,kBAAkB,KAAK,UAAU,CACrC,OAAM,IAAI,MAAM,sBAAsB,OAAO;EAE9C,MAAM,CAAC,QAAQ,UAAU,UAAU,MAAM,IAAI;AAC7C,UAAQ,CAAC,GAAI,SAAS,OAAO,MAAM,IAAI,GAAG,EAAE,EAAG,OAAO;QAChD;AACN,MAAI,CAAC,oBAAoB,KAAK,UAAU,CACvC,OAAM,IAAI,MAAM,sBAAsB,OAAO;AAE9C,UAAQ,UAAU,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG;;AAG1C,KAAI,WAAW,MACd,QAAO,GAAG,MAAM,KAAK,IAAI,CAAC;AAG3B,QAAO,GAAG,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,MAAM,SAAS"}