@prismatic-io/spectral 10.18.7-preview.1 → 10.18.7-preview.3
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/dist/generators/componentManifest/cli.js +2 -6
- package/dist/generators/componentManifest/createStaticFiles.d.ts +4 -9
- package/dist/generators/componentManifest/createStaticFiles.js +4 -5
- package/dist/generators/componentManifest/index.d.ts +2 -3
- package/dist/generators/componentManifest/index.js +2 -2
- package/dist/generators/componentManifest/templates/package.json.ejs +1 -1
- package/dist/serverTypes/convertComponent.d.ts +6 -0
- package/dist/serverTypes/convertComponent.js +46 -6
- package/package.json +1 -1
|
@@ -117,17 +117,13 @@ const runMain = (process) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
117
117
|
console.error("Component is invalid.");
|
|
118
118
|
process.exit(1);
|
|
119
119
|
}
|
|
120
|
-
const
|
|
120
|
+
const { version: spectralVersion } = require("../../../package.json");
|
|
121
121
|
yield (0, index_1.createComponentManifest)({
|
|
122
122
|
component,
|
|
123
123
|
dryRun: flags.dry_run.value,
|
|
124
124
|
skipSignatureVerify: flags.skip_signature_verify.value,
|
|
125
125
|
packageName: (_a = flags.name.value) !== null && _a !== void 0 ? _a : `@component-manifests/${component.key}`,
|
|
126
|
-
|
|
127
|
-
spectral: packageJson.version,
|
|
128
|
-
dependencies: packageJson.dependencies,
|
|
129
|
-
devDependencies: packageJson.devDependencies,
|
|
130
|
-
},
|
|
126
|
+
spectralVersion,
|
|
131
127
|
verbose: flags.verbose.value,
|
|
132
128
|
sourceDir: path_1.default.join(__dirname, "templates"),
|
|
133
129
|
destinationDir: flags.output_dir.value
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
import type { Component } from "../../serverTypes";
|
|
2
2
|
import type { ConfigVarResultCollection, Inputs, TriggerPayload, TriggerResult } from "../../types";
|
|
3
|
-
export interface PackageDependencies {
|
|
4
|
-
spectral: string;
|
|
5
|
-
dependencies: Record<string, string>;
|
|
6
|
-
devDependencies: Record<string, string>;
|
|
7
|
-
}
|
|
8
3
|
interface CreateStaticFilesProps<TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>> {
|
|
9
4
|
component: Component<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>;
|
|
10
5
|
dryRun: boolean;
|
|
11
6
|
signature: string | null;
|
|
12
7
|
packageName: string;
|
|
13
|
-
|
|
8
|
+
spectralVersion: string;
|
|
14
9
|
verbose: boolean;
|
|
15
10
|
sourceDir: string;
|
|
16
11
|
destinationDir: string;
|
|
17
12
|
registry: string | null;
|
|
18
13
|
}
|
|
19
|
-
export declare const createStaticFiles: <TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>>({ component, dryRun, signature, packageName,
|
|
14
|
+
export declare const createStaticFiles: <TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>>({ component, dryRun, signature, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }: CreateStaticFilesProps<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>) => Promise<{
|
|
20
15
|
index: string | void;
|
|
21
16
|
packageJson: string | void;
|
|
22
17
|
tsConfig: string | void;
|
|
@@ -37,13 +32,13 @@ export declare const renderIndex: ({ component, dryRun, verbose, sourceDir, dest
|
|
|
37
32
|
interface RenderPackageJsonProps {
|
|
38
33
|
dryRun: boolean;
|
|
39
34
|
packageName: string;
|
|
40
|
-
|
|
35
|
+
spectralVersion: string;
|
|
41
36
|
verbose: boolean;
|
|
42
37
|
sourceDir: string;
|
|
43
38
|
destinationDir: string;
|
|
44
39
|
registry: string | null;
|
|
45
40
|
}
|
|
46
|
-
export declare const renderPackageJson: ({ dryRun, packageName,
|
|
41
|
+
export declare const renderPackageJson: ({ dryRun, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }: RenderPackageJsonProps) => Promise<string | void>;
|
|
47
42
|
interface RenderTsConfigProps {
|
|
48
43
|
dryRun: boolean;
|
|
49
44
|
verbose: boolean;
|
|
@@ -16,7 +16,7 @@ exports.renderReadme = exports.renderTsConfig = exports.renderPackageJson = expo
|
|
|
16
16
|
const path_1 = __importDefault(require("path"));
|
|
17
17
|
const createTemplate_1 = require("../utils/createTemplate");
|
|
18
18
|
const helpers_1 = require("./helpers");
|
|
19
|
-
const createStaticFiles = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, signature, packageName,
|
|
19
|
+
const createStaticFiles = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, signature, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }) {
|
|
20
20
|
var _b, _c, _d, _e;
|
|
21
21
|
if (verbose) {
|
|
22
22
|
console.info("Creating static files...");
|
|
@@ -34,7 +34,7 @@ const createStaticFiles = (_a) => __awaiter(void 0, [_a], void 0, function* ({ c
|
|
|
34
34
|
});
|
|
35
35
|
const packageJson = yield (0, exports.renderPackageJson)({
|
|
36
36
|
dryRun,
|
|
37
|
-
|
|
37
|
+
spectralVersion,
|
|
38
38
|
packageName,
|
|
39
39
|
verbose,
|
|
40
40
|
sourceDir,
|
|
@@ -104,14 +104,13 @@ const renderIndex = (_a) => __awaiter(void 0, [_a], void 0, function* ({ compone
|
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
106
|
exports.renderIndex = renderIndex;
|
|
107
|
-
const renderPackageJson = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dryRun, packageName,
|
|
107
|
+
const renderPackageJson = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dryRun, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }) {
|
|
108
108
|
return yield (0, createTemplate_1.createTemplate)({
|
|
109
109
|
source: path_1.default.join(sourceDir, "package.json.ejs"),
|
|
110
110
|
destination: path_1.default.join(destinationDir, "package.json"),
|
|
111
111
|
data: {
|
|
112
112
|
packageName,
|
|
113
|
-
spectralVersion
|
|
114
|
-
typescriptVersion: dependencies.devDependencies.typescript,
|
|
113
|
+
spectralVersion,
|
|
115
114
|
helpers: helpers_1.helpers,
|
|
116
115
|
registry,
|
|
117
116
|
},
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { Component } from "../../serverTypes";
|
|
2
2
|
import type { ConfigVarResultCollection, Inputs, TriggerPayload, TriggerResult } from "../../types";
|
|
3
|
-
import { type PackageDependencies } from "./createStaticFiles";
|
|
4
3
|
interface CreateComponentManifestProps<TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>> {
|
|
5
4
|
component: Component<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>;
|
|
6
5
|
dryRun: boolean;
|
|
7
6
|
skipSignatureVerify: boolean;
|
|
8
7
|
packageName: string;
|
|
9
|
-
|
|
8
|
+
spectralVersion: string;
|
|
10
9
|
verbose: boolean;
|
|
11
10
|
sourceDir: string;
|
|
12
11
|
destinationDir: string;
|
|
13
12
|
registry: string | null;
|
|
14
13
|
}
|
|
15
|
-
export declare const createComponentManifest: <TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>>({ component, dryRun, skipSignatureVerify, packageName,
|
|
14
|
+
export declare const createComponentManifest: <TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>>({ component, dryRun, skipSignatureVerify, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }: CreateComponentManifestProps<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>) => Promise<void>;
|
|
16
15
|
export {};
|
|
@@ -21,7 +21,7 @@ const createDataSources_1 = require("./createDataSources");
|
|
|
21
21
|
const createStaticFiles_1 = require("./createStaticFiles");
|
|
22
22
|
const createTriggers_1 = require("./createTriggers");
|
|
23
23
|
const removeComponentManifest_1 = require("./removeComponentManifest");
|
|
24
|
-
const createComponentManifest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, skipSignatureVerify, packageName,
|
|
24
|
+
const createComponentManifest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, skipSignatureVerify, packageName, spectralVersion, verbose, sourceDir, destinationDir, registry, }) {
|
|
25
25
|
const signature = yield (0, prism_1.getComponentSignatureWithPrism)({
|
|
26
26
|
skipSignatureVerify,
|
|
27
27
|
});
|
|
@@ -38,7 +38,7 @@ const createComponentManifest = (_a) => __awaiter(void 0, [_a], void 0, function
|
|
|
38
38
|
dryRun,
|
|
39
39
|
packageName,
|
|
40
40
|
signature,
|
|
41
|
-
|
|
41
|
+
spectralVersion,
|
|
42
42
|
verbose,
|
|
43
43
|
sourceDir,
|
|
44
44
|
destinationDir,
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { type ComponentDefinition, type ComponentHooks, type ConfigVarResultCollection, type ConnectionDefinition, type ConnectionInput, type ConnectionTemplateInputField, type InputFieldDefinition, type Inputs, type OnPremConnectionInput, type TriggerDefinition, type TriggerPayload, type TriggerResult } from "../types";
|
|
2
2
|
import { type PollingTriggerDefinition } from "../types/PollingTriggerDefinition";
|
|
3
3
|
import type { Component as ServerComponent, Connection as ServerConnection, Input as ServerInput, Trigger as ServerTrigger } from ".";
|
|
4
|
+
import { type CleanFn } from "./perform";
|
|
5
|
+
/** Auto-generated cleaner for structuredObject/dynamicObject containers.
|
|
6
|
+
* Recursively delegates to each child's clean function. Developers do not
|
|
7
|
+
* declare a top-level clean on these containers — the conversion always
|
|
8
|
+
* supplies one so nested clean functions are applied at runtime. */
|
|
9
|
+
export declare const cleanerFor: (input: InputFieldDefinition) => CleanFn | undefined;
|
|
4
10
|
export declare const convertInput: (key: string, definition: InputFieldDefinition | OnPremConnectionInput | ConnectionInput) => ServerInput;
|
|
5
11
|
export declare const _isValidTemplateValue: (template: string, inputs: {
|
|
6
12
|
[key: string]: ConnectionInput | ConnectionTemplateInputField;
|
|
@@ -14,12 +14,52 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.convertComponent = exports.convertConnection = exports.convertTrigger = exports.convertTemplateInput = exports._isValidTemplateValue = exports.convertInput = void 0;
|
|
17
|
+
exports.convertComponent = exports.convertConnection = exports.convertTrigger = exports.convertTemplateInput = exports._isValidTemplateValue = exports.convertInput = exports.cleanerFor = void 0;
|
|
18
18
|
const omit_1 = __importDefault(require("lodash/omit"));
|
|
19
19
|
const types_1 = require("../types");
|
|
20
20
|
const PollingTriggerDefinition_1 = require("../types/PollingTriggerDefinition");
|
|
21
21
|
const perform_1 = require("./perform");
|
|
22
|
-
const
|
|
22
|
+
const isPlainObject = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
23
|
+
/** Auto-generated cleaner for structuredObject/dynamicObject containers.
|
|
24
|
+
* Recursively delegates to each child's clean function. Developers do not
|
|
25
|
+
* declare a top-level clean on these containers — the conversion always
|
|
26
|
+
* supplies one so nested clean functions are applied at runtime. */
|
|
27
|
+
const cleanerFor = (input) => {
|
|
28
|
+
if (input.type === "structuredObject") {
|
|
29
|
+
const childCleaners = Object.entries(input.inputs).reduce((acc, [childKey, childDef]) => (Object.assign(Object.assign({}, acc), { [childKey]: (0, exports.cleanerFor)(childDef) })), {});
|
|
30
|
+
return (value) => {
|
|
31
|
+
if (!isPlainObject(value)) {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
return (0, perform_1.cleanParams)(value, childCleaners);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (input.type === "dynamicObject") {
|
|
38
|
+
const configCleaners = {};
|
|
39
|
+
for (const [configKey, configDef] of Object.entries(input.configurations)) {
|
|
40
|
+
configCleaners[configKey] = Object.entries(configDef.inputs).reduce((acc, [childKey, childDef]) => (Object.assign(Object.assign({}, acc), { [childKey]: (0, exports.cleanerFor)(childDef) })), {});
|
|
41
|
+
}
|
|
42
|
+
return (value) => {
|
|
43
|
+
if (!isPlainObject(value)) {
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
const { configuration, values } = value;
|
|
47
|
+
if (typeof configuration !== "string") {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
const cleaners = configCleaners[configuration];
|
|
51
|
+
if (!cleaners) {
|
|
52
|
+
return { configuration, values };
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
configuration,
|
|
56
|
+
values: isPlainObject(values) ? (0, perform_1.cleanParams)(values, cleaners) : values,
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return "clean" in input ? input.clean : undefined;
|
|
61
|
+
};
|
|
62
|
+
exports.cleanerFor = cleanerFor;
|
|
23
63
|
const convertInput = (key, definition) => {
|
|
24
64
|
// Cast: the field union is wider than any single member; runtime guards below handle it.
|
|
25
65
|
const _a = definition, { default: defaultValue, type, label, collection, inputs: childInputs, configurations } = _a, rest = __rest(_a, ["default", "type", "label", "collection", "inputs", "configurations"]);
|
|
@@ -86,7 +126,7 @@ exports.convertTemplateInput = convertTemplateInput;
|
|
|
86
126
|
const convertAction = (actionKey, _a, hooks) => {
|
|
87
127
|
var { inputs = {}, perform } = _a, action = __rest(_a, ["inputs", "perform"]);
|
|
88
128
|
const convertedInputs = Object.entries(inputs).map(([key, value]) => (0, exports.convertInput)(key, value));
|
|
89
|
-
const inputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: cleanerFor(value) })), {});
|
|
129
|
+
const inputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: (0, exports.cleanerFor)(value) })), {});
|
|
90
130
|
return Object.assign(Object.assign({}, action), { key: actionKey, inputs: convertedInputs, perform: (0, perform_1.createPerform)(perform, {
|
|
91
131
|
inputCleaners,
|
|
92
132
|
errorHandler: hooks === null || hooks === void 0 ? void 0 : hooks.error,
|
|
@@ -101,7 +141,7 @@ const convertTrigger = (triggerKey, trigger, hooks) => {
|
|
|
101
141
|
const convertedTriggerInputs = Object.entries(inputs).map(([key, value]) => {
|
|
102
142
|
return (0, exports.convertInput)(key, value);
|
|
103
143
|
});
|
|
104
|
-
const triggerInputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: cleanerFor(value) })), {});
|
|
144
|
+
const triggerInputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: (0, exports.cleanerFor)(value) })), {});
|
|
105
145
|
let scheduleSupport = "scheduleSupport" in trigger ? trigger.scheduleSupport : "invalid";
|
|
106
146
|
let convertedActionInputs = [];
|
|
107
147
|
let performToUse;
|
|
@@ -117,7 +157,7 @@ const convertTrigger = (triggerKey, trigger, hooks) => {
|
|
|
117
157
|
accum.push((0, exports.convertInput)(key, value));
|
|
118
158
|
return accum;
|
|
119
159
|
}, []);
|
|
120
|
-
actionInputCleaners = Object.entries(action.inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: cleanerFor(value) })), {});
|
|
160
|
+
actionInputCleaners = Object.entries(action.inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: (0, exports.cleanerFor)(value) })), {});
|
|
121
161
|
}
|
|
122
162
|
const combinedCleaners = Object.assign({}, actionInputCleaners, triggerInputCleaners);
|
|
123
163
|
performToUse = (0, perform_1.createPollingPerform)(trigger, {
|
|
@@ -169,7 +209,7 @@ exports.convertTrigger = convertTrigger;
|
|
|
169
209
|
const convertDataSource = (dataSourceKey, _a, hooks) => {
|
|
170
210
|
var { inputs = {}, perform } = _a, dataSource = __rest(_a, ["inputs", "perform"]);
|
|
171
211
|
const convertedInputs = Object.entries(inputs).map(([key, value]) => (0, exports.convertInput)(key, value));
|
|
172
|
-
const inputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: cleanerFor(value) })), {});
|
|
212
|
+
const inputCleaners = Object.entries(inputs).reduce((result, [key, value]) => (Object.assign(Object.assign({}, result), { [key]: (0, exports.cleanerFor)(value) })), {});
|
|
173
213
|
return Object.assign(Object.assign({}, dataSource), { key: dataSourceKey, inputs: convertedInputs, perform: (0, perform_1.createPerform)(perform, {
|
|
174
214
|
inputCleaners,
|
|
175
215
|
errorHandler: hooks === null || hooks === void 0 ? void 0 : hooks.error,
|