catalog-converter
Advanced tools
Comparing version 0.0.6 to 0.0.7
import { Func } from '@iadvize-oss/foldable-helpers/dist/types'; | ||
import { OpaqueApi } from '@iadvize-oss/opaque-type'; | ||
import { Opaque } from '@iadvize-oss/opaque-type'; | ||
@@ -17,2 +17,3 @@ declare enum Severity { | ||
SosItem = "SensorObservationServiceCatalogItem", | ||
CswCatalogGroup = "CswCatalogGroup", | ||
EsriCatalogGroup = "EsriCatalogGroup", | ||
@@ -24,2 +25,3 @@ EsriMapServerGroup = "EsriMapServerGroup", | ||
WpsResultItem = "WpsResultItem", | ||
WpsGroup = "WpsGroup", | ||
CkanGroup = "CkanCatalogGroup", | ||
@@ -30,3 +32,4 @@ CkanCatalogItem = "CkanCatalogItem", | ||
MapboxVectorTileCatalogItem = "MapboxVectorTileCatalogItem", | ||
KmlCatalogItem = "KmlCatalogItem" | ||
KmlCatalogItem = "KmlCatalogItem", | ||
SocrataCatalogGroup = "SocrataCatalogGroup" | ||
} | ||
@@ -52,15 +55,31 @@ interface MessageBase { | ||
} | ||
declare const unknownPropOpaque: OpaqueApi<"UnknownProp", UnknownPropDetails>; | ||
declare const unknownPropOpaque: { | ||
toOpaque: (value: UnknownPropDetails) => Opaque<"UnknownProp">; | ||
fromOpaque: (opaque: Opaque<"UnknownProp">) => UnknownPropDetails; | ||
isOpaque: (thing: any) => thing is Opaque<"UnknownProp">; | ||
}; | ||
interface UnknownProp extends MessageBase { | ||
details: ReturnType<typeof unknownPropOpaque.toOpaque>; | ||
} | ||
declare const missingRequiredPropOpaque: OpaqueApi<"MissingRequiredProp", MissingRequiredPropDetails>; | ||
declare const missingRequiredPropOpaque: { | ||
toOpaque: (value: MissingRequiredPropDetails) => Opaque<"MissingRequiredProp">; | ||
fromOpaque: (opaque: Opaque<"MissingRequiredProp">) => MissingRequiredPropDetails; | ||
isOpaque: (thing: any) => thing is Opaque<"MissingRequiredProp">; | ||
}; | ||
interface MissingRequiredProp extends MessageBase { | ||
details: ReturnType<typeof missingRequiredPropOpaque.toOpaque>; | ||
} | ||
declare const unknownTypeOpaque: OpaqueApi<"UnknownType", UnknownTypeDetails>; | ||
declare const unknownTypeOpaque: { | ||
toOpaque: (value: UnknownTypeDetails) => Opaque<"UnknownType">; | ||
fromOpaque: (opaque: Opaque<"UnknownType">) => UnknownTypeDetails; | ||
isOpaque: (thing: any) => thing is Opaque<"UnknownType">; | ||
}; | ||
interface UnknownType extends MessageBase { | ||
details: ReturnType<typeof unknownTypeOpaque.toOpaque>; | ||
} | ||
declare const inputNotPlainObjectOpaque: OpaqueApi<"InputNotPlainObject", InputNotPlainObjectDetails>; | ||
declare const inputNotPlainObjectOpaque: { | ||
toOpaque: (value: InputNotPlainObjectDetails) => Opaque<"InputNotPlainObject">; | ||
fromOpaque: (opaque: Opaque<"InputNotPlainObject">) => InputNotPlainObjectDetails; | ||
isOpaque: (thing: any) => thing is Opaque<"InputNotPlainObject">; | ||
}; | ||
interface InputNotPlainObject extends MessageBase { | ||
@@ -67,0 +86,0 @@ details: ReturnType<typeof inputNotPlainObjectOpaque.toOpaque>; |
@@ -5,2 +5,3 @@ "use strict"; | ||
}; | ||
var _a, _b; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -14,2 +15,3 @@ var fs_1 = __importDefault(require("fs")); | ||
var Message_1 = require("./Message"); | ||
var transferIds_1 = require("./transferIds"); | ||
// import "core-js/features/object"; | ||
@@ -43,2 +45,7 @@ var argv = yargs_1.default | ||
}) | ||
.option("t", { | ||
alias: "transfer-ids", | ||
type: "string", | ||
description: "Transfer IDS from another catalog file.", | ||
}) | ||
.option("l", { | ||
@@ -60,4 +67,14 @@ alias: "id-length", | ||
var success = res.result !== null; | ||
console.log((success ? "Succeeded" : "Failed") + " with " + errors.length + " errors and " + warnings.length + " warnings"); | ||
var outputMessage = "\n" + (success ? "Succeeded" : "Failed") + " with " + errors.length + " errors and " + warnings.length + " warnings.\n"; | ||
if (errors.length || warnings.length) { | ||
outputMessage += | ||
"\nIf you have trouble using the converter, reach out to us at https://github.com/TerriaJS/terriajs/discussions for additional support.\n"; | ||
} | ||
console.log(outputMessage); | ||
if (success) { | ||
// Transfer IDs | ||
if (argv.t && ((_a = res.result) === null || _a === void 0 ? void 0 : _a.catalog)) { | ||
var ids = json5_1.default.parse(fs_1.default.readFileSync(argv.t, { encoding: "utf-8" })); | ||
transferIds_1.transferIds((_b = res.result) === null || _b === void 0 ? void 0 : _b.catalog, ids.catalog); | ||
} | ||
var output = JSON.stringify(res.result, null, 2); | ||
@@ -64,0 +81,0 @@ if (argv._[1]) { |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.defaultOptions = exports.defaultConversionOptions = void 0; | ||
var generateRandomId_1 = require("./converters/generateRandomId"); | ||
@@ -5,0 +4,0 @@ exports.defaultConversionOptions = { |
@@ -27,3 +27,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getUnknownTypeDetails = exports.getUnknownPropDetails = exports.getMissingRequiredPropDetails = exports.getInputNotPlainObjectDetails = exports.foldMessage = exports.convertShare = exports.convertCatalog = exports.convertMember = exports.converters = void 0; | ||
// Write a function to turn an old catalog into a new catalog | ||
@@ -37,2 +36,3 @@ // Unfortunately types in `is` require @types/node to be pinned to v12 | ||
var CsvItem_1 = require("./converters/CsvItem"); | ||
var Csw_1 = require("./converters/Csw"); | ||
var generateRandomId_1 = __importDefault(require("./converters/generateRandomId")); | ||
@@ -43,8 +43,9 @@ var helpers_1 = require("./converters/helpers"); | ||
var WmsCatalogItem_1 = require("./converters/WmsCatalogItem"); | ||
var Wps_1 = require("./converters/Wps"); | ||
var Message_1 = require("./Message"); | ||
Object.defineProperty(exports, "foldMessage", { enumerable: true, get: function () { return Message_1.foldMessage; } }); | ||
Object.defineProperty(exports, "getInputNotPlainObjectDetails", { enumerable: true, get: function () { return Message_1.getInputNotPlainObjectDetails; } }); | ||
Object.defineProperty(exports, "getMissingRequiredPropDetails", { enumerable: true, get: function () { return Message_1.getMissingRequiredPropDetails; } }); | ||
Object.defineProperty(exports, "getUnknownPropDetails", { enumerable: true, get: function () { return Message_1.getUnknownPropDetails; } }); | ||
Object.defineProperty(exports, "getUnknownTypeDetails", { enumerable: true, get: function () { return Message_1.getUnknownTypeDetails; } }); | ||
exports.foldMessage = Message_1.foldMessage; | ||
exports.getInputNotPlainObjectDetails = Message_1.getInputNotPlainObjectDetails; | ||
exports.getMissingRequiredPropDetails = Message_1.getMissingRequiredPropDetails; | ||
exports.getUnknownPropDetails = Message_1.getUnknownPropDetails; | ||
exports.getUnknownTypeDetails = Message_1.getUnknownTypeDetails; | ||
// Use dependency injection to break circular dependencies created by | ||
@@ -60,2 +61,6 @@ // group -> convertMembersArray -> convertMember -> group recursion | ||
["wfs-getCapabilities", other_1.webFeatureServerCatalogGroup], | ||
["wps", Wps_1.wpsCatalogItem], | ||
["wps-result", Wps_1.wpsResultItem], | ||
["wps-getCapabilities", Wps_1.wpsCatalogGroup], | ||
["csw", Csw_1.cswCatalogGroup], | ||
["csv", CsvItem_1.csvCatalogItem], | ||
@@ -70,7 +75,6 @@ ["sos", other_1.sosCatalogItem], | ||
["geojson", other_1.geoJsonCatalogItem], | ||
["wps", other_1.wpsCatalogItem], | ||
["wps-result", other_1.wpsResultItem], | ||
["carto", other_1.cartoMapCatalogItem], | ||
["mvt", other_1.mapboxVectorTileCatalogItem], | ||
["kml", other_1.kmlCatalogItem], | ||
["socrata", other_1.socrataCatalogGroup], | ||
]); | ||
@@ -226,3 +230,3 @@ function convertMember(member, options) { | ||
// Use model id if it is defined, otherwise use key from members object | ||
var newId = typeof v7Member.id === "string" && v7Member.id !== "" | ||
var newId_1 = typeof v7Member.id === "string" && v7Member.id !== "" | ||
? v7Member.id | ||
@@ -232,11 +236,11 @@ : v7id; | ||
if (v7id === "Root Group/User-Added Data") { | ||
newId = "__User-Added_Data__"; | ||
newId_1 = "__User-Added_Data__"; | ||
} | ||
// For some reason user added data doesn't have "__User-Added_Data__" in v8 autoIDs, whereas v7 autoIDs start with `Root Group/User-Added Data`, | ||
// so remove all mentions of Root Group/User-Added Data from v7 autoIDs | ||
newId = newId.replace("Root Group/User-Added Data", ""); | ||
// Only add to workbenchIds if NOT converting User Added Data | ||
if (v7Member.isEnabled && !convertUserAdded) { | ||
newId_1 = newId_1.replace("Root Group/User-Added Data", ""); | ||
// Add member to workbench if isEnabled | ||
if (v7Member.isEnabled && !workbenchIds.find(function (w) { return w.id === newId_1; })) { | ||
workbenchIds.push({ | ||
id: newId, | ||
id: newId_1, | ||
index: typeof v7Member.nowViewingIndex === "number" | ||
@@ -247,12 +251,24 @@ ? v7Member.nowViewingIndex | ||
} | ||
// Only convert user added data if convertUserAdded | ||
// Only convert user added data if convertUserAdded is true | ||
if (convertUserAdded || | ||
(v7id !== "Root Group/User-Added Data" && | ||
!knownContainerUniqueIds.includes("__User-Added_Data__"))) { | ||
var enabledItemsAccumulator = []; | ||
var result = convertMember(v7Member, { | ||
partial: true, | ||
generateIds: false, | ||
enabledItemsAccumulator: enabledItemsAccumulator, | ||
}); | ||
// Add any missed members to workbench (eg in nested groups) | ||
// This is useful for shareData which only has `catalog` property and not a `sharedCatalogMembers` property (eg CKAN preview plugin) | ||
enabledItemsAccumulator.forEach(function (member) { | ||
var _a; | ||
// If no id - just guess using name | ||
var id = (_a = member.id) !== null && _a !== void 0 ? _a : "/" + member.name; | ||
if (!workbenchIds.find(function (w) { return w.id === id; })) { | ||
workbenchIds.push({ id: id, index: undefined }); | ||
} | ||
}); | ||
messages.push.apply(messages, result.messages); | ||
convertedMembers[newId] = __assign(__assign({}, result.member), { knownContainerUniqueIds: knownContainerUniqueIds }); | ||
convertedMembers[newId_1] = __assign(__assign({}, result.member), { knownContainerUniqueIds: knownContainerUniqueIds }); | ||
} | ||
@@ -273,3 +289,6 @@ return convertedMembers; | ||
// Only add "Root Group/User-Added Data" Catalog Group | ||
var userAddedData = v7InitSource.catalog.find(function (item) { return item.id === "Root Group/User-Added Data"; }); | ||
var userAddedData = v7InitSource.catalog.find(function (item) { | ||
return item.id === "Root Group/User-Added Data" || | ||
item.name === "User-Added Data"; | ||
}); | ||
if (typeof userAddedData !== "undefined" && | ||
@@ -276,0 +295,0 @@ Array.isArray(userAddedData.items) && |
@@ -13,3 +13,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ckanCatalogItem = exports.ckanCatalogGroup = void 0; | ||
var dist_1 = __importDefault(require("@sindresorhus/is/dist")); | ||
@@ -16,0 +15,0 @@ var lodash_1 = require("lodash"); |
@@ -24,12 +24,37 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.csvCatalogItem = void 0; | ||
var is_1 = __importDefault(require("@sindresorhus/is")); | ||
var Message_1 = require("../Message"); | ||
var helpers_1 = require("./helpers"); | ||
var knownTableStyleProps = ["dataVariable", "columns"]; | ||
var knownColumnProps = [ | ||
"type", | ||
"units", | ||
"name", | ||
"title", | ||
"format", | ||
"replaceWithNullValues", | ||
"replaceWithZeroValues", | ||
]; | ||
var knownColorProps = [ | ||
"nullColor", | ||
"nullLabel", | ||
"colorBins", | ||
"colorMap", | ||
"numberOfBins", | ||
"colorPalette", | ||
]; | ||
var knownTimeProps = ["timeColumn"]; | ||
function tableStyle(item) { | ||
var _a; | ||
var tableStyle = item.tableStyle; | ||
var knownProps = __spreadArrays(knownTableStyleProps, knownColumnProps, knownColorProps, knownTimeProps); | ||
var unknownProps = helpers_1.getUnknownProps(tableStyle, knownProps); | ||
var extraProps = {}; | ||
if (is_1.default.plainObject(tableStyle.columns)) { | ||
var columns = tableStyle.columns; | ||
Object.entries(columns).map(function (_a, i) { | ||
var _name = _a[0], defn = _a[1]; | ||
var unknownColumnProps = helpers_1.getUnknownProps(defn, __spreadArrays(knownColumnProps, knownColorProps, knownTimeProps)).map(function (prop) { return "columns[" + i + "]." + prop; }); | ||
unknownProps.push.apply(unknownProps, unknownColumnProps); | ||
}); | ||
extraProps.columns = Object.entries(columns).map(function (_a) { | ||
@@ -41,3 +66,3 @@ var name = _a[0], defn = _a[1]; | ||
.filter(function (_a) { | ||
var name = _a[0], defn = _a[1]; | ||
var _name = _a[0], defn = _a[1]; | ||
return is_1.default.plainObject(defn); | ||
@@ -79,3 +104,6 @@ }) | ||
helpers_1.clearEmpties(extraProps); | ||
return extraProps; | ||
return { | ||
tableStyle: extraProps, | ||
unknownProps: unknownProps.map(function (prop) { return "tableStyle." + prop; }), | ||
}; | ||
} | ||
@@ -147,2 +175,3 @@ function getColumnTraits(defn) { | ||
function getColorTraits(tableStyle) { | ||
var _a; | ||
var color = {}; | ||
@@ -198,4 +227,13 @@ if (is_1.default.string(tableStyle.nullColor)) | ||
} | ||
// Remove "n-class" string before palette (eg "9-class RdYlGn") | ||
if (is_1.default.string(tableStyle.colorPalette)) { | ||
color.colorPalette = tableStyle.colorPalette; | ||
var match = tableStyle.colorPalette.match(/([0-9]+)-class /); | ||
var numberOfBins = parseInt((_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : "", 10); | ||
if (numberOfBins) { | ||
color.numberOfBins = numberOfBins; | ||
color.colorPalette = tableStyle.colorPalette.replace(match[0], ""); | ||
} | ||
else { | ||
color.colorPalette = tableStyle.colorPalette; | ||
} | ||
} | ||
@@ -236,3 +274,5 @@ return is_1.default.emptyObject(color) ? undefined : color; | ||
if (is_1.default.plainObject(item.tableStyle)) { | ||
Object.assign(member, tableStyle(item)); | ||
var result = tableStyle(item); | ||
Object.assign(member, result.tableStyle); | ||
messages.push.apply(messages, helpers_1.propsToWarnings(Message_1.ModelType.CsvItem, result.unknownProps, item.name)); | ||
} | ||
@@ -239,0 +279,0 @@ if (is_1.default.string(item.featureInfoTemplate) || |
@@ -10,3 +10,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.DEFAULT_ID_LENGTH = void 0; | ||
exports.DEFAULT_ID_LENGTH = 6; | ||
@@ -13,0 +12,0 @@ var ALPHABET = __spreadArrays(chars("a", "z"), chars("A", "Z"), chars("0", "9")).filter(function (c) { return ["0", "O", "o"].includes(c) === false; }); // remove similar looking characters |
@@ -24,3 +24,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.clearEmpties = exports.itemProperties = exports.convertMembersArrayWithConvertMember = exports.featureInfoTemplate = exports.legends = exports.legendProps = exports.copyProps = exports.propsToWarnings = exports.getUnknownProps = exports.catalogMemberPropsIgnore = exports.imageryLayerProps = exports.catalogMemberProps = exports.isCatalogMember = exports.nullResult = exports.flatMap = exports.isNotNull = void 0; | ||
var is_1 = __importDefault(require("@sindresorhus/is")); | ||
@@ -61,2 +60,3 @@ var Message_1 = require("../Message"); | ||
"infoSectionOrder", | ||
"initialMessage", | ||
"shortReport", | ||
@@ -139,2 +139,3 @@ { | ||
]; | ||
exports.catalogGroupProps = __spreadArrays(exports.catalogMemberProps, ["isOpen"]); | ||
exports.imageryLayerProps = ["keepOnTop"]; | ||
@@ -147,2 +148,6 @@ exports.catalogMemberPropsIgnore = [ | ||
]; | ||
exports.catalogGroupPropsIgnore = __spreadArrays(exports.catalogMemberPropsIgnore, [ | ||
"items", | ||
"preserveOrder", | ||
]); | ||
function getUnknownProps(o, knownProperties) { | ||
@@ -185,3 +190,3 @@ return Object.keys(o).filter(function (prop) { | ||
.filter(function (legendUrl) { return typeof legendUrl === "string"; }) | ||
.forEach(legendUrls.add); | ||
.forEach(function (legendUrl) { return legendUrls.add(legendUrl); }); | ||
var result = Array.from(legendUrls).map(function (url) { | ||
@@ -188,0 +193,0 @@ return { url: url }; |
@@ -13,3 +13,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.kmlCatalogItem = exports.mapboxVectorTileCatalogItem = exports.cartoMapCatalogItem = exports.geoJsonCatalogItem = exports.wpsResultItem = exports.wpsCatalogItem = exports.esriMapServerCatalogGroup = exports.esriFeatureServerCatalogItem = exports.esriMapServerCatalogItem = exports.esriCatalogGroup = exports.sosCatalogItem = exports.webFeatureServerCatalogGroup = exports.groupFromConvertMembersArray = void 0; | ||
var is_1 = __importDefault(require("@sindresorhus/is")); | ||
@@ -29,6 +28,3 @@ var Message_1 = require("../Message"); | ||
: undefined; | ||
var propsToCopy = ["isOpen"]; | ||
var unknownProps = helpers_1.getUnknownProps(group, __spreadArrays(propsToCopy, helpers_1.catalogMemberProps, helpers_1.catalogMemberPropsIgnore, [ | ||
"items", | ||
])); | ||
var unknownProps = helpers_1.getUnknownProps(group, __spreadArrays(helpers_1.catalogGroupProps, helpers_1.catalogGroupPropsIgnore)); | ||
var extraPropsMessages = helpers_1.propsToWarnings(Message_1.ModelType.Group, unknownProps, group.name); | ||
@@ -46,3 +42,3 @@ var result = { | ||
}; | ||
helpers_1.copyProps(group, result.member, __spreadArrays(helpers_1.catalogMemberProps, propsToCopy)); | ||
helpers_1.copyProps(group, result.member, helpers_1.catalogGroupProps); | ||
if (options.copyUnknownProperties) { | ||
@@ -126,3 +122,3 @@ helpers_1.copyProps(group, result.member, unknownProps); | ||
} | ||
// // itemProperties not supported in v8 | ||
// // not supported in v8 | ||
// if (isPlainObject(item.itemProperties)) { | ||
@@ -243,51 +239,2 @@ // // Treat itemProperties as esriMapServerCatalogGroup (it can also be esriFeatureServerCatalogGroup - but this isn't implemented in catalog-converter). | ||
exports.esriMapServerCatalogGroup = esriMapServerCatalogGroup; | ||
function wpsCatalogItem(item, options) { | ||
if (!options.partial && !is_1.default.string(item.url)) { | ||
return helpers_1.nullResult(Message_1.missingRequiredProp(Message_1.ModelType.WpsItem, "url", "string", item.name)); | ||
} | ||
var propsToCopy = [ | ||
"url", | ||
"identifier", | ||
"description", | ||
"executeWithHttpGet", | ||
]; | ||
var unknownProps = helpers_1.getUnknownProps(item, __spreadArrays(helpers_1.catalogMemberProps, helpers_1.catalogMemberPropsIgnore, propsToCopy, [ | ||
"featureInfoTemplate", | ||
])); | ||
var member = { | ||
type: "wps", | ||
name: item.name, | ||
}; | ||
var messages = helpers_1.propsToWarnings(Message_1.ModelType.WpsItem, unknownProps, item.name); | ||
helpers_1.copyProps(item, member, __spreadArrays(helpers_1.catalogMemberProps, propsToCopy)); | ||
if (options.copyUnknownProperties) { | ||
helpers_1.copyProps(item, member, unknownProps); | ||
} | ||
return { | ||
member: member, | ||
messages: messages, | ||
}; | ||
} | ||
exports.wpsCatalogItem = wpsCatalogItem; | ||
function wpsResultItem(item, options) { | ||
var propsToCopy = ["wpsResponseUrl", "wpsResponse", "parameters"]; | ||
// do something for parameterValues | ||
var unknownProps = helpers_1.getUnknownProps(item, __spreadArrays(helpers_1.catalogMemberProps, helpers_1.catalogMemberPropsIgnore, propsToCopy, [ | ||
"featureInfoTemplate", | ||
])); | ||
var member = { | ||
type: "wps-result", | ||
name: item.name, | ||
}; | ||
var messages = helpers_1.propsToWarnings(Message_1.ModelType.WpsResultItem, unknownProps, item.name); | ||
helpers_1.copyProps(item, member, __spreadArrays(helpers_1.catalogMemberProps, propsToCopy)); | ||
if (options.copyUnknownProperties) { | ||
helpers_1.copyProps(item, member, unknownProps); | ||
} | ||
return { | ||
member: member, | ||
messages: messages, | ||
}; | ||
} | ||
exports.wpsResultItem = wpsResultItem; | ||
// Write properly | ||
@@ -409,2 +356,35 @@ function geoJsonCatalogItem(item, options) { | ||
exports.kmlCatalogItem = kmlCatalogItem; | ||
function socrataCatalogGroup(item, options) { | ||
if (!options.partial && !is_1.default.string(item.url)) { | ||
return helpers_1.nullResult(Message_1.missingRequiredProp(Message_1.ModelType.SocrataCatalogGroup, "url", "string", item.name)); | ||
} | ||
var member = { | ||
type: "socrata-group", | ||
name: item.name, | ||
}; | ||
var propsToCopy = [ | ||
{ | ||
v7: "filterQuery", | ||
v8: "filterQuery", | ||
// Transform string[] to JsonObject | ||
// eg ["prop=Value"] to {prop:"Value"} | ||
translationFn: function (f) { | ||
return f.reduce(function (obj, curr) { | ||
var split = curr.split("="); | ||
obj[split[0]] = split[1]; | ||
return obj; | ||
}, {}); | ||
}, | ||
}, | ||
]; | ||
var propsIgnore = ["groupBy"]; | ||
var unknownProps = helpers_1.getUnknownProps(item, __spreadArrays(propsToCopy, propsIgnore, helpers_1.catalogGroupProps, helpers_1.catalogGroupPropsIgnore)); | ||
var messages = helpers_1.propsToWarnings(Message_1.ModelType.SocrataCatalogGroup, unknownProps, item.name); | ||
if (options.copyUnknownProperties) { | ||
helpers_1.copyProps(item, member, unknownProps); | ||
} | ||
helpers_1.copyProps(item, member, __spreadArrays(helpers_1.catalogGroupProps, propsToCopy)); | ||
return { member: member, messages: messages }; | ||
} | ||
exports.socrataCatalogGroup = socrataCatalogGroup; | ||
//# sourceMappingURL=other.js.map |
@@ -13,3 +13,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.wmsCatalogGroup = void 0; | ||
var dist_1 = __importDefault(require("@sindresorhus/is/dist")); | ||
@@ -31,4 +30,3 @@ var lodash_1 = require("lodash"); | ||
} | ||
var propsToCopy = ["isOpen"]; | ||
var unknownProps = helpers_1.getUnknownProps(item, __spreadArrays(helpers_1.catalogMemberProps, helpers_1.catalogMemberPropsIgnore, propsToCopy, [ | ||
var unknownProps = helpers_1.getUnknownProps(item, __spreadArrays(helpers_1.catalogGroupProps, helpers_1.catalogGroupPropsIgnore, [ | ||
"itemProperties", | ||
@@ -44,3 +42,3 @@ ])); | ||
} | ||
helpers_1.copyProps(item, member, __spreadArrays(helpers_1.catalogMemberProps, propsToCopy)); | ||
helpers_1.copyProps(item, member, helpers_1.catalogGroupProps); | ||
if (lodash_1.isPlainObject(item.itemProperties)) { | ||
@@ -47,0 +45,0 @@ var itemPropertiesResult = helpers_1.itemProperties(item, WmsCatalogItem_1.wmsCatalogItem, options); |
@@ -13,3 +13,2 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.tileErrorHandlingOptions = exports.wmsCatalogItem = void 0; | ||
var dist_1 = __importDefault(require("@sindresorhus/is/dist")); | ||
@@ -16,0 +15,0 @@ var Message_1 = require("../Message"); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.foldMessage = exports.getInputNotPlainObjectDetails = exports.getUnknownTypeDetails = exports.getMissingRequiredPropDetails = exports.getUnknownPropDetails = exports.inputNotPlainObject = exports.unknownType = exports.missingRequiredProp = exports.unknownProp = exports.isInputNotPlainObject = exports.isUnknownType = exports.isMissingRequiredProp = exports.isUnknownProp = exports.unknownPropOpaque = exports.ModelType = exports.Severity = void 0; | ||
var opaque_type_1 = require("@iadvize-oss/opaque-type"); | ||
@@ -21,2 +20,3 @@ var foldable_helpers_1 = require("@iadvize-oss/foldable-helpers"); | ||
ModelType["SosItem"] = "SensorObservationServiceCatalogItem"; | ||
ModelType["CswCatalogGroup"] = "CswCatalogGroup"; | ||
ModelType["EsriCatalogGroup"] = "EsriCatalogGroup"; | ||
@@ -28,2 +28,3 @@ ModelType["EsriMapServerGroup"] = "EsriMapServerGroup"; | ||
ModelType["WpsResultItem"] = "WpsResultItem"; | ||
ModelType["WpsGroup"] = "WpsGroup"; | ||
ModelType["CkanGroup"] = "CkanCatalogGroup"; | ||
@@ -35,2 +36,3 @@ ModelType["CkanCatalogItem"] = "CkanCatalogItem"; | ||
ModelType["KmlCatalogItem"] = "KmlCatalogItem"; | ||
ModelType["SocrataCatalogGroup"] = "SocrataCatalogGroup"; | ||
})(ModelType = exports.ModelType || (exports.ModelType = {})); | ||
@@ -37,0 +39,0 @@ exports.unknownPropOpaque = opaque_type_1.createOpaqueAPI("UnknownProp"); |
@@ -10,4 +10,6 @@ import { ConversionOptions } from "../ConversionOptions"; | ||
export declare const catalogMemberProps: CopyProps[]; | ||
export declare const catalogGroupProps: CopyProps[]; | ||
export declare const imageryLayerProps: CopyProps[]; | ||
export declare const catalogMemberPropsIgnore: string[]; | ||
export declare const catalogGroupPropsIgnore: string[]; | ||
export declare function getUnknownProps(o: PlainObject, knownProperties: CopyProps[]): string[]; | ||
@@ -14,0 +16,0 @@ export declare function propsToWarnings(modelType: ModelType, properties: string[], label: string): Message[]; |
@@ -10,4 +10,2 @@ import { CatalogMember, MemberResult, MembersResult } from "../types"; | ||
export declare function esriMapServerCatalogGroup(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
export declare function wpsCatalogItem(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
export declare function wpsResultItem(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
export declare function geoJsonCatalogItem(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
@@ -17,1 +15,2 @@ export declare function cartoMapCatalogItem(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
export declare function kmlCatalogItem(item: CatalogMember, options: ConversionOptions): MemberResult; | ||
export declare function socrataCatalogGroup(item: CatalogMember, options: ConversionOptions): MemberResult; |
@@ -14,2 +14,3 @@ export declare enum Severity { | ||
SosItem = "SensorObservationServiceCatalogItem", | ||
CswCatalogGroup = "CswCatalogGroup", | ||
EsriCatalogGroup = "EsriCatalogGroup", | ||
@@ -21,2 +22,3 @@ EsriMapServerGroup = "EsriMapServerGroup", | ||
WpsResultItem = "WpsResultItem", | ||
WpsGroup = "WpsGroup", | ||
CkanGroup = "CkanCatalogGroup", | ||
@@ -27,3 +29,4 @@ CkanCatalogItem = "CkanCatalogItem", | ||
MapboxVectorTileCatalogItem = "MapboxVectorTileCatalogItem", | ||
KmlCatalogItem = "KmlCatalogItem" | ||
KmlCatalogItem = "KmlCatalogItem", | ||
SocrataCatalogGroup = "SocrataCatalogGroup" | ||
} | ||
@@ -49,3 +52,7 @@ interface MessageBase { | ||
} | ||
export declare const unknownPropOpaque: import("@iadvize-oss/opaque-type").OpaqueApi<"UnknownProp", UnknownPropDetails>; | ||
export declare const unknownPropOpaque: { | ||
toOpaque: (value: UnknownPropDetails) => import("@iadvize-oss/opaque-type").Opaque<"UnknownProp">; | ||
fromOpaque: (opaque: import("@iadvize-oss/opaque-type").Opaque<"UnknownProp">) => UnknownPropDetails; | ||
isOpaque: (thing: any) => thing is import("@iadvize-oss/opaque-type").Opaque<"UnknownProp">; | ||
}; | ||
export interface UnknownProp extends MessageBase { | ||
@@ -55,3 +62,7 @@ details: ReturnType<typeof unknownPropOpaque.toOpaque>; | ||
export declare function isUnknownProp(m: Message): m is UnknownProp; | ||
declare const missingRequiredPropOpaque: import("@iadvize-oss/opaque-type").OpaqueApi<"MissingRequiredProp", MissingRequiredPropDetails>; | ||
declare const missingRequiredPropOpaque: { | ||
toOpaque: (value: MissingRequiredPropDetails) => import("@iadvize-oss/opaque-type").Opaque<"MissingRequiredProp">; | ||
fromOpaque: (opaque: import("@iadvize-oss/opaque-type").Opaque<"MissingRequiredProp">) => MissingRequiredPropDetails; | ||
isOpaque: (thing: any) => thing is import("@iadvize-oss/opaque-type").Opaque<"MissingRequiredProp">; | ||
}; | ||
export interface MissingRequiredProp extends MessageBase { | ||
@@ -61,3 +72,7 @@ details: ReturnType<typeof missingRequiredPropOpaque.toOpaque>; | ||
export declare function isMissingRequiredProp(m: Message): m is MissingRequiredProp; | ||
declare const unknownTypeOpaque: import("@iadvize-oss/opaque-type").OpaqueApi<"UnknownType", UnknownTypeDetails>; | ||
declare const unknownTypeOpaque: { | ||
toOpaque: (value: UnknownTypeDetails) => import("@iadvize-oss/opaque-type").Opaque<"UnknownType">; | ||
fromOpaque: (opaque: import("@iadvize-oss/opaque-type").Opaque<"UnknownType">) => UnknownTypeDetails; | ||
isOpaque: (thing: any) => thing is import("@iadvize-oss/opaque-type").Opaque<"UnknownType">; | ||
}; | ||
export interface UnknownType extends MessageBase { | ||
@@ -67,3 +82,7 @@ details: ReturnType<typeof unknownTypeOpaque.toOpaque>; | ||
export declare function isUnknownType(m: Message): m is UnknownType; | ||
declare const inputNotPlainObjectOpaque: import("@iadvize-oss/opaque-type").OpaqueApi<"InputNotPlainObject", InputNotPlainObjectDetails>; | ||
declare const inputNotPlainObjectOpaque: { | ||
toOpaque: (value: InputNotPlainObjectDetails) => import("@iadvize-oss/opaque-type").Opaque<"InputNotPlainObject">; | ||
fromOpaque: (opaque: import("@iadvize-oss/opaque-type").Opaque<"InputNotPlainObject">) => InputNotPlainObjectDetails; | ||
isOpaque: (thing: any) => thing is import("@iadvize-oss/opaque-type").Opaque<"InputNotPlainObject">; | ||
}; | ||
export interface InputNotPlainObject extends MessageBase { | ||
@@ -70,0 +89,0 @@ details: ReturnType<typeof inputNotPlainObjectOpaque.toOpaque>; |
{ | ||
"name": "catalog-converter", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"description": "", | ||
@@ -21,2 +21,5 @@ "keywords": [], | ||
}, | ||
"bin": { | ||
"catalog-converter": "./bin/catalog-converter" | ||
}, | ||
"scripts": { | ||
@@ -23,0 +26,0 @@ "lint": "eslint 'src/**/*.ts' 'test/**/*.ts'", |
@@ -11,10 +11,26 @@ # Catalog Converter | ||
Install, build, run | ||
Install, build: | ||
``` | ||
```bash | ||
npm install | ||
npm run build:code | ||
node ./bin/cli.js compiled/mapconfig.json compiled/mapconfig-out.json | ||
``` | ||
args in `src/cli.ts` | ||
Convert v7 to v8 catalog: | ||
```bash | ||
./bin/catalog-converter mapconfig-input-v7.json mapconfig-output-v8.json | ||
``` | ||
Run help to see the supported command line arguments: | ||
```bash | ||
./bin/catalog-converter --help | ||
``` | ||
## Trouble converting your v7 catalog to v8? | ||
While we have tried our best to translate most of the v7 catalog configuration to equivalent v8, we could still have missed out many. If you find warnings about unknown or unsupported properties when running this script, you may: | ||
- Check the v8 documentation on [connecting to data](https://docs.terria.io/guide/connecting-to-data/) to see if the properties you are after (or its equivalent) are available in v8. | ||
- You can reach out to us on [TerriaJS Discussions](https://github.com/TerriaJS/terriajs/discussions) forum and we'll be happy to help! |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
3746151
57
40116
36