@dbml/core 10.3.0-alpha.0 → 10.3.0-alpha.2
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/lib/export/DbmlExporter.cjs +13 -13
- package/lib/export/DbmlExporter.mjs +88 -84
- package/lib/export/MysqlExporter.cjs +8 -8
- package/lib/export/MysqlExporter.mjs +54 -50
- package/lib/export/OracleExporter.cjs +7 -7
- package/lib/export/OracleExporter.mjs +79 -74
- package/lib/export/PostgresExporter.cjs +9 -9
- package/lib/export/PostgresExporter.mjs +82 -78
- package/lib/export/SqlServerExporter.cjs +11 -11
- package/lib/export/SqlServerExporter.mjs +64 -60
- package/lib/model_structure/database.cjs +1 -1
- package/lib/model_structure/database.mjs +56 -53
- package/lib/model_structure/dep.cjs +1 -1
- package/lib/model_structure/dep.mjs +11 -9
- package/lib/model_structure/enum.cjs +1 -1
- package/lib/model_structure/enum.mjs +15 -13
- package/lib/model_structure/enumValue.cjs +1 -1
- package/lib/model_structure/enumValue.mjs +8 -6
- package/lib/model_structure/field.cjs +1 -1
- package/lib/model_structure/field.mjs +10 -8
- package/lib/model_structure/schema.cjs +1 -1
- package/lib/model_structure/schema.mjs +25 -23
- package/lib/model_structure/table.cjs +1 -1
- package/lib/model_structure/table.mjs +43 -40
- package/lib/model_structure/tableGroup.cjs +1 -1
- package/lib/model_structure/tableGroup.mjs +11 -9
- package/lib/model_structure/tablePartial.cjs +1 -1
- package/lib/model_structure/tablePartial.mjs +8 -6
- package/lib/node_modules/lodash-es/_DataView.cjs +1 -0
- package/lib/node_modules/lodash-es/_DataView.mjs +10 -0
- package/lib/node_modules/lodash-es/_Hash.cjs +1 -0
- package/lib/node_modules/lodash-es/_Hash.mjs +20 -0
- package/lib/node_modules/lodash-es/_ListCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_ListCache.mjs +20 -0
- package/lib/node_modules/lodash-es/_Map.cjs +1 -0
- package/lib/node_modules/lodash-es/_Map.mjs +10 -0
- package/lib/node_modules/lodash-es/_MapCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_MapCache.mjs +20 -0
- package/lib/node_modules/lodash-es/_Promise.cjs +1 -0
- package/lib/node_modules/lodash-es/_Promise.mjs +10 -0
- package/lib/node_modules/lodash-es/_Set.cjs +1 -0
- package/lib/node_modules/lodash-es/_Set.mjs +10 -0
- package/lib/node_modules/lodash-es/_SetCache.cjs +1 -0
- package/lib/node_modules/lodash-es/_SetCache.mjs +15 -0
- package/lib/node_modules/lodash-es/_Stack.cjs +1 -0
- package/lib/node_modules/lodash-es/_Stack.mjs +18 -0
- package/lib/node_modules/lodash-es/_Symbol.cjs +1 -0
- package/lib/node_modules/lodash-es/_Symbol.mjs +9 -0
- package/lib/node_modules/lodash-es/_Uint8Array.cjs +1 -0
- package/lib/node_modules/lodash-es/_Uint8Array.mjs +9 -0
- package/lib/node_modules/lodash-es/_WeakMap.cjs +1 -0
- package/lib/node_modules/lodash-es/_WeakMap.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayAggregator.mjs +13 -0
- package/lib/node_modules/lodash-es/_arrayEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayEach.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayFilter.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayFilter.mjs +13 -0
- package/lib/node_modules/lodash-es/_arrayLikeKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayLikeKeys.mjs +19 -0
- package/lib/node_modules/lodash-es/_arrayMap.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayMap.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayPush.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayPush.mjs +10 -0
- package/lib/node_modules/lodash-es/_arrayReduce.cjs +1 -0
- package/lib/node_modules/lodash-es/_arrayReduce.mjs +11 -0
- package/lib/node_modules/lodash-es/_arraySome.cjs +1 -0
- package/lib/node_modules/lodash-es/_arraySome.mjs +10 -0
- package/lib/node_modules/lodash-es/_asciiToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_asciiToArray.mjs +9 -0
- package/lib/node_modules/lodash-es/_assocIndexOf.cjs +1 -0
- package/lib/node_modules/lodash-es/_assocIndexOf.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseAggregator.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseAssignValue.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseAssignValue.mjs +17 -0
- package/lib/node_modules/lodash-es/_baseEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseEach.mjs +10 -0
- package/lib/node_modules/lodash-es/_baseFlatten.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseFlatten.mjs +18 -0
- package/lib/node_modules/lodash-es/_baseFor.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseFor.mjs +9 -0
- package/lib/node_modules/lodash-es/_baseForOwn.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseForOwn.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGet.mjs +15 -0
- package/lib/node_modules/lodash-es/_baseGetAllKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGetAllKeys.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseGetTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseGetTag.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseHasIn.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseHasIn.mjs +9 -0
- package/lib/node_modules/lodash-es/_baseIsArguments.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsArguments.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseIsEqual.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsEqual.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseIsEqualDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsEqualDeep.mjs +34 -0
- package/lib/node_modules/lodash-es/_baseIsMatch.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsMatch.mjs +30 -0
- package/lib/node_modules/lodash-es/_baseIsNative.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsNative.mjs +15 -0
- package/lib/node_modules/lodash-es/_baseIsTypedArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIsTypedArray.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseIteratee.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseIteratee.mjs +16 -0
- package/lib/node_modules/lodash-es/_baseKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseKeys.mjs +16 -0
- package/lib/node_modules/lodash-es/_baseMatches.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseMatches.mjs +17 -0
- package/lib/node_modules/lodash-es/_baseMatchesProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseMatchesProperty.mjs +21 -0
- package/lib/node_modules/lodash-es/_baseNth.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseNth.mjs +13 -0
- package/lib/node_modules/lodash-es/_baseProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseProperty.mjs +11 -0
- package/lib/node_modules/lodash-es/_basePropertyDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/_basePropertyDeep.mjs +14 -0
- package/lib/node_modules/lodash-es/_baseReduce.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseReduce.mjs +11 -0
- package/lib/node_modules/lodash-es/_baseSlice.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseSlice.mjs +12 -0
- package/lib/node_modules/lodash-es/_baseTimes.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseTimes.mjs +10 -0
- package/lib/node_modules/lodash-es/_baseToString.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseToString.mjs +19 -0
- package/lib/node_modules/lodash-es/_baseTrim.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseTrim.mjs +12 -0
- package/lib/node_modules/lodash-es/_baseUnary.cjs +1 -0
- package/lib/node_modules/lodash-es/_baseUnary.mjs +11 -0
- package/lib/node_modules/lodash-es/_cacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_cacheHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_castFunction.cjs +1 -0
- package/lib/node_modules/lodash-es/_castFunction.mjs +12 -0
- package/lib/node_modules/lodash-es/_castPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_castPath.mjs +15 -0
- package/lib/node_modules/lodash-es/_castSlice.cjs +1 -0
- package/lib/node_modules/lodash-es/_castSlice.mjs +13 -0
- package/lib/node_modules/lodash-es/_copyArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_copyArray.mjs +11 -0
- package/lib/node_modules/lodash-es/_coreJsData.cjs +1 -0
- package/lib/node_modules/lodash-es/_coreJsData.mjs +9 -0
- package/lib/node_modules/lodash-es/_createAggregator.cjs +1 -0
- package/lib/node_modules/lodash-es/_createAggregator.mjs +18 -0
- package/lib/node_modules/lodash-es/_createBaseEach.cjs +1 -0
- package/lib/node_modules/lodash-es/_createBaseEach.mjs +17 -0
- package/lib/node_modules/lodash-es/_createBaseFor.cjs +1 -0
- package/lib/node_modules/lodash-es/_createBaseFor.mjs +15 -0
- package/lib/node_modules/lodash-es/_createCaseFirst.cjs +1 -0
- package/lib/node_modules/lodash-es/_createCaseFirst.mjs +19 -0
- package/lib/node_modules/lodash-es/_defineProperty.cjs +1 -0
- package/lib/node_modules/lodash-es/_defineProperty.mjs +14 -0
- package/lib/node_modules/lodash-es/_equalArrays.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalArrays.mjs +39 -0
- package/lib/node_modules/lodash-es/_equalByTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalByTag.mjs +39 -0
- package/lib/node_modules/lodash-es/_equalObjects.cjs +1 -0
- package/lib/node_modules/lodash-es/_equalObjects.mjs +36 -0
- package/lib/node_modules/lodash-es/_freeGlobal.cjs +1 -0
- package/lib/node_modules/lodash-es/_freeGlobal.mjs +8 -0
- package/lib/node_modules/lodash-es/_getAllKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_getAllKeys.mjs +14 -0
- package/lib/node_modules/lodash-es/_getMapData.cjs +1 -0
- package/lib/node_modules/lodash-es/_getMapData.mjs +13 -0
- package/lib/node_modules/lodash-es/_getMatchData.cjs +1 -0
- package/lib/node_modules/lodash-es/_getMatchData.mjs +21 -0
- package/lib/node_modules/lodash-es/_getNative.cjs +1 -0
- package/lib/node_modules/lodash-es/_getNative.mjs +14 -0
- package/lib/node_modules/lodash-es/_getRawTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_getRawTag.mjs +18 -0
- package/lib/node_modules/lodash-es/_getSymbols.cjs +1 -0
- package/lib/node_modules/lodash-es/_getSymbols.mjs +14 -0
- package/lib/node_modules/lodash-es/_getTag.cjs +1 -0
- package/lib/node_modules/lodash-es/_getTag.mjs +25 -0
- package/lib/node_modules/lodash-es/_getValue.cjs +1 -0
- package/lib/node_modules/lodash-es/_getValue.mjs +9 -0
- package/lib/node_modules/lodash-es/_hasPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_hasPath.mjs +23 -0
- package/lib/node_modules/lodash-es/_hasUnicode.cjs +1 -0
- package/lib/node_modules/lodash-es/_hasUnicode.mjs +11 -0
- package/lib/node_modules/lodash-es/_hashClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashClear.mjs +12 -0
- package/lib/node_modules/lodash-es/_hashDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashDelete.mjs +10 -0
- package/lib/node_modules/lodash-es/_hashGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashGet.mjs +17 -0
- package/lib/node_modules/lodash-es/_hashHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashHas.mjs +13 -0
- package/lib/node_modules/lodash-es/_hashSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_hashSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_isFlattenable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isFlattenable.mjs +14 -0
- package/lib/node_modules/lodash-es/_isIndex.cjs +1 -0
- package/lib/node_modules/lodash-es/_isIndex.mjs +12 -0
- package/lib/node_modules/lodash-es/_isKey.cjs +1 -0
- package/lib/node_modules/lodash-es/_isKey.mjs +15 -0
- package/lib/node_modules/lodash-es/_isKeyable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isKeyable.mjs +10 -0
- package/lib/node_modules/lodash-es/_isMasked.cjs +1 -0
- package/lib/node_modules/lodash-es/_isMasked.mjs +15 -0
- package/lib/node_modules/lodash-es/_isPrototype.cjs +1 -0
- package/lib/node_modules/lodash-es/_isPrototype.mjs +12 -0
- package/lib/node_modules/lodash-es/_isStrictComparable.cjs +1 -0
- package/lib/node_modules/lodash-es/_isStrictComparable.mjs +12 -0
- package/lib/node_modules/lodash-es/_listCacheClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheClear.mjs +9 -0
- package/lib/node_modules/lodash-es/_listCacheDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheDelete.mjs +13 -0
- package/lib/node_modules/lodash-es/_listCacheGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheGet.mjs +13 -0
- package/lib/node_modules/lodash-es/_listCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheHas.mjs +12 -0
- package/lib/node_modules/lodash-es/_listCacheSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_listCacheSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapCacheClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheClear.mjs +18 -0
- package/lib/node_modules/lodash-es/_mapCacheDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheDelete.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapCacheGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheGet.mjs +12 -0
- package/lib/node_modules/lodash-es/_mapCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheHas.mjs +12 -0
- package/lib/node_modules/lodash-es/_mapCacheSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapCacheSet.mjs +13 -0
- package/lib/node_modules/lodash-es/_mapToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_mapToArray.mjs +12 -0
- package/lib/node_modules/lodash-es/_matchesStrictComparable.cjs +1 -0
- package/lib/node_modules/lodash-es/_matchesStrictComparable.mjs +11 -0
- package/lib/node_modules/lodash-es/_memoizeCapped.cjs +1 -0
- package/lib/node_modules/lodash-es/_memoizeCapped.mjs +15 -0
- package/lib/node_modules/lodash-es/_nativeCreate.cjs +1 -0
- package/lib/node_modules/lodash-es/_nativeCreate.mjs +9 -0
- package/lib/node_modules/lodash-es/_nativeKeys.cjs +1 -0
- package/lib/node_modules/lodash-es/_nativeKeys.mjs +9 -0
- package/lib/node_modules/lodash-es/_nodeUtil.cjs +1 -0
- package/lib/node_modules/lodash-es/_nodeUtil.mjs +13 -0
- package/lib/node_modules/lodash-es/_objectToString.cjs +1 -0
- package/lib/node_modules/lodash-es/_objectToString.mjs +11 -0
- package/lib/node_modules/lodash-es/_overArg.cjs +1 -0
- package/lib/node_modules/lodash-es/_overArg.mjs +11 -0
- package/lib/node_modules/lodash-es/_root.cjs +1 -0
- package/lib/node_modules/lodash-es/_root.mjs +9 -0
- package/lib/node_modules/lodash-es/_setCacheAdd.cjs +1 -0
- package/lib/node_modules/lodash-es/_setCacheAdd.mjs +11 -0
- package/lib/node_modules/lodash-es/_setCacheHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_setCacheHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_setToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_setToArray.mjs +12 -0
- package/lib/node_modules/lodash-es/_stackClear.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackClear.mjs +12 -0
- package/lib/node_modules/lodash-es/_stackDelete.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackDelete.mjs +10 -0
- package/lib/node_modules/lodash-es/_stackGet.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackGet.mjs +9 -0
- package/lib/node_modules/lodash-es/_stackHas.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackHas.mjs +9 -0
- package/lib/node_modules/lodash-es/_stackSet.cjs +1 -0
- package/lib/node_modules/lodash-es/_stackSet.mjs +20 -0
- package/lib/node_modules/lodash-es/_stringToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_stringToArray.mjs +14 -0
- package/lib/node_modules/lodash-es/_stringToPath.cjs +1 -0
- package/lib/node_modules/lodash-es/_stringToPath.mjs +14 -0
- package/lib/node_modules/lodash-es/_toKey.cjs +1 -0
- package/lib/node_modules/lodash-es/_toKey.mjs +14 -0
- package/lib/node_modules/lodash-es/_toSource.cjs +1 -0
- package/lib/node_modules/lodash-es/_toSource.mjs +19 -0
- package/lib/node_modules/lodash-es/_trimmedEndIndex.cjs +1 -0
- package/lib/node_modules/lodash-es/_trimmedEndIndex.mjs +12 -0
- package/lib/node_modules/lodash-es/_unicodeToArray.cjs +1 -0
- package/lib/node_modules/lodash-es/_unicodeToArray.mjs +21 -0
- package/lib/node_modules/lodash-es/capitalize.cjs +1 -0
- package/lib/node_modules/lodash-es/capitalize.mjs +13 -0
- package/lib/node_modules/lodash-es/concat.cjs +1 -0
- package/lib/node_modules/lodash-es/concat.mjs +18 -0
- package/lib/node_modules/lodash-es/eq.cjs +1 -0
- package/lib/node_modules/lodash-es/eq.mjs +9 -0
- package/lib/node_modules/lodash-es/first.cjs +1 -0
- package/lib/node_modules/lodash-es/first.mjs +9 -0
- package/lib/node_modules/lodash-es/flatten.cjs +1 -0
- package/lib/node_modules/lodash-es/flatten.mjs +12 -0
- package/lib/node_modules/lodash-es/flattenDeep.cjs +1 -0
- package/lib/node_modules/lodash-es/flattenDeep.mjs +12 -0
- package/lib/node_modules/lodash-es/flattenDepth.cjs +1 -0
- package/lib/node_modules/lodash-es/flattenDepth.mjs +13 -0
- package/lib/node_modules/lodash-es/forEach.cjs +1 -0
- package/lib/node_modules/lodash-es/forEach.mjs +15 -0
- package/lib/node_modules/lodash-es/get.cjs +1 -0
- package/lib/node_modules/lodash-es/get.mjs +13 -0
- package/lib/node_modules/lodash-es/groupBy.cjs +1 -0
- package/lib/node_modules/lodash-es/groupBy.mjs +12 -0
- package/lib/node_modules/lodash-es/hasIn.cjs +1 -0
- package/lib/node_modules/lodash-es/hasIn.mjs +13 -0
- package/lib/node_modules/lodash-es/head.cjs +1 -0
- package/lib/node_modules/lodash-es/head.mjs +9 -0
- package/lib/node_modules/lodash-es/identity.cjs +1 -0
- package/lib/node_modules/lodash-es/identity.mjs +9 -0
- package/lib/node_modules/lodash-es/isArguments.cjs +1 -0
- package/lib/node_modules/lodash-es/isArguments.mjs +14 -0
- package/lib/node_modules/lodash-es/isArray.cjs +1 -0
- package/lib/node_modules/lodash-es/isArray.mjs +8 -0
- package/lib/node_modules/lodash-es/isArrayLike.cjs +1 -0
- package/lib/node_modules/lodash-es/isArrayLike.mjs +13 -0
- package/lib/node_modules/lodash-es/isBuffer.cjs +1 -0
- package/lib/node_modules/lodash-es/isBuffer.mjs +10 -0
- package/lib/node_modules/lodash-es/isEmpty.cjs +1 -0
- package/lib/node_modules/lodash-es/isEmpty.mjs +25 -0
- package/lib/node_modules/lodash-es/isFunction.cjs +1 -0
- package/lib/node_modules/lodash-es/isFunction.mjs +15 -0
- package/lib/node_modules/lodash-es/isLength.cjs +1 -0
- package/lib/node_modules/lodash-es/isLength.mjs +11 -0
- package/lib/node_modules/lodash-es/isNil.cjs +1 -0
- package/lib/node_modules/lodash-es/isNil.mjs +9 -0
- package/lib/node_modules/lodash-es/isObject.cjs +1 -0
- package/lib/node_modules/lodash-es/isObject.mjs +10 -0
- package/lib/node_modules/lodash-es/isObjectLike.cjs +1 -0
- package/lib/node_modules/lodash-es/isObjectLike.mjs +9 -0
- package/lib/node_modules/lodash-es/isSymbol.cjs +1 -0
- package/lib/node_modules/lodash-es/isSymbol.mjs +13 -0
- package/lib/node_modules/lodash-es/isTypedArray.cjs +1 -0
- package/lib/node_modules/lodash-es/isTypedArray.mjs +11 -0
- package/lib/node_modules/lodash-es/keys.cjs +1 -0
- package/lib/node_modules/lodash-es/keys.mjs +14 -0
- package/lib/node_modules/lodash-es/last.cjs +1 -0
- package/lib/node_modules/lodash-es/last.mjs +10 -0
- package/lib/node_modules/lodash-es/lodash.cjs +1 -0
- package/lib/node_modules/lodash-es/lodash.mjs +46 -0
- package/lib/node_modules/lodash-es/memoize.cjs +1 -0
- package/lib/node_modules/lodash-es/memoize.mjs +19 -0
- package/lib/node_modules/lodash-es/nth.cjs +1 -0
- package/lib/node_modules/lodash-es/nth.mjs +13 -0
- package/lib/node_modules/lodash-es/property.cjs +1 -0
- package/lib/node_modules/lodash-es/property.mjs +15 -0
- package/lib/node_modules/lodash-es/reduce.cjs +1 -0
- package/lib/node_modules/lodash-es/reduce.mjs +17 -0
- package/lib/node_modules/lodash-es/stubArray.cjs +1 -0
- package/lib/node_modules/lodash-es/stubArray.mjs +9 -0
- package/lib/node_modules/lodash-es/stubFalse.cjs +1 -0
- package/lib/node_modules/lodash-es/stubFalse.mjs +9 -0
- package/lib/node_modules/lodash-es/toFinite.cjs +1 -0
- package/lib/node_modules/lodash-es/toFinite.mjs +12 -0
- package/lib/node_modules/lodash-es/toInteger.cjs +1 -0
- package/lib/node_modules/lodash-es/toInteger.mjs +13 -0
- package/lib/node_modules/lodash-es/toNumber.cjs +1 -0
- package/lib/node_modules/lodash-es/toNumber.mjs +23 -0
- package/lib/node_modules/lodash-es/toString.cjs +1 -0
- package/lib/node_modules/lodash-es/toString.mjs +12 -0
- package/lib/node_modules/lodash-es/upperFirst.cjs +1 -0
- package/lib/node_modules/lodash-es/upperFirst.mjs +9 -0
- package/lib/node_modules/parsimmon/build/parsimmon.umd.min.cjs +16 -0
- package/lib/node_modules/parsimmon/build/parsimmon.umd.min.mjs +689 -0
- package/lib/node_modules/pluralize/pluralize.cjs +1 -0
- package/lib/node_modules/pluralize/pluralize.mjs +276 -0
- package/lib/packages/dbml-core/node_modules/lodash/lodash.cjs +20 -0
- package/lib/packages/dbml-core/node_modules/lodash/lodash.mjs +3306 -0
- package/lib/packages/dbml-core/package.json.cjs +1 -0
- package/lib/{package.json.mjs → packages/dbml-core/package.json.mjs} +1 -1
- package/lib/parse/ANTLR/ASTGeneration/helpers.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/helpers.mjs +5 -3
- package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/mssql/MssqlASTGen.mjs +149 -143
- package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/mysql/MySQLASTGen.mjs +146 -142
- package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/oraclesql/OracleSQLASTGen.mjs +184 -181
- package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/postgres/PostgresASTGen.mjs +149 -145
- package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.cjs +1 -1
- package/lib/parse/ANTLR/ASTGeneration/snowflake/SnowflakeASTGen.mjs +89 -85
- package/lib/parse/deprecated/dbmlParser.cjs +3 -3
- package/lib/parse/deprecated/dbmlParser.mjs +27 -25
- package/lib/parse/deprecated/mssql/base_parsers.cjs +1 -1
- package/lib/parse/deprecated/mssql/base_parsers.mjs +38 -38
- package/lib/parse/deprecated/mssql/column_definition/actions.cjs +1 -1
- package/lib/parse/deprecated/mssql/column_definition/actions.mjs +9 -6
- package/lib/parse/deprecated/mssql/column_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/column_definition/index.mjs +28 -28
- package/lib/parse/deprecated/mssql/constraint_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/constraint_definition/index.mjs +24 -24
- package/lib/parse/deprecated/mssql/expression.cjs +1 -1
- package/lib/parse/deprecated/mssql/expression.mjs +28 -27
- package/lib/parse/deprecated/mssql/fk_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/fk_definition/index.mjs +20 -20
- package/lib/parse/deprecated/mssql/index_definition/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/index_definition/index.mjs +21 -21
- package/lib/parse/deprecated/mssql/keyword_utils.cjs +1 -1
- package/lib/parse/deprecated/mssql/keyword_utils.mjs +13 -13
- package/lib/parse/deprecated/mssql/statements/actions.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/actions.mjs +36 -33
- package/lib/parse/deprecated/mssql/statements/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/index.mjs +28 -28
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/add/index.mjs +24 -24
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/alter_table/index.mjs +16 -16
- package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/comments/index.mjs +31 -31
- package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/create_index/index.mjs +20 -20
- package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.cjs +1 -1
- package/lib/parse/deprecated/mssql/statements/statement_types/create_table/index.mjs +21 -21
- package/lib/parse/deprecated/mssql/utils.cjs +1 -1
- package/lib/parse/deprecated/mssql/utils.mjs +21 -20
- package/lib/parse/deprecated/mssql/whitespaces.cjs +1 -1
- package/lib/parse/deprecated/mssql/whitespaces.mjs +11 -11
- package/lib/parse/deprecated/mysqlParser.cjs +6 -6
- package/lib/parse/deprecated/mysqlParser.mjs +20 -18
- package/lib/parse/deprecated/postgresParser.cjs +2 -2
- package/lib/parse/deprecated/postgresParser.mjs +25 -23
- package/lib/parse/deprecated/schemarbParser.cjs +10 -10
- package/lib/parse/deprecated/schemarbParser.mjs +313 -311
- package/lib/utils/version.cjs +1 -1
- package/lib/utils/version.mjs +1 -1
- package/package.json +2 -2
- package/lib/package.json.cjs +0 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs"),require("../model_structure/config.cjs");const
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/groupBy.cjs"),t=require("../node_modules/lodash-es/isEmpty.cjs"),n=require("../node_modules/lodash-es/reduce.cjs"),r=require("../node_modules/lodash-es/lodash.cjs");require("../model_structure/config.cjs");const i=require("./utils.cjs");let a=require("@dbml/parse");r.init_lodash();var o=class r{static hasWhiteSpace(e){return/\s/g.test(e)}static hasSquareBracket(e){return/\[|\]/.test(e)}static isExpression(e){return/\s*(\*|\+|-|\([A-Za-z0-9_]+\)|\(\))/g.test(e)}static escapeNote(e){if(e===null)return``;let t=e.replaceAll(`\\`,`\\\\`);return t.match(/[\n\r']/)?(t=t.replaceAll(`'`,`\\'`),t=t.replaceAll(`\r
|
|
2
2
|
`,`
|
|
3
|
-
`),`'''${t}'''`):`'${t}'`}static exportEnums(t
|
|
4
|
-
`)}\n}\n`});return
|
|
3
|
+
`),`'''${t}'''`):`'${t}'`}static exportEnums(e,t){let n=e.map(e=>{let n=t.enums[e],a=t.schemas[n.schemaId];return`Enum ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${n.name}" {\n${n.valueIds.map(e=>` "${t.enumValues[e].name}"${t.enumValues[e].note?` [note: ${r.escapeNote(t.enumValues[e].note)}]`:``}`).join(`
|
|
4
|
+
`)}\n}\n`});return n.length?n.join(`
|
|
5
5
|
`):``}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],i=``;n.type.schemaName&&n.type.schemaName!==`public`&&(i=r.hasWhiteSpace(n.type.schemaName)?`"${n.type.schemaName}".`:`${n.type.schemaName}.`);let a=`"${n.name}" ${i}${r.hasWhiteSpace(n.type.type_name)||r.hasSquareBracket(n.type.type_name)?`"${n.type.type_name}"`:n.type.type_name}`,o=[];if(n.unique&&o.push(`unique`),n.pk&&o.push(`pk`),n.not_null&&o.push(`not null`),n.increment&&o.push(`increment`),n.checkIds&&o.push(...n.checkIds.map(e=>`check: \`${t.checks[e].expression}\``)),n.dbdefault&&!(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`))){let e=`default: `;switch(n.dbdefault.type){case`boolean`:case`number`:e+=`${n.dbdefault.value}`;break;case`string`:{let t=String(n.dbdefault.value),r=t.includes(`
|
|
6
|
-
`)?`'''`:`'`;e+=`${r}${t}${r}`;break}case`expression`:e+=`\`${n.dbdefault.value}\``;break;default:e+=`\`${n.dbdefault.value}\``;break}o.push(e)}return n.note&&o.push(`note: ${r.escapeNote(n.note)}`),o.length>0&&(a+=` [${o.join(`, `)}]`),a})}static getIndexLines(e,t){return t.tables[e].indexIds.map(e=>{let n=``,r=t.indexes[e];if(r.columnIds.length>1)n=`(${r.columnIds.map(e=>{let n=t.indexColumns[e];return n.type===`expression`?`\`${n.value}\``:n.value}).join(`, `)})`;else if(r.columnIds.length===1){let e=t.indexColumns[r.columnIds[0]];n=e.type===`expression`?`\`${e.value}\``:e.value}let i=[];return r.pk&&i.push(`pk`),r.type&&i.push(`type: ${r.type.toLowerCase()}`),r.unique&&i.push(`unique`),r.name&&i.push(`name: "${r.name}"`),i.length>1?n+=` [${i.join(`, `)}]`:i.length===1&&(n+=` [${i[0]}]`),n})}static getCheckLines(e,t){return t.tables[e].checkIds.map(e=>{let n=``,{expression:r,name:i}=t.checks[e];return n+=`\`${r}\``,i&&(n+=` [name: '${i}']`),n})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),indexContents:r.getIndexLines(e,t)}))}static getTableSettings(e){let t=``;return e.headerColor&&(t+=`headerColor: ${e.headerColor}, `),t.endsWith(`, `)&&(t=t.replace(/,\s$/,``)),t?` [${t}]`:``}static exportTables(
|
|
7
|
-
`):``}static buildFieldName(e,t){let n=e.map(e=>`"${t.fields[e].name}"`).join(`, `);return e.length===1?n:`(${n})`}static exportRefs(t
|
|
8
|
-
`,h});return
|
|
9
|
-
`):``}static getTableGroupSettings(e){let t=[];return e.color&&t.push(`color: ${e.color}`),t.length?` [${t.join(`, `)}]`:``}static formatDepEndpoint(e){let t=e.schemaName?`"${e.schemaName}".`:``,n=`"${e.tableName}"`;return!e.fieldNames||e.fieldNames.length===0?`${t}${n}`:`${t}${n}.${e.fieldNames.length===1?`"${e.fieldNames[0]}"`:`(${e.fieldNames.map(e=>`"${e}"`).join(`, `)})`}`}static formatDepCustomValue(e){return typeof e==`string`?`'${(0,
|
|
6
|
+
`)?`'''`:`'`;e+=`${r}${t}${r}`;break}case`expression`:e+=`\`${n.dbdefault.value}\``;break;default:e+=`\`${n.dbdefault.value}\``;break}o.push(e)}return n.note&&o.push(`note: ${r.escapeNote(n.note)}`),o.length>0&&(a+=` [${o.join(`, `)}]`),a})}static getIndexLines(e,t){return t.tables[e].indexIds.map(e=>{let n=``,r=t.indexes[e];if(r.columnIds.length>1)n=`(${r.columnIds.map(e=>{let n=t.indexColumns[e];return n.type===`expression`?`\`${n.value}\``:n.value}).join(`, `)})`;else if(r.columnIds.length===1){let e=t.indexColumns[r.columnIds[0]];n=e.type===`expression`?`\`${e.value}\``:e.value}let i=[];return r.pk&&i.push(`pk`),r.type&&i.push(`type: ${r.type.toLowerCase()}`),r.unique&&i.push(`unique`),r.name&&i.push(`name: "${r.name}"`),i.length>1?n+=` [${i.join(`, `)}]`:i.length===1&&(n+=` [${i[0]}]`),n})}static getCheckLines(e,t){return t.tables[e].checkIds.map(e=>{let n=``,{expression:r,name:i}=t.checks[e];return n+=`\`${r}\``,i&&(n+=` [name: '${i}']`),n})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),indexContents:r.getIndexLines(e,t)}))}static getTableSettings(e){let t=``;return e.headerColor&&(t+=`headerColor: ${e.headerColor}, `),t.endsWith(`, `)&&(t=t.replace(/,\s$/,``)),t?` [${t}]`:``}static exportTables(e,n){let o=r.getTableContentArr(e,n).map(e=>{let o=n.tables[e.tableId],s=n.schemas[o.schemaId],c=r.getTableSettings(o),l=`"${o.name}"`;i.shouldPrintSchema(s,n)&&(l=`"${s.name}"."${o.name}"`);let u=o.alias?` as ${(0,a.addDoubleQuoteIfNeeded)(o.alias)}`:``,d=e.fieldContents.map(e=>` ${e}\n`).join(``),f=``;t.default(e.checkContents)||(f=`\n Checks {\n${e.checkContents.map(e=>` ${e}\n`).join(``)} }\n`);let p=``;t.default(e.indexContents)||(p=`\n Indexes {\n${e.indexContents.map(e=>` ${e}\n`).join(``)} }\n`);let m=o.note?` Note: ${r.escapeNote(o.note)}\n`:``;return`Table ${l}${u}${c} {\n${d}${f}${p}${m}}\n`});return o.length?o.join(`
|
|
7
|
+
`):``}static buildFieldName(e,t){let n=e.map(e=>`"${t.fields[e].name}"`).join(`, `);return e.length===1?n:`(${n})`}static exportRefs(e,t){let n=e.map(e=>{let n=t.refs[e],o=n.endpointIds.findIndex(e=>(0,a.parseCardinality)(t.endpoints[e].relation).max===1),s=o===-1?0:o,c=t.endpoints[n.endpointIds[s]],l=t.endpoints[n.endpointIds[1-s]],u=(0,a.getRelationshipOp)(c.relation,l.relation),d=t.fields[c.fieldIds[0]],f=t.tables[d.tableId],p=t.schemas[f.schemaId],m=r.buildFieldName(c.fieldIds,t),h=`Ref`;n.name&&(h+=` ${i.shouldPrintSchema(t.schemas[n.schemaId],t)?`"${t.schemas[n.schemaId].name}".`:``}"${n.name}"`),h+=`:`,h+=`${i.shouldPrintSchema(p,t)?`"${p.name}".`:``}"${f.name}".${m} `;let g=t.fields[l.fieldIds[0]],_=t.tables[g.tableId],v=t.schemas[_.schemaId],y=r.buildFieldName(l.fieldIds,t);h+=`${u} `,h+=`${i.shouldPrintSchema(v,t)?`"${v.name}".`:``}"${_.name}".${y}`;let b=[];return n.onUpdate&&b.push(`update: ${n.onUpdate.toLowerCase()}`),n.onDelete&&b.push(`delete: ${n.onDelete.toLowerCase()}`),n.inactive&&b.push(`inactive`),b.length>0&&(h+=` [${b.join(`, `)}]`),h+=`
|
|
8
|
+
`,h});return n.length?n.join(`
|
|
9
|
+
`):``}static getTableGroupSettings(e){let t=[];return e.color&&t.push(`color: ${e.color}`),t.length?` [${t.join(`, `)}]`:``}static formatDepEndpoint(e){let t=e.schemaName?`"${e.schemaName}".`:``,n=`"${e.tableName}"`;return!e.fieldNames||e.fieldNames.length===0?`${t}${n}`:`${t}${n}.${e.fieldNames.length===1?`"${e.fieldNames[0]}"`:`(${e.fieldNames.map(e=>`"${e}"`).join(`, `)})`}`}static formatDepCustomValue(e){return typeof e==`string`?`'${(0,a.escapeString)(e)}'`:e==null?`null`:String(e)}static exportDeps(e,t){let n=e.map(e=>{let n=t.deps[e],i=n.edgeIds.map(e=>t.depEdges[e]),a=!!n.note,o=n.metadata?Object.entries(n.metadata):[],s=a||o.length>0;if(i.length===1&&!s)return`Dep: ${r.formatDepEndpoint(i[0].upstream)} -> ${r.formatDepEndpoint(i[0].downstream)}\n`;let c=`Dep {
|
|
10
10
|
`;return i.forEach(e=>{c+=` ${r.formatDepEndpoint(e.upstream)} -> ${r.formatDepEndpoint(e.downstream)}\n`}),s&&(c+=`
|
|
11
11
|
`,a&&(c+=` note: ${r.escapeNote(n.note)}\n`),o.forEach(([e,t])=>{c+=` ${e}: ${r.formatDepCustomValue(t)}\n`})),c+=`}
|
|
12
12
|
`,c});return n.length?n.join(`
|
|
13
|
-
`):``}static exportTableGroups(t
|
|
14
|
-
`):``}static getStickyNoteSettings(e){let t=``;return e.color&&(t+=`color: ${e.color}`),t?` [${t}]`:``}static exportStickyNotes(e){return
|
|
13
|
+
`):``}static exportTableGroups(e,t){let n=e.map(e=>{let n=t.tableGroups[e],a=r.getTableGroupSettings(n),o=n.note?` Note: ${r.escapeNote(n.note)}\n`:``;return`TableGroup ${`"${n.name}"`}${a} {\n${n.tableIds.reduce((e,n)=>{let r=t.tables[n],a=t.schemas[r.schemaId];return`${e}${` ${i.shouldPrintSchema(a,t)?`"${a.name}".`:``}"${r.name}"`}\n`},``)}${o}}\n`});return n.length?n.join(`
|
|
14
|
+
`):``}static getStickyNoteSettings(e){let t=``;return e.color&&(t+=`color: ${e.color}`),t?` [${t}]`:``}static exportStickyNotes(e){return n.default(e.notes,(e,t)=>{let n=` ${r.escapeNote(t.content)}`,i=r.getStickyNoteSettings(t),a=`Note ${t.name}${i} {\n${n}\n}\n`;return e?`${e}\n${a}`:a},``)}static exportRecords(n){let{records:r}=n;if(!r||t.default(r))return``;let i=e.default(Object.values(r),e=>`${e.schemaName||``}.${e.tableName}`);return Object.values(i).map(e=>{let{schemaName:t,tableName:n}=e[0],r=t?(0,a.normalizeQualifiedName)(t,n):(0,a.addDoubleQuoteIfNeeded)(n),i=[...new Set(e.flatMap(e=>e.columns))],o=i.map(a.addDoubleQuoteIfNeeded).join(`, `),s=e.flatMap(e=>{let t=i.map(t=>e.columns.indexOf(t));return e.values.map(e=>t.map(t=>t===-1?{value:null,type:`expression`}:e[t]))}).map(e=>` ${e.map(a.formatRecordValue).join(`, `)}`);return`Records ${r}(${o})${e.some(e=>e.example)?` [example]`:``} {\n${s.join(`
|
|
15
15
|
`)}\n}\n`}).join(`
|
|
16
|
-
`)}static exportMetadata(
|
|
17
|
-
`)}\n}\n`;return a.schemaIds.forEach(r=>{let{tableIds:a,tableGroupIds:s}=
|
|
18
|
-
`)}static export(e,n){let i=[],a=e.database[1],{includeRecords:o}=n;a.schemaIds.forEach(n=>{let{enumIds:a,tableIds:o,tableGroupIds:s,refIds:c,depIds:l}=e.schemas[n];
|
|
19
|
-
`)}};exports.default=
|
|
16
|
+
`)}static exportMetadata(e){let n=[],a=e.database[1],o=(e,t)=>`Metadata ${e} {\n${Object.entries(t).map(([e,t])=>` ${e}: ${r.escapeNote(t)}`).join(`
|
|
17
|
+
`)}\n}\n`;return a.schemaIds.forEach(r=>{let{tableIds:a,tableGroupIds:s}=e.schemas[r];a.forEach(r=>{let a=e.tables[r],s=e.schemas[a.schemaId],c=i.shouldPrintSchema(s,e)?`"${s.name}".`:``;t.default(a.metadata)||n.push(o(`Table ${c}"${a.name}"`,a.metadata)),a.fieldIds.map(t=>e.fields[t]).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`Column ${c}"${a.name}"."${e.name}"`,e.metadata)))}),s.map(t=>e.tableGroups[t]).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`TableGroup "${e.name}"`,e.metadata)))}),Object.values(e.notes).filter(e=>!t.default(e.metadata)).forEach(e=>n.push(o(`Note ${e.name}`,e.metadata))),n.join(`
|
|
18
|
+
`)}static export(e,n){let i=[],a=e.database[1],{includeRecords:o}=n;a.schemaIds.forEach(n=>{let{enumIds:a,tableIds:o,tableGroupIds:s,refIds:c,depIds:l}=e.schemas[n];t.default(a)||i.push(r.exportEnums(a,e)),t.default(o)||i.push(r.exportTables(o,e)),t.default(s)||i.push(r.exportTableGroups(s,e)),t.default(c)||i.push(r.exportRefs(c,e)),t.default(l)||i.push(r.exportDeps(l,e))}),t.default(e.notes)||i.push(r.exportStickyNotes(e)),o&&!t.default(e.records)&&i.push(r.exportRecords(e));let s=r.exportMetadata(e);return s&&i.push(s),i.join(`
|
|
19
|
+
`)}};exports.default=o;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import e from "../node_modules/lodash-es/groupBy.mjs";
|
|
2
|
+
import t from "../node_modules/lodash-es/isEmpty.mjs";
|
|
3
|
+
import n from "../node_modules/lodash-es/reduce.mjs";
|
|
4
|
+
import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
|
|
1
5
|
import "../model_structure/config.mjs";
|
|
2
|
-
import { shouldPrintSchema as
|
|
3
|
-
import {
|
|
4
|
-
import { addDoubleQuoteIfNeeded as i, escapeString as a, formatRecordValue as o, getRelationshipOp as s, normalizeQualifiedName as c, parseCardinality as l } from "@dbml/parse";
|
|
6
|
+
import { shouldPrintSchema as i } from "./utils.mjs";
|
|
7
|
+
import { addDoubleQuoteIfNeeded as a, escapeString as o, formatRecordValue as s, getRelationshipOp as c, normalizeQualifiedName as l, parseCardinality as u } from "@dbml/parse";
|
|
5
8
|
//#region src/export/DbmlExporter.ts
|
|
6
|
-
|
|
9
|
+
r();
|
|
10
|
+
var d = class r {
|
|
7
11
|
static hasWhiteSpace(e) {
|
|
8
12
|
return /\s/g.test(e);
|
|
9
13
|
}
|
|
@@ -18,19 +22,19 @@ var u = class u {
|
|
|
18
22
|
let t = e.replaceAll("\\", "\\\\");
|
|
19
23
|
return t.match(/[\n\r']/) ? (t = t.replaceAll("'", "\\'"), t = t.replaceAll("\r\n", "\n"), `'''${t}'''`) : `'${t}'`;
|
|
20
24
|
}
|
|
21
|
-
static exportEnums(
|
|
22
|
-
let
|
|
23
|
-
let
|
|
24
|
-
return `Enum ${
|
|
25
|
+
static exportEnums(e, t) {
|
|
26
|
+
let n = e.map((e) => {
|
|
27
|
+
let n = t.enums[e], a = t.schemas[n.schemaId];
|
|
28
|
+
return `Enum ${i(a, t) ? `"${a.name}".` : ""}"${n.name}" {\n${n.valueIds.map((e) => ` "${t.enumValues[e].name}"${t.enumValues[e].note ? ` [note: ${r.escapeNote(t.enumValues[e].note)}]` : ""}`).join("\n")}\n}\n`;
|
|
25
29
|
});
|
|
26
|
-
return
|
|
30
|
+
return n.length ? n.join("\n") : "";
|
|
27
31
|
}
|
|
28
32
|
static getFieldLines(e, t) {
|
|
29
33
|
return t.tables[e].fieldIds.map((e) => {
|
|
30
|
-
let n = t.fields[e],
|
|
31
|
-
n.type.schemaName && n.type.schemaName !== "public" && (
|
|
32
|
-
let
|
|
33
|
-
if (n.unique &&
|
|
34
|
+
let n = t.fields[e], i = "";
|
|
35
|
+
n.type.schemaName && n.type.schemaName !== "public" && (i = r.hasWhiteSpace(n.type.schemaName) ? `"${n.type.schemaName}".` : `${n.type.schemaName}.`);
|
|
36
|
+
let a = `"${n.name}" ${i}${r.hasWhiteSpace(n.type.type_name) || r.hasSquareBracket(n.type.type_name) ? `"${n.type.type_name}"` : n.type.type_name}`, o = [];
|
|
37
|
+
if (n.unique && o.push("unique"), n.pk && o.push("pk"), n.not_null && o.push("not null"), n.increment && o.push("increment"), n.checkIds && o.push(...n.checkIds.map((e) => `check: \`${t.checks[e].expression}\``)), n.dbdefault && !(n.dbdefault.type === "boolean" && (n.dbdefault.value === null || typeof n.dbdefault.value == "string" && n.dbdefault.value.toLowerCase() === "null"))) {
|
|
34
38
|
let e = "default: ";
|
|
35
39
|
switch (n.dbdefault.type) {
|
|
36
40
|
case "boolean":
|
|
@@ -49,9 +53,9 @@ var u = class u {
|
|
|
49
53
|
e += `\`${n.dbdefault.value}\``;
|
|
50
54
|
break;
|
|
51
55
|
}
|
|
52
|
-
|
|
56
|
+
o.push(e);
|
|
53
57
|
}
|
|
54
|
-
return n.note &&
|
|
58
|
+
return n.note && o.push(`note: ${r.escapeNote(n.note)}`), o.length > 0 && (a += ` [${o.join(", ")}]`), a;
|
|
55
59
|
});
|
|
56
60
|
}
|
|
57
61
|
static getIndexLines(e, t) {
|
|
@@ -78,42 +82,42 @@ var u = class u {
|
|
|
78
82
|
static getTableContentArr(e, t) {
|
|
79
83
|
return e.map((e) => ({
|
|
80
84
|
tableId: e,
|
|
81
|
-
fieldContents:
|
|
82
|
-
checkContents:
|
|
83
|
-
indexContents:
|
|
85
|
+
fieldContents: r.getFieldLines(e, t),
|
|
86
|
+
checkContents: r.getCheckLines(e, t),
|
|
87
|
+
indexContents: r.getIndexLines(e, t)
|
|
84
88
|
}));
|
|
85
89
|
}
|
|
86
90
|
static getTableSettings(e) {
|
|
87
91
|
let t = "";
|
|
88
92
|
return e.headerColor && (t += `headerColor: ${e.headerColor}, `), t.endsWith(", ") && (t = t.replace(/,\s$/, "")), t ? ` [${t}]` : "";
|
|
89
93
|
}
|
|
90
|
-
static exportTables(
|
|
91
|
-
let
|
|
92
|
-
let
|
|
93
|
-
|
|
94
|
-
let
|
|
95
|
-
|
|
94
|
+
static exportTables(e, n) {
|
|
95
|
+
let o = r.getTableContentArr(e, n).map((e) => {
|
|
96
|
+
let o = n.tables[e.tableId], s = n.schemas[o.schemaId], c = r.getTableSettings(o), l = `"${o.name}"`;
|
|
97
|
+
i(s, n) && (l = `"${s.name}"."${o.name}"`);
|
|
98
|
+
let u = o.alias ? ` as ${a(o.alias)}` : "", d = e.fieldContents.map((e) => ` ${e}\n`).join(""), f = "";
|
|
99
|
+
t(e.checkContents) || (f = `\n Checks {\n${e.checkContents.map((e) => ` ${e}\n`).join("")} }\n`);
|
|
96
100
|
let p = "";
|
|
97
|
-
|
|
98
|
-
let m =
|
|
99
|
-
return `Table ${
|
|
101
|
+
t(e.indexContents) || (p = `\n Indexes {\n${e.indexContents.map((e) => ` ${e}\n`).join("")} }\n`);
|
|
102
|
+
let m = o.note ? ` Note: ${r.escapeNote(o.note)}\n` : "";
|
|
103
|
+
return `Table ${l}${u}${c} {\n${d}${f}${p}${m}}\n`;
|
|
100
104
|
});
|
|
101
|
-
return
|
|
105
|
+
return o.length ? o.join("\n") : "";
|
|
102
106
|
}
|
|
103
107
|
static buildFieldName(e, t) {
|
|
104
108
|
let n = e.map((e) => `"${t.fields[e].name}"`).join(", ");
|
|
105
109
|
return e.length === 1 ? n : `(${n})`;
|
|
106
110
|
}
|
|
107
|
-
static exportRefs(
|
|
108
|
-
let
|
|
109
|
-
let
|
|
110
|
-
|
|
111
|
-
let _ =
|
|
112
|
-
g += `${d} `, g += `${
|
|
111
|
+
static exportRefs(e, t) {
|
|
112
|
+
let n = e.map((e) => {
|
|
113
|
+
let n = t.refs[e], a = n.endpointIds.findIndex((e) => u(t.endpoints[e].relation).max === 1), o = a === -1 ? 0 : a, s = t.endpoints[n.endpointIds[o]], l = t.endpoints[n.endpointIds[1 - o]], d = c(s.relation, l.relation), f = t.fields[s.fieldIds[0]], p = t.tables[f.tableId], m = t.schemas[p.schemaId], h = r.buildFieldName(s.fieldIds, t), g = "Ref";
|
|
114
|
+
n.name && (g += ` ${i(t.schemas[n.schemaId], t) ? `"${t.schemas[n.schemaId].name}".` : ""}"${n.name}"`), g += ":", g += `${i(m, t) ? `"${m.name}".` : ""}"${p.name}".${h} `;
|
|
115
|
+
let _ = t.fields[l.fieldIds[0]], v = t.tables[_.tableId], y = t.schemas[v.schemaId], b = r.buildFieldName(l.fieldIds, t);
|
|
116
|
+
g += `${d} `, g += `${i(y, t) ? `"${y.name}".` : ""}"${v.name}".${b}`;
|
|
113
117
|
let x = [];
|
|
114
|
-
return
|
|
118
|
+
return n.onUpdate && x.push(`update: ${n.onUpdate.toLowerCase()}`), n.onDelete && x.push(`delete: ${n.onDelete.toLowerCase()}`), n.inactive && x.push("inactive"), x.length > 0 && (g += ` [${x.join(", ")}]`), g += "\n", g;
|
|
115
119
|
});
|
|
116
|
-
return
|
|
120
|
+
return n.length ? n.join("\n") : "";
|
|
117
121
|
}
|
|
118
122
|
static getTableGroupSettings(e) {
|
|
119
123
|
let t = [];
|
|
@@ -124,75 +128,75 @@ var u = class u {
|
|
|
124
128
|
return !e.fieldNames || e.fieldNames.length === 0 ? `${t}${n}` : `${t}${n}.${e.fieldNames.length === 1 ? `"${e.fieldNames[0]}"` : `(${e.fieldNames.map((e) => `"${e}"`).join(", ")})`}`;
|
|
125
129
|
}
|
|
126
130
|
static formatDepCustomValue(e) {
|
|
127
|
-
return typeof e == "string" ? `'${
|
|
131
|
+
return typeof e == "string" ? `'${o(e)}'` : e == null ? "null" : String(e);
|
|
128
132
|
}
|
|
129
133
|
static exportDeps(e, t) {
|
|
130
134
|
let n = e.map((e) => {
|
|
131
|
-
let n = t.deps[e],
|
|
132
|
-
if (
|
|
133
|
-
let
|
|
134
|
-
return
|
|
135
|
-
|
|
136
|
-
}),
|
|
137
|
-
|
|
138
|
-
})),
|
|
135
|
+
let n = t.deps[e], i = n.edgeIds.map((e) => t.depEdges[e]), a = !!n.note, o = n.metadata ? Object.entries(n.metadata) : [], s = a || o.length > 0;
|
|
136
|
+
if (i.length === 1 && !s) return `Dep: ${r.formatDepEndpoint(i[0].upstream)} -> ${r.formatDepEndpoint(i[0].downstream)}\n`;
|
|
137
|
+
let c = "Dep {\n";
|
|
138
|
+
return i.forEach((e) => {
|
|
139
|
+
c += ` ${r.formatDepEndpoint(e.upstream)} -> ${r.formatDepEndpoint(e.downstream)}\n`;
|
|
140
|
+
}), s && (c += "\n", a && (c += ` note: ${r.escapeNote(n.note)}\n`), o.forEach(([e, t]) => {
|
|
141
|
+
c += ` ${e}: ${r.formatDepCustomValue(t)}\n`;
|
|
142
|
+
})), c += "}\n", c;
|
|
139
143
|
});
|
|
140
144
|
return n.length ? n.join("\n") : "";
|
|
141
145
|
}
|
|
142
|
-
static exportTableGroups(
|
|
143
|
-
let
|
|
144
|
-
let
|
|
145
|
-
return `TableGroup ${`"${
|
|
146
|
-
let
|
|
147
|
-
return `${
|
|
148
|
-
}, "")}${
|
|
146
|
+
static exportTableGroups(e, t) {
|
|
147
|
+
let n = e.map((e) => {
|
|
148
|
+
let n = t.tableGroups[e], a = r.getTableGroupSettings(n), o = n.note ? ` Note: ${r.escapeNote(n.note)}\n` : "";
|
|
149
|
+
return `TableGroup ${`"${n.name}"`}${a} {\n${n.tableIds.reduce((e, n) => {
|
|
150
|
+
let r = t.tables[n], a = t.schemas[r.schemaId];
|
|
151
|
+
return `${e}${` ${i(a, t) ? `"${a.name}".` : ""}"${r.name}"`}\n`;
|
|
152
|
+
}, "")}${o}}\n`;
|
|
149
153
|
});
|
|
150
|
-
return
|
|
154
|
+
return n.length ? n.join("\n") : "";
|
|
151
155
|
}
|
|
152
156
|
static getStickyNoteSettings(e) {
|
|
153
157
|
let t = "";
|
|
154
158
|
return e.color && (t += `color: ${e.color}`), t ? ` [${t}]` : "";
|
|
155
159
|
}
|
|
156
160
|
static exportStickyNotes(e) {
|
|
157
|
-
return
|
|
158
|
-
let n = ` ${
|
|
159
|
-
return e ? `${e}\n${
|
|
161
|
+
return n(e.notes, (e, t) => {
|
|
162
|
+
let n = ` ${r.escapeNote(t.content)}`, i = r.getStickyNoteSettings(t), a = `Note ${t.name}${i} {\n${n}\n}\n`;
|
|
163
|
+
return e ? `${e}\n${a}` : a;
|
|
160
164
|
}, "");
|
|
161
165
|
}
|
|
162
|
-
static exportRecords(
|
|
163
|
-
let { records: r } =
|
|
164
|
-
if (!r ||
|
|
165
|
-
let
|
|
166
|
-
return Object.values(
|
|
167
|
-
let { schemaName: t, tableName: n } = e[0], r = t ?
|
|
168
|
-
let t =
|
|
166
|
+
static exportRecords(n) {
|
|
167
|
+
let { records: r } = n;
|
|
168
|
+
if (!r || t(r)) return "";
|
|
169
|
+
let i = e(Object.values(r), (e) => `${e.schemaName || ""}.${e.tableName}`);
|
|
170
|
+
return Object.values(i).map((e) => {
|
|
171
|
+
let { schemaName: t, tableName: n } = e[0], r = t ? l(t, n) : a(n), i = [...new Set(e.flatMap((e) => e.columns))], o = i.map(a).join(", "), c = e.flatMap((e) => {
|
|
172
|
+
let t = i.map((t) => e.columns.indexOf(t));
|
|
169
173
|
return e.values.map((e) => t.map((t) => t === -1 ? {
|
|
170
174
|
value: null,
|
|
171
175
|
type: "expression"
|
|
172
176
|
} : e[t]));
|
|
173
|
-
}).map((e) => ` ${e.map(
|
|
174
|
-
return `Records ${r}(${
|
|
177
|
+
}).map((e) => ` ${e.map(s).join(", ")}`);
|
|
178
|
+
return `Records ${r}(${o})${e.some((e) => e.example) ? " [example]" : ""} {\n${c.join("\n")}\n}\n`;
|
|
175
179
|
}).join("\n");
|
|
176
180
|
}
|
|
177
|
-
static exportMetadata(
|
|
178
|
-
let
|
|
179
|
-
return
|
|
180
|
-
let { tableIds:
|
|
181
|
-
|
|
182
|
-
let
|
|
183
|
-
|
|
184
|
-
}), s.map((
|
|
185
|
-
}), Object.values(
|
|
186
|
-
}
|
|
187
|
-
static export(e,
|
|
188
|
-
let
|
|
189
|
-
|
|
190
|
-
let { enumIds:
|
|
191
|
-
|
|
192
|
-
}),
|
|
193
|
-
let
|
|
194
|
-
return
|
|
181
|
+
static exportMetadata(e) {
|
|
182
|
+
let n = [], a = e.database[1], o = (e, t) => `Metadata ${e} {\n${Object.entries(t).map(([e, t]) => ` ${e}: ${r.escapeNote(t)}`).join("\n")}\n}\n`;
|
|
183
|
+
return a.schemaIds.forEach((r) => {
|
|
184
|
+
let { tableIds: a, tableGroupIds: s } = e.schemas[r];
|
|
185
|
+
a.forEach((r) => {
|
|
186
|
+
let a = e.tables[r], s = e.schemas[a.schemaId], c = i(s, e) ? `"${s.name}".` : "";
|
|
187
|
+
t(a.metadata) || n.push(o(`Table ${c}"${a.name}"`, a.metadata)), a.fieldIds.map((t) => e.fields[t]).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`Column ${c}"${a.name}"."${e.name}"`, e.metadata)));
|
|
188
|
+
}), s.map((t) => e.tableGroups[t]).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`TableGroup "${e.name}"`, e.metadata)));
|
|
189
|
+
}), Object.values(e.notes).filter((e) => !t(e.metadata)).forEach((e) => n.push(o(`Note ${e.name}`, e.metadata))), n.join("\n");
|
|
190
|
+
}
|
|
191
|
+
static export(e, n) {
|
|
192
|
+
let i = [], a = e.database[1], { includeRecords: o } = n;
|
|
193
|
+
a.schemaIds.forEach((n) => {
|
|
194
|
+
let { enumIds: a, tableIds: o, tableGroupIds: s, refIds: c, depIds: l } = e.schemas[n];
|
|
195
|
+
t(a) || i.push(r.exportEnums(a, e)), t(o) || i.push(r.exportTables(o, e)), t(s) || i.push(r.exportTableGroups(s, e)), t(c) || i.push(r.exportRefs(c, e)), t(l) || i.push(r.exportDeps(l, e));
|
|
196
|
+
}), t(e.notes) || i.push(r.exportStickyNotes(e)), o && !t(e.records) && i.push(r.exportRecords(e));
|
|
197
|
+
let s = r.exportMetadata(e);
|
|
198
|
+
return s && i.push(s), i.join("\n");
|
|
195
199
|
}
|
|
196
200
|
};
|
|
197
201
|
//#endregion
|
|
198
|
-
export {
|
|
202
|
+
export { d as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");const e=require("
|
|
2
|
-
`)};`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`\`${n.name}\` ENUM (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)})`}else r=`\`${n.name}\` ${n.type.type_name===`varchar`?`varchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` AUTO_INCREMENT`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT \`${e.name}\``),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT ${n.dbdefault.value}`)),n.note&&(r+=` COMMENT '${n.note.replace(/'/g,`''`)}'`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT \`${n.name}\` `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(t
|
|
3
|
-
`)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`\`${t.fields[e].name}\``).join(`, `)})`}static buildTableManyToMany(t,n,r,
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");const e=require("../node_modules/lodash-es/flatten.cjs"),t=require("../node_modules/lodash-es/concat.cjs"),n=require("../node_modules/lodash-es/isEmpty.cjs"),r=require("../node_modules/lodash-es/lodash.cjs"),i=require("./utils.cjs");let a=require("@dbml/parse");r.init_lodash();var o=class r{static exportRecords(e){let t=Object.values(e.records||{}).filter(e=>!e.example);return n.default(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e,o=t?`\`${t}\`.\`${n}\``:`\`${n}\``,s=r.length>0?`(\`${r.join("`, `")}\`)`:``,c=e=>e.value===null?`NULL`:e.type===`expression`||(0,a.isNumericType)(e.type)?e.value:(0,a.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,a.isStringType)(e.type)||(0,a.isBinaryType)(e.type)||(0,a.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}'`:`CAST('${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}' AS ${e.type})`;return`INSERT INTO ${o} ${s}\nVALUES\n ${i.map(e=>`(${e.map(c).join(`, `)})`).join(`,
|
|
2
|
+
`)};`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`\`${n.name}\` ENUM (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)})`}else r=`\`${n.name}\` ${n.type.type_name===`varchar`?`varchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` AUTO_INCREMENT`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT \`${e.name}\``),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT ${n.dbdefault.value}`)),n.note&&(r+=` COMMENT '${n.note.replace(/'/g,`''`)}'`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT \`${n.name}\` `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(e,t){return e.map(e=>({tableId:e,fieldContents:r.getFieldLines(e,t),checkContents:r.getCheckLines(e,t),compositePKs:r.getCompositePKs(e,t)}))}static exportTables(e,t){return r.getTableContentArr(e,t).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],a=t.schemas[r.schemaId];return`CREATE TABLE ${i.shouldPrintSchema(a,t)?`\`${a.name}\`.`:``}\`${r.name}\` (\n${n.map(e=>` ${e}`).join(`,
|
|
3
|
+
`)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`\`${t.fields[e].name}\``).join(`, `)})`}static buildTableManyToMany(e,t,n,r,a){let o=`CREATE TABLE ${i.shouldPrintSchema(r,a)?`\`${r.name}\`.`:``}\`${n}\` (\n`,s=[...e.keys()].join("`, `"),c=[...t.keys()].join("`, `");return e.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),t.forEach((e,t)=>{o+=` \`${t}\` ${e},\n`}),o+=` PRIMARY KEY (\`${s}\`, \`${c}\`)\n`,o+=`);
|
|
4
4
|
|
|
5
|
-
`,o}static buildForeignKeyManyToMany(t,n,r,
|
|
6
|
-
`;return
|
|
7
|
-
`,s})}static exportComments(t
|
|
8
|
-
`,
|
|
9
|
-
`)}};exports.default=
|
|
5
|
+
`,o}static buildForeignKeyManyToMany(e,t,n,r,a,o,s){let c=[...e.keys()].join("`, `");return`ALTER TABLE ${i.shouldPrintSchema(a,s)?`\`${a.name}\`.`:``}\`${n}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${i.shouldPrintSchema(o,s)?`\`${o.name}\`.`:``}\`${r}\` ${t};\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,o=t.refs[e],s=o.endpointIds.findIndex(e=>(0,a.parseCardinality)(t.endpoints[e].relation).max===1),c=s===-1?0:s,l=o.endpointIds[1-c],u=o.endpointIds[c],d=t.endpoints[l],f=t.endpoints[u],p=t.fields[f.fieldIds[0]],m=t.tables[p.tableId],h=t.schemas[m.schemaId],g=this.buildFieldName(f.fieldIds,t,`mysql`),_=t.fields[d.fieldIds[0]],v=t.tables[_.tableId],y=t.schemas[v.schemaId],b=this.buildFieldName(d.fieldIds,t,`mysql`);if(s===-1){let e=i.buildJunctionFields1(f.fieldIds,t),a=i.buildJunctionFields2(d.fieldIds,t,e),o=i.buildNewTableName(m.name,v.name,n);r+=this.buildTableManyToMany(e,a,o,h,t),r+=this.buildForeignKeyManyToMany(e,g,o,m.name,h,h,t),r+=this.buildForeignKeyManyToMany(a,b,o,v.name,h,y,t)}else r=`ALTER TABLE ${i.shouldPrintSchema(y,t)?`\`${y.name}\`.`:``}\`${v.name}\` ADD `,o.name&&(r+=`CONSTRAINT \`${o.name}\` `),r+=`FOREIGN KEY ${b} REFERENCES ${i.shouldPrintSchema(h,t)?`\`${h.name}\`.`:``}\`${m.name}\` ${g}`,o.onDelete&&(r+=` ON DELETE ${o.onDelete.toUpperCase()}`),o.onUpdate&&(r+=` ON UPDATE ${o.onUpdate.toUpperCase()}`),r+=`;
|
|
6
|
+
`;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map((e,n)=>{let r=t.indexes[e],a=t.tables[r.tableId],o=t.schemas[a.schemaId],s=`CREATE`;r.unique&&(s+=` UNIQUE`);let c=r.name?`\`${r.name}\``:`\`${i.shouldPrintSchema(o,t)?`\`${o.name}\`.`:``}${a.name}_index_${n}\``;s+=` INDEX ${c} ON ${i.shouldPrintSchema(o,t)?`\`${o.name}\`.`:``}\`${a.name}\``;let l=[];return r.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,l.push(r)}),s+=` (${l.join(`, `)})`,r.type&&(s+=` USING ${r.type.toUpperCase()}`),s+=`;
|
|
7
|
+
`,s})}static exportComments(e,t){return e.map(e=>{let n=``;if(e.type===`table`){let r=t.tables[e.tableId],a=t.schemas[r.schemaId];n+=`ALTER TABLE ${i.shouldPrintSchema(a,t)?`\`${a.name}\`.`:``}\`${r.name}\` COMMENT = '${r.note.replace(/'/g,`''`)}'`}return n+=`;
|
|
8
|
+
`,n})}static export(a){let o=a.database[1],s=new Set(Object.values(a.tables).map(e=>e.name)),c=o.schemaIds.reduce((t,o)=>{let c=a.schemas[o],{tableIds:l,refIds:u}=c;i.shouldPrintSchema(c,a)&&t.schemas.push(`CREATE SCHEMA \`${c.name}\`;\n`),n.default(l)||t.tables.push(...r.exportTables(l,a));let d=e.default(l.map(e=>a.tables[e].indexIds));n.default(d)||t.indexes.push(...r.exportIndexes(d,a));let f=e.default(l.map(e=>{let{note:t}=a.tables[e];return t?[{type:`table`,tableId:e}]:[]}));return n.default(f)||t.comments.push(...r.exportComments(f,a)),n.default(u)||t.refs.push(...r.exportRefs(u,a,s)),t},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),l=r.exportRecords(a),u=n.default(l)?[]:[`-- Disable foreign key checks for INSERT`,`SET FOREIGN_KEY_CHECKS = 0;`,``,...l,``,`-- Re-enable foreign key checks`,`SET FOREIGN_KEY_CHECKS = 1;`];return t.default(c.schemas,c.enums,c.tables,c.indexes,c.comments,c.refs,u).join(`
|
|
9
|
+
`)}};exports.default=o;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import e from "../node_modules/lodash-es/flatten.mjs";
|
|
2
|
+
import t from "../node_modules/lodash-es/concat.mjs";
|
|
3
|
+
import n from "../node_modules/lodash-es/isEmpty.mjs";
|
|
4
|
+
import { init_lodash as r } from "../node_modules/lodash-es/lodash.mjs";
|
|
5
|
+
import { buildJunctionFields1 as i, buildJunctionFields2 as a, buildNewTableName as o, shouldPrintSchema as s } from "./utils.mjs";
|
|
6
|
+
import { isBinaryType as c, isBooleanType as l, isDateTimeType as u, isNumericType as d, isStringType as f, parseCardinality as p } from "@dbml/parse";
|
|
4
7
|
//#region src/export/MysqlExporter.js
|
|
5
|
-
|
|
8
|
+
r();
|
|
9
|
+
var m = class r {
|
|
6
10
|
static exportRecords(e) {
|
|
7
11
|
let t = Object.values(e.records || {}).filter((e) => !e.example);
|
|
8
|
-
return
|
|
9
|
-
let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `\`${t}\`.\`${n}\`` : `\`${n}\``, o = r.length > 0 ? `(\`${r.join("`, `")}\`)` : "",
|
|
10
|
-
return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(
|
|
12
|
+
return n(t) ? [] : t.map((e) => {
|
|
13
|
+
let { schemaName: t, tableName: n, columns: r, values: i } = e, a = t ? `\`${t}\`.\`${n}\`` : `\`${n}\``, o = r.length > 0 ? `(\`${r.join("`, `")}\`)` : "", s = (e) => e.value === null ? "NULL" : e.type === "expression" || d(e.type) ? e.value : l(e.type) ? String(e.value).toUpperCase() === "TRUE" ? "TRUE" : "FALSE" : f(e.type) || c(e.type) || u(e.type) ? `'${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}'` : `CAST('${e.value.replace(/'/g, "''").replace(/\\/g, "\\\\")}' AS ${e.type})`;
|
|
14
|
+
return `INSERT INTO ${a} ${o}\nVALUES\n ${i.map((e) => `(${e.map(s).join(", ")})`).join(",\n ")};`;
|
|
11
15
|
});
|
|
12
16
|
}
|
|
13
17
|
static getFieldLines(e, t) {
|
|
@@ -49,83 +53,83 @@ var p = class p {
|
|
|
49
53
|
static getTableContentArr(e, t) {
|
|
50
54
|
return e.map((e) => ({
|
|
51
55
|
tableId: e,
|
|
52
|
-
fieldContents:
|
|
53
|
-
checkContents:
|
|
54
|
-
compositePKs:
|
|
56
|
+
fieldContents: r.getFieldLines(e, t),
|
|
57
|
+
checkContents: r.getCheckLines(e, t),
|
|
58
|
+
compositePKs: r.getCompositePKs(e, t)
|
|
55
59
|
}));
|
|
56
60
|
}
|
|
57
61
|
static exportTables(e, t) {
|
|
58
|
-
return
|
|
62
|
+
return r.getTableContentArr(e, t).map((e) => {
|
|
59
63
|
let n = [
|
|
60
64
|
...e.fieldContents,
|
|
61
65
|
...e.checkContents,
|
|
62
66
|
...e.compositePKs
|
|
63
|
-
],
|
|
64
|
-
return `CREATE TABLE ${
|
|
67
|
+
], r = t.tables[e.tableId], i = t.schemas[r.schemaId];
|
|
68
|
+
return `CREATE TABLE ${s(i, t) ? `\`${i.name}\`.` : ""}\`${r.name}\` (\n${n.map((e) => ` ${e}`).join(",\n")}\n);\n`;
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
71
|
static buildFieldName(e, t) {
|
|
68
72
|
return `(${e.map((e) => `\`${t.fields[e].name}\``).join(", ")})`;
|
|
69
73
|
}
|
|
70
|
-
static buildTableManyToMany(e, t, n,
|
|
71
|
-
let
|
|
74
|
+
static buildTableManyToMany(e, t, n, r, i) {
|
|
75
|
+
let a = `CREATE TABLE ${s(r, i) ? `\`${r.name}\`.` : ""}\`${n}\` (\n`, o = [...e.keys()].join("`, `"), c = [...t.keys()].join("`, `");
|
|
72
76
|
return e.forEach((e, t) => {
|
|
73
|
-
|
|
77
|
+
a += ` \`${t}\` ${e},\n`;
|
|
74
78
|
}), t.forEach((e, t) => {
|
|
75
|
-
|
|
76
|
-
}),
|
|
79
|
+
a += ` \`${t}\` ${e},\n`;
|
|
80
|
+
}), a += ` PRIMARY KEY (\`${o}\`, \`${c}\`)\n`, a += ");\n\n", a;
|
|
77
81
|
}
|
|
78
|
-
static buildForeignKeyManyToMany(e, t, n, i, a, o
|
|
82
|
+
static buildForeignKeyManyToMany(e, t, n, r, i, a, o) {
|
|
79
83
|
let c = [...e.keys()].join("`, `");
|
|
80
|
-
return `ALTER TABLE ${
|
|
84
|
+
return `ALTER TABLE ${s(i, o) ? `\`${i.name}\`.` : ""}\`${n}\` ADD FOREIGN KEY (\`${c}\`) REFERENCES ${s(a, o) ? `\`${a.name}\`.` : ""}\`${r}\` ${t};\n\n`;
|
|
81
85
|
}
|
|
82
|
-
static exportRefs(
|
|
83
|
-
return
|
|
84
|
-
let
|
|
86
|
+
static exportRefs(e, t, n) {
|
|
87
|
+
return e.map((e) => {
|
|
88
|
+
let r = "", c = t.refs[e], l = c.endpointIds.findIndex((e) => p(t.endpoints[e].relation).max === 1), u = l === -1 ? 0 : l, d = c.endpointIds[1 - u], f = c.endpointIds[u], m = t.endpoints[d], h = t.endpoints[f], g = t.fields[h.fieldIds[0]], _ = t.tables[g.tableId], v = t.schemas[_.schemaId], y = this.buildFieldName(h.fieldIds, t, "mysql"), b = t.fields[m.fieldIds[0]], x = t.tables[b.tableId], S = t.schemas[x.schemaId], C = this.buildFieldName(m.fieldIds, t, "mysql");
|
|
85
89
|
if (l === -1) {
|
|
86
|
-
let
|
|
87
|
-
|
|
88
|
-
} else
|
|
89
|
-
return
|
|
90
|
+
let e = i(h.fieldIds, t), s = a(m.fieldIds, t, e), c = o(_.name, x.name, n);
|
|
91
|
+
r += this.buildTableManyToMany(e, s, c, v, t), r += this.buildForeignKeyManyToMany(e, y, c, _.name, v, v, t), r += this.buildForeignKeyManyToMany(s, C, c, x.name, v, S, t);
|
|
92
|
+
} else r = `ALTER TABLE ${s(S, t) ? `\`${S.name}\`.` : ""}\`${x.name}\` ADD `, c.name && (r += `CONSTRAINT \`${c.name}\` `), r += `FOREIGN KEY ${C} REFERENCES ${s(v, t) ? `\`${v.name}\`.` : ""}\`${_.name}\` ${y}`, c.onDelete && (r += ` ON DELETE ${c.onDelete.toUpperCase()}`), c.onUpdate && (r += ` ON UPDATE ${c.onUpdate.toUpperCase()}`), r += ";\n";
|
|
93
|
+
return r;
|
|
90
94
|
});
|
|
91
95
|
}
|
|
92
96
|
static exportIndexes(e, t) {
|
|
93
97
|
return e.filter((e) => !t.indexes[e].pk).map((e, n) => {
|
|
94
|
-
let
|
|
95
|
-
|
|
96
|
-
let c =
|
|
97
|
-
|
|
98
|
+
let r = t.indexes[e], i = t.tables[r.tableId], a = t.schemas[i.schemaId], o = "CREATE";
|
|
99
|
+
r.unique && (o += " UNIQUE");
|
|
100
|
+
let c = r.name ? `\`${r.name}\`` : `\`${s(a, t) ? `\`${a.name}\`.` : ""}${i.name}_index_${n}\``;
|
|
101
|
+
o += ` INDEX ${c} ON ${s(a, t) ? `\`${a.name}\`.` : ""}\`${i.name}\``;
|
|
98
102
|
let l = [];
|
|
99
|
-
return
|
|
103
|
+
return r.columnIds.forEach((e) => {
|
|
100
104
|
let n = t.indexColumns[e], r = "";
|
|
101
105
|
r = n.type === "expression" ? `(${n.value})` : `\`${n.value}\``, l.push(r);
|
|
102
|
-
}),
|
|
106
|
+
}), o += ` (${l.join(", ")})`, r.type && (o += ` USING ${r.type.toUpperCase()}`), o += ";\n", o;
|
|
103
107
|
});
|
|
104
108
|
}
|
|
105
109
|
static exportComments(e, t) {
|
|
106
110
|
return e.map((e) => {
|
|
107
111
|
let n = "";
|
|
108
112
|
if (e.type === "table") {
|
|
109
|
-
let
|
|
110
|
-
n += `ALTER TABLE ${
|
|
113
|
+
let r = t.tables[e.tableId], i = t.schemas[r.schemaId];
|
|
114
|
+
n += `ALTER TABLE ${s(i, t) ? `\`${i.name}\`.` : ""}\`${r.name}\` COMMENT = '${r.note.replace(/'/g, "''")}'`;
|
|
111
115
|
}
|
|
112
116
|
return n += ";\n", n;
|
|
113
117
|
});
|
|
114
118
|
}
|
|
115
|
-
static export(
|
|
116
|
-
let
|
|
117
|
-
let
|
|
118
|
-
|
|
119
|
-
let
|
|
120
|
-
|
|
121
|
-
let
|
|
122
|
-
let { note:
|
|
123
|
-
return
|
|
119
|
+
static export(i) {
|
|
120
|
+
let a = i.database[1], o = new Set(Object.values(i.tables).map((e) => e.name)), c = a.schemaIds.reduce((t, a) => {
|
|
121
|
+
let c = i.schemas[a], { tableIds: l, refIds: u } = c;
|
|
122
|
+
s(c, i) && t.schemas.push(`CREATE SCHEMA \`${c.name}\`;\n`), n(l) || t.tables.push(...r.exportTables(l, i));
|
|
123
|
+
let d = e(l.map((e) => i.tables[e].indexIds));
|
|
124
|
+
n(d) || t.indexes.push(...r.exportIndexes(d, i));
|
|
125
|
+
let f = e(l.map((e) => {
|
|
126
|
+
let { note: t } = i.tables[e];
|
|
127
|
+
return t ? [{
|
|
124
128
|
type: "table",
|
|
125
|
-
tableId:
|
|
129
|
+
tableId: e
|
|
126
130
|
}] : [];
|
|
127
131
|
}));
|
|
128
|
-
return
|
|
132
|
+
return n(f) || t.comments.push(...r.exportComments(f, i)), n(u) || t.refs.push(...r.exportRefs(u, i, o)), t;
|
|
129
133
|
}, {
|
|
130
134
|
schemas: [],
|
|
131
135
|
enums: [],
|
|
@@ -133,17 +137,17 @@ var p = class p {
|
|
|
133
137
|
indexes: [],
|
|
134
138
|
comments: [],
|
|
135
139
|
refs: []
|
|
136
|
-
}),
|
|
140
|
+
}), l = r.exportRecords(i), u = n(l) ? [] : [
|
|
137
141
|
"-- Disable foreign key checks for INSERT",
|
|
138
142
|
"SET FOREIGN_KEY_CHECKS = 0;",
|
|
139
143
|
"",
|
|
140
|
-
...
|
|
144
|
+
...l,
|
|
141
145
|
"",
|
|
142
146
|
"-- Re-enable foreign key checks",
|
|
143
147
|
"SET FOREIGN_KEY_CHECKS = 1;"
|
|
144
148
|
];
|
|
145
|
-
return
|
|
149
|
+
return t(c.schemas, c.enums, c.tables, c.indexes, c.comments, c.refs, u).join("\n");
|
|
146
150
|
}
|
|
147
151
|
};
|
|
148
152
|
//#endregion
|
|
149
|
-
export {
|
|
153
|
+
export { m as default };
|