@mysten/sui
Version:
Sui TypeScript API
1 lines • 2.2 kB
Source Map (JSON)
{"version":3,"file":"move-registry.mjs","names":[],"sources":["../../src/utils/move-registry.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isValidSuiNSName } from './suins.js';\nimport { isValidStructTag } from './sui-types.js';\n\n/** The pattern to find an optionally versioned name */\nconst NAME_PATTERN = /^([a-z0-9]+(?:-[a-z0-9]+)*)$/;\n/** The pattern for a valid version number */\nconst VERSION_REGEX = /^\\d+$/;\n/** The maximum size for an app */\nconst MAX_APP_SIZE = 64;\n/** The separator for the name */\nconst NAME_SEPARATOR = '/';\n\nexport const isValidNamedPackage = (name: string): boolean => {\n\tconst parts = name.split(NAME_SEPARATOR);\n\t// The name has to have 2 parts (without-version), or 3 parts (with version).\n\tif (parts.length < 2 || parts.length > 3) return false;\n\n\tconst [org, app, version] = parts; // split by {org} {app} {optional version}\n\n\t// If the version exists, it must be a number.\n\tif (version !== undefined && !VERSION_REGEX.test(version)) return false;\n\t// Check if the org is a valid SuiNS name.\n\tif (!isValidSuiNSName(org)) return false;\n\n\t// Check if the app is a valid name.\n\treturn NAME_PATTERN.test(app) && app.length < MAX_APP_SIZE;\n};\n\n/**\n * Checks if a type contains valid named packages and is a valid Move struct tag.\n */\nexport const isValidNamedType = (type: string): boolean => {\n\t// split our type by all possible type delimeters.\n\tconst splitType = type.split(/::|<|>|,/);\n\tfor (const t of splitType) {\n\t\tif (t.includes(NAME_SEPARATOR) && !isValidNamedPackage(t)) return false;\n\t}\n\treturn isValidStructTag(type);\n};\n"],"mappings":";;;;;AAOA,MAAM,eAAe;;AAErB,MAAM,gBAAgB;;AAEtB,MAAM,eAAe;;AAErB,MAAM,iBAAiB;AAEvB,MAAa,uBAAuB,SAA0B;CAC7D,MAAM,QAAQ,KAAK,MAAM,eAAe;AAExC,KAAI,MAAM,SAAS,KAAK,MAAM,SAAS,EAAG,QAAO;CAEjD,MAAM,CAAC,KAAK,KAAK,WAAW;AAG5B,KAAI,YAAY,UAAa,CAAC,cAAc,KAAK,QAAQ,CAAE,QAAO;AAElE,KAAI,CAAC,iBAAiB,IAAI,CAAE,QAAO;AAGnC,QAAO,aAAa,KAAK,IAAI,IAAI,IAAI,SAAS;;;;;AAM/C,MAAa,oBAAoB,SAA0B;CAE1D,MAAM,YAAY,KAAK,MAAM,WAAW;AACxC,MAAK,MAAM,KAAK,UACf,KAAI,EAAE,SAAS,eAAe,IAAI,CAAC,oBAAoB,EAAE,CAAE,QAAO;AAEnE,QAAO,iBAAiB,KAAK"}