pcf-scripts
Version:
This package contains a module for building PowerApps Component Framework (PCF) controls. See project homepage how to install.
827 lines (779 loc) • 28.5 kB
JSON
{
"definitions": {
"manifest": {
"type": "object",
"properties": {
"control": {
"type": "array",
"items": { "$ref": "#/definitions/control" },
"maxItems": 1
}
},
"required": ["control"],
"additionalProperties": false
},
"control": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/controlAttribs" },
"external-service-usage": {
"type": "array",
"items": { "$ref": "#/definitions/external-service-usage"},
"maxItems": 1
},
"type-group": {
"type": "array",
"items": { "$ref": "#/definitions/type-group" }
},
"property": {
"type": "array",
"items": { "$ref": "#/definitions/property" }
},
"common-property": {
"type": "array",
"items": { "$ref": "#/definitions/common-property" }
},
"property-dependencies": {
"type": "array",
"items": { "$ref": "#/definitions/propertyDependencies" },
"maxItems": 1
},
"data-set": {
"type": "array",
"items": { "$ref": "#/definitions/dataSet" }
},
"resources": {
"type": "array",
"items": { "$ref": "#/definitions/resource" },
"maxItems": 1
},
"feature-usage": {
"type": "array",
"items": { "$ref": "#/definitions/featureUsage" },
"maxItems": 1
},
"event": {
"type": "array",
"items": { "$ref": "#/definitions/event" }
},
"common-event": {
"type": "array",
"items": { "$ref": "#/definitions/commonEvent" }
},
"subscribed-functionalities": {
"type": "array",
"items": { "$ref": "#/definitions/subscribed-functionalities" },
"maxItems": 1
},
"supported-platforms": {
"type": "array",
"items": { "$ref": "#/definitions/supportedPlatforms" },
"maxItems": 1
},
"action": {
"type": "array",
"items": { "$ref": "#/definitions/action" }
},
"platform-action": {
"type": "array",
"items": { "$ref": "#/definitions/platform-action" }
}
},
"required": ["$", "resources"],
"additionalProperties": false
},
"controlAttribs": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"pattern": "^(?!\\.|\\d)(?!.*\\.$)(?!.*?\\.\\d)(?!.*?\\.\\.)[a-zA-Z0-9.]+$"
},
"constructor": {
"type": "string",
"pattern": "^(?!\\d)[a-zA-Z0-9]+$"
},
"version": { "$ref": "#/definitions/versionType" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"control-type": {
"type": "string",
"enum": ["standard", "virtual", "none", "react"]
},
"preview-image": { "type": "string" },
"api-version": { "type": "string" },
"design-mapping-file": { "type": "string" },
"authoring-manifest": { "type": "string" },
"hidden": { "$ref": "#/definitions/booleanType" }
},
"required": ["namespace", "constructor", "version", "display-name-key"],
"additionalProperties": false
},
"property": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/propertyAttribs" },
"value": {
"type": "array",
"items": { "$ref": "#/definitions/enum" }
}
},
"required": ["$"],
"additionalProperties": false
},
"common-property": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/commonPropertyAttribs" },
"value": {
"type": "array",
"items": { "$ref": "#/definitions/enum" }
}
},
"required": ["$"],
"additionalProperties": false
},
"propertyAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"usage": { "$ref": "#/definitions/usageType" },
"required": { "$ref": "#/definitions/booleanType" },
"of-type" : { "$ref": "#/definitions/dataType" },
"of-type-group": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"default-value": { "type": "string" },
"pfx-default-value": { "type": "string" },
"resettable": { "$ref": "#/definitions/booleanType" },
"hidden": { "$ref": "#/definitions/booleanType" }
},
"required": ["name", "usage", "display-name-key"],
"additionalProperties": false
},
"commonPropertyAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"null-default": { "type": "string" },
"default-value": { "type": "string" },
"pfx-default-value": { "type": "string" },
"phone-default-value": { "type": "string" },
"web-default-value": { "type": "string" }
},
"required": ["name", "default-value"],
"additionalProperties": false
},
"subscribed-functionalities": {
"type": "object",
"properties": {
"subscribed-functionality": {
"type": "array",
"items": { "$ref": "#/definitions/subscribed-functionality" }
}
}
},
"subscribed-functionality": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/subFuncAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"subFuncAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"value": { "type": "string" }
},
"required": ["name", "value"],
"additionalProperties": false
},
"event": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/eventAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"eventAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"pfx-default-value": { "type": "string" },
"hidden": { "$ref": "#/definitions/booleanType" }
},
"required": ["name"],
"additionalProperties": false
},
"commonEvent": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/commonEventAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"commonEventAttribs": {
"type": "object",
"properties": {
"name": { "$ref": "#/definitions/commonEventType" },
"pfx-default-value": { "type": "string" }
},
"required": ["name"],
"additionalProperties": false
},
"propertyDependencies": {
"type": "object",
"properties": {
"property-dependency": {
"type": "array",
"items": { "$ref": "#/definitions/propertyDependency" }
}
},
"required": ["property-dependency"],
"additionalProperties": false
},
"propertyDependency": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/propertyDependencyAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"propertyDependencyAttribs": {
"type": "object",
"properties": {
"input": { "type": "string" },
"output": { "type": "string" },
"required-for": { "type": "string" }
},
"required": ["input", "output", "required-for"],
"additionalProperties": false
},
"enum": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/enumAttribs" },
"_": { "type": "string" }
},
"required": ["$", "_"],
"additionalProperties": false
},
"enumAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"default": { "type": "string" }
},
"required": ["name", "display-name-key"],
"additionalProperties": false
},
"propertySet": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/propertySetAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"propertySetAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"usage": { "$ref": "#/definitions/usageType" },
"required": { "$ref": "#/definitions/booleanType" },
"of-type" : { "$ref": "#/definitions/dataType" },
"of-type-group": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" }
},
"required": ["name", "usage", "display-name-key"],
"additionalProperties": false
},
"dataSet": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/dataSetAttribs" },
"property-set": {
"type": "array",
"items": { "$ref": "#/definitions/propertySet" }
}
},
"required": ["$"],
"additionalProperties": false
},
"dataSetAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"cds-data-set-options": { "type": "string" },
"allow-default-selected-items": { "$ref": "#/definitions/booleanType" },
"pfx-default-value": { "type": "string" }
},
"required": ["name", "display-name-key"],
"additionalProperties": false
},
"external-service-usage": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"enabled": { "$ref": "#/definitions/booleanType"}
},
"required": ["enabled"],
"additionalProperties": false
},
"domain": {
"type": "array",
"items": { "$ref": "#/definitions/domain" }
}
},
"required": ["$"],
"additionalProperties": false
},
"domain": {
"type": "string"
},
"featureUsage": {
"type": "object",
"properties": {
"uses-feature": {
"type": "array",
"items": { "$ref": "#/definitions/usesFeature" }
},
"uses-connector": {
"type": "array",
"items": { "$ref": "#/definitions/usesConnector" }
}
},
"additionalProperties": false
},
"usesFeature": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/usesFeatureAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"usesFeatureAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"type": { "$ref": "#/definitions/usesFeatureType" },
"required": { "$ref": "#/definitions/booleanType" }
},
"required": ["name", "required"],
"additionalProperties": false
},
"usesConnector": {
"type": "object",
"properties": {
"$": { "$ref": "#/definitions/usesConnectorAttribs" }
},
"required": ["$"],
"additionalProperties": false
},
"usesConnectorAttribs": {
"type": "object",
"properties": {
"name": { "type": "string" },
"id": { "type": "string" },
"required": { "$ref": "#/definitions/booleanType" }
},
"required": ["name", "id", "required"],
"additionalProperties": false
},
"type-group": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" }
},
"required": ["name"],
"additionalProperties": false
},
"type": {
"type": "array",
"items": { "$ref": "#/definitions/dataType" }
}
},
"required": ["$", "type"],
"additionalProperties": false
},
"supportedPlatforms": {
"type": "object",
"properties": {
"supported-platform": {
"type": "array",
"items": { "$ref": "#/definitions/supportedPlatform" }
}
},
"required": ["supported-platform"],
"additionalProperties": false
},
"supportedPlatform": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" }
},
"required": ["name"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"action": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" }
},
"required": ["name"],
"additionalProperties": false
},
"parameter": {
"type": "array",
"items": { "$ref": "#/definitions/parameter" }
}
},
"required": ["$"],
"additionalProperties": false
},
"platform-action": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"action-type": { "type": "string" }
},
"required": ["action-type"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"parameter": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" },
"display-name-key": { "type": "string" },
"description-key": { "type": "string" },
"of-type": { "type": "string" },
"required": { "$ref": "#/definitions/booleanType" }
},
"required": ["name"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"resource": {
"type": "object",
"properties": {
"code": {
"type": "array",
"items": { "$ref": "#/definitions/code" },
"maxItems": 1
},
"css": {
"type": "array",
"items": { "$ref": "#/definitions/css" }
},
"resx": {
"type": "array",
"items": { "$ref": "#/definitions/resx" }
},
"img": {
"type": "array",
"items": { "$ref": "#/definitions/img" }
},
"html": {
"type": "array",
"items": { "$ref": "#/definitions/html" }
},
"library": {
"type": "array",
"items": { "$ref": "#/definitions/library" }
},
"platform-library": {
"type": "array",
"items": { "$ref": "#/definitions/platform-library" }
},
"dependency": {
"type": "array",
"items": { "$ref": "#/definitions/resource-dependency" }
}
},
"required": ["code"],
"additionalProperties": false
},
"code": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "type": "string", "pattern": "^.+\\.ts$", "minLength": 1 },
"order": { "$ref": "#/definitions/orderType" }
},
"required": ["path", "order"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"css": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "$ref": "#/definitions/pathType" },
"order": { "$ref": "#/definitions/orderType" },
"outputDirectory" : { "$ref" : "#/definitions/outputDirectory"}
},
"required": ["path"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"img": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "$ref": "#/definitions/pathType" },
"outputDirectory" : { "$ref" : "#/definitions/outputDirectory"}
},
"required": ["path"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"html": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "$ref": "#/definitions/pathType" },
"order": { "$ref": "#/definitions/orderType" },
"outputDirectory" : { "$ref" : "#/definitions/outputDirectory"}
},
"required": ["path"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"library": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" },
"version": { "$ref": "#/definitions/versionType" },
"order": { "$ref": "#/definitions/orderType" }
},
"required": ["name", "version", "order"],
"additionalProperties": false
},
"packaged_library": {
"type": "array",
"items": { "$ref": "#/definitions/packagedLibrary" },
"maxItems": 1
},
"required": ["$"],
"additionalProperties": false
}
},
"platform-library": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" },
"version": { "$ref": "#/definitions/versionType" }
},
"required": ["name", "version"],
"additionalProperties": false
},
"required": ["$"],
"additionalProperties": false
}
},
"resource-dependency": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"name": { "type": "string" },
"version": { "type": "string" },
"order": { "$ref": "#/definitions/orderType" },
"type": { "$ref": "#/definitions/dependencyType" },
"load-type": { "$ref": "#/definitions/loadType" }
},
"required": ["name", "type"],
"additionalProperties": false
},
"required": ["$"],
"additionalProperties": false
}
},
"resx": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "$ref": "#/definitions/pathType" },
"version": { "$ref": "#/definitions/versionType" },
"outputDirectory" : { "$ref" : "#/definitions/outputDirectory"}
},
"required": ["path", "version"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"packagedLibrary": {
"type": "object",
"properties": {
"$": {
"type": "object",
"properties": {
"path": { "$ref": "#/definitions/pathType" },
"version": { "$ref": "#/definitions/versionType" },
"outputDirectory" : { "$ref" : "#/definitions/outputDirectory"}
},
"required": ["path", "version"],
"additionalProperties": false
}
},
"required": ["$"],
"additionalProperties": false
},
"orderType": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"versionType": {
"type": "string",
"pattern": "^[\\^=>]*\\d+(\\.\\d+)*$"
},
"pathType": {
"type": "string",
"minLength": 1
},
"outputDirectory": {
"type": "string",
"minLength": 1
},
"booleanType": {
"type": "string",
"enum": ["true", "false"]
},
"usageType": {
"type": "string",
"enum": ["bound", "input", "output"]
},
"usesFeatureType": {
"type": "string",
"enum": ["api"]
},
"dataType": {
"type": "string",
"enum": [
"Currency",
"DateAndTime.DateAndTime",
"DateAndTime.DateOnly",
"Decimal",
"Enum",
"File",
"Form.Main",
"FP",
"Lookup.Customer",
"Lookup.Owner",
"Lookup.PartyList",
"Lookup.Regarding",
"Lookup.Simple",
"Multiple",
"MultiSelectOptionSet",
"Object",
"OptionSet",
"SingleLine.Email",
"SingleLine.Phone",
"SingleLine.Text",
"SingleLine.TextArea",
"SingleLine.Ticker",
"SingleLine.URL",
"TwoOptions",
"Whole.None"
]
},
"commonEventType": {
"type": "string",
"enum": [
"OnSelect",
"OnChange"
]
},
"loadType": {
"type": "string",
"enum": [
"order",
"onDemand"
]
},
"dependencyType": {
"type": "string",
"enum": [
"control"
]
}
},
"type": "object",
"properties": {
"manifest": { "$ref": "#/definitions/manifest" }
},
"required": ["manifest"]
}