@microsoft/teamsfx-api 0.22.3 → 0.22.4-alpha.06f5ef6da.0

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.
Files changed (123) hide show
  1. package/build/cli.d.ts +203 -0
  2. package/build/cli.d.ts.map +1 -0
  3. package/build/{v3/core.js → cli.js} +1 -1
  4. package/build/cli.js.map +1 -0
  5. package/build/constants.d.ts +4 -12
  6. package/build/constants.d.ts.map +1 -1
  7. package/build/constants.js +4 -12
  8. package/build/constants.js.map +1 -1
  9. package/build/context.d.ts +9 -28
  10. package/build/context.d.ts.map +1 -1
  11. package/build/error.d.ts +4 -47
  12. package/build/error.d.ts.map +1 -1
  13. package/build/error.js +9 -139
  14. package/build/error.js.map +1 -1
  15. package/build/index.d.ts +5 -16
  16. package/build/index.d.ts.map +1 -1
  17. package/build/index.js +5 -17
  18. package/build/index.js.map +1 -1
  19. package/build/qm/index.d.ts +0 -1
  20. package/build/qm/index.d.ts.map +1 -1
  21. package/build/qm/index.js +0 -1
  22. package/build/qm/index.js.map +1 -1
  23. package/build/qm/question.d.ts +134 -26
  24. package/build/qm/question.d.ts.map +1 -1
  25. package/build/qm/question.js +0 -53
  26. package/build/qm/question.js.map +1 -1
  27. package/build/qm/ui.d.ts +72 -99
  28. package/build/qm/ui.d.ts.map +1 -1
  29. package/build/qm/ui.js +0 -86
  30. package/build/qm/ui.js.map +1 -1
  31. package/build/qm/validation.d.ts +7 -18
  32. package/build/qm/validation.d.ts.map +1 -1
  33. package/build/qm/validation.js +0 -159
  34. package/build/qm/validation.js.map +1 -1
  35. package/build/types.d.ts +73 -149
  36. package/build/types.d.ts.map +1 -1
  37. package/build/types.js +8 -97
  38. package/build/types.js.map +1 -1
  39. package/build/utils/log.d.ts +23 -36
  40. package/build/utils/log.d.ts.map +1 -1
  41. package/build/utils/log.js +7 -11
  42. package/build/utils/log.js.map +1 -1
  43. package/build/utils/login.d.ts +4 -4
  44. package/build/utils/login.d.ts.map +1 -1
  45. package/build/utils/login.js +4 -4
  46. package/build/utils/login.js.map +1 -1
  47. package/build/utils/telemetry.d.ts.map +1 -1
  48. package/package.json +8 -6
  49. package/build/action.d.ts +0 -109
  50. package/build/action.d.ts.map +0 -1
  51. package/build/action.js +0 -5
  52. package/build/action.js.map +0 -1
  53. package/build/bicep.d.ts +0 -19
  54. package/build/bicep.d.ts.map +0 -1
  55. package/build/bicep.js +0 -5
  56. package/build/bicep.js.map +0 -1
  57. package/build/component.d.ts +0 -31
  58. package/build/component.d.ts.map +0 -1
  59. package/build/component.js +0 -3
  60. package/build/component.js.map +0 -1
  61. package/build/core.d.ts +0 -50
  62. package/build/core.d.ts.map +0 -1
  63. package/build/core.js +0 -5
  64. package/build/core.js.map +0 -1
  65. package/build/plugin.d.ts +0 -71
  66. package/build/plugin.d.ts.map +0 -1
  67. package/build/plugin.js +0 -5
  68. package/build/plugin.js.map +0 -1
  69. package/build/qm/visitor.d.ts +0 -15
  70. package/build/qm/visitor.d.ts.map +0 -1
  71. package/build/qm/visitor.js +0 -388
  72. package/build/qm/visitor.js.map +0 -1
  73. package/build/solution.d.ts +0 -29
  74. package/build/solution.d.ts.map +0 -1
  75. package/build/solution.js +0 -5
  76. package/build/solution.js.map +0 -1
  77. package/build/v2/index.d.ts +0 -4
  78. package/build/v2/index.d.ts.map +0 -1
  79. package/build/v2/index.js +0 -9
  80. package/build/v2/index.js.map +0 -1
  81. package/build/v2/resourcePlugin.d.ts +0 -180
  82. package/build/v2/resourcePlugin.d.ts.map +0 -1
  83. package/build/v2/resourcePlugin.js +0 -5
  84. package/build/v2/resourcePlugin.js.map +0 -1
  85. package/build/v2/solutionPlugin.d.ts +0 -100
  86. package/build/v2/solutionPlugin.d.ts.map +0 -1
  87. package/build/v2/solutionPlugin.js +0 -5
  88. package/build/v2/solutionPlugin.js.map +0 -1
  89. package/build/v2/types.d.ts +0 -67
  90. package/build/v2/types.d.ts.map +0 -1
  91. package/build/v2/types.js +0 -28
  92. package/build/v2/types.js.map +0 -1
  93. package/build/v3/AzureResourceStates.d.ts +0 -58
  94. package/build/v3/AzureResourceStates.d.ts.map +0 -1
  95. package/build/v3/AzureResourceStates.js +0 -3
  96. package/build/v3/AzureResourceStates.js.map +0 -1
  97. package/build/v3/core.d.ts +0 -22
  98. package/build/v3/core.d.ts.map +0 -1
  99. package/build/v3/core.js.map +0 -1
  100. package/build/v3/index.d.ts +0 -7
  101. package/build/v3/index.d.ts.map +0 -1
  102. package/build/v3/index.js +0 -12
  103. package/build/v3/index.js.map +0 -1
  104. package/build/v3/plugins.d.ts +0 -104
  105. package/build/v3/plugins.d.ts.map +0 -1
  106. package/build/v3/plugins.js +0 -5
  107. package/build/v3/plugins.js.map +0 -1
  108. package/build/v3/resourceStates.d.ts +0 -66
  109. package/build/v3/resourceStates.d.ts.map +0 -1
  110. package/build/v3/resourceStates.js +0 -5
  111. package/build/v3/resourceStates.js.map +0 -1
  112. package/build/v3/solution.d.ts +0 -40
  113. package/build/v3/solution.d.ts.map +0 -1
  114. package/build/v3/solution.js +0 -5
  115. package/build/v3/solution.js.map +0 -1
  116. package/build/v3/types.d.ts +0 -28
  117. package/build/v3/types.d.ts.map +0 -1
  118. package/build/v3/types.js +0 -5
  119. package/build/v3/types.js.map +0 -1
  120. package/build/vscode.d.ts +0 -22
  121. package/build/vscode.d.ts.map +0 -1
  122. package/build/vscode.js +0 -5
  123. package/build/vscode.js.map +0 -1
@@ -1,388 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.traverse = exports.getCallFuncValue = exports.getSingleOption = exports.loadOptions = exports.isAutoSkipSelect = void 0;
6
- const validation_1 = require("./validation");
7
- const error_1 = require("../error");
8
- const types_1 = require("../types");
9
- const neverthrow_1 = require("neverthrow");
10
- const constants_1 = require("../constants");
11
- function isAutoSkipSelect(q) {
12
- if (q.type === "singleSelect" || q.type === "multiSelect") {
13
- const select = q;
14
- if (select.skipSingleOption && select.staticOptions.length === 1) {
15
- return true;
16
- }
17
- }
18
- return false;
19
- }
20
- exports.isAutoSkipSelect = isAutoSkipSelect;
21
- async function loadOptions(q, inputs) {
22
- if (q.type === "singleSelect" || q.type === "multiSelect") {
23
- const selectQuestion = q;
24
- let option;
25
- if (selectQuestion.dynamicOptions)
26
- option = (await getCallFuncValue(inputs, selectQuestion.dynamicOptions));
27
- else
28
- option = selectQuestion.staticOptions;
29
- if (!option || option.length === 0) {
30
- return neverthrow_1.err(new error_1.EmptyOptionError());
31
- }
32
- if (selectQuestion.skipSingleOption && option.length === 1)
33
- return neverthrow_1.ok({ autoSkip: true, options: option });
34
- else
35
- return neverthrow_1.ok({ autoSkip: false, options: option });
36
- }
37
- else
38
- return neverthrow_1.ok({ autoSkip: false });
39
- }
40
- exports.loadOptions = loadOptions;
41
- function getSingleOption(q, option) {
42
- if (!option)
43
- option = q.staticOptions;
44
- const optionIsString = typeof option[0] === "string";
45
- let returnResult;
46
- if (optionIsString)
47
- returnResult = option[0];
48
- else {
49
- if (q.returnObject === true)
50
- returnResult = option[0];
51
- else
52
- returnResult = option[0].id;
53
- }
54
- if (q.type === "singleSelect")
55
- return returnResult;
56
- else
57
- return [returnResult];
58
- }
59
- exports.getSingleOption = getSingleOption;
60
- async function getCallFuncValue(inputs, raw) {
61
- if (raw && typeof raw === "function") {
62
- return await raw(inputs);
63
- }
64
- return raw;
65
- }
66
- exports.getCallFuncValue = getCallFuncValue;
67
- /**
68
- * ask question when visiting the question tree
69
- * @param question
70
- * @param core
71
- * @param inputs
72
- */
73
- const questionVisitor = async function (question, ui, inputs, step, totalSteps) {
74
- if (inputs[question.name] !== undefined) {
75
- return neverthrow_1.ok({ type: "skip", result: inputs[question.name] });
76
- }
77
- const title = (await getCallFuncValue(inputs, question.title));
78
- if (question.type === "func") {
79
- try {
80
- let res;
81
- if (ui.executeFunction) {
82
- res = await ui.executeFunction({
83
- name: question.name,
84
- title: title !== null && title !== void 0 ? title : "Executing operation...",
85
- func: question.func,
86
- inputs: inputs,
87
- });
88
- }
89
- else {
90
- res = await question.func(inputs);
91
- }
92
- if (typeof res === "object" && "isOk" in res) {
93
- const fxresult = res;
94
- if (fxresult.isOk()) {
95
- return neverthrow_1.ok({ type: "success", result: fxresult.value });
96
- }
97
- else {
98
- return neverthrow_1.err(fxresult.error);
99
- }
100
- }
101
- return neverthrow_1.ok({ type: "success", result: res });
102
- }
103
- catch (e) {
104
- return neverthrow_1.err(error_1.assembleError(e));
105
- }
106
- }
107
- else {
108
- const defaultValue = question.forgetLastValue !== true && question.value
109
- ? question.value
110
- : await getCallFuncValue(inputs, question.default);
111
- const placeholder = (await getCallFuncValue(inputs, question.placeholder));
112
- const prompt = (await getCallFuncValue(inputs, question.prompt));
113
- if (question.type === "text") {
114
- const validationFunc = question.validation
115
- ? validation_1.getValidationFunction(question.validation, inputs)
116
- : undefined;
117
- const inputQuestion = question;
118
- return await ui.inputText({
119
- name: question.name,
120
- title: title,
121
- password: inputQuestion.password,
122
- default: defaultValue,
123
- placeholder: placeholder,
124
- prompt: prompt,
125
- validation: validationFunc,
126
- step: step,
127
- totalSteps: totalSteps,
128
- });
129
- }
130
- else if (question.type === "singleSelect" || question.type === "multiSelect") {
131
- const selectQuestion = question;
132
- const loadRes = await loadOptions(selectQuestion, inputs);
133
- if (loadRes.isErr()) {
134
- return neverthrow_1.err(loadRes.error);
135
- }
136
- // Skip single/mulitple option select
137
- const res = loadRes.value;
138
- if (!res.options || res.options.length === 0) {
139
- return neverthrow_1.err(new error_1.EmptyOptionError());
140
- }
141
- if (res.autoSkip === true) {
142
- const returnResult = getSingleOption(selectQuestion, res.options);
143
- return neverthrow_1.ok({ type: "skip", result: returnResult });
144
- }
145
- if (question.type === "singleSelect") {
146
- const validationFunc = question.validation
147
- ? validation_1.getValidationFunction(question.validation, inputs)
148
- : undefined;
149
- return await ui.selectOption({
150
- name: question.name,
151
- title: title,
152
- options: res.options,
153
- returnObject: selectQuestion.returnObject,
154
- default: defaultValue,
155
- placeholder: placeholder,
156
- prompt: prompt,
157
- step: step,
158
- totalSteps: totalSteps,
159
- buttons: question.buttons,
160
- validation: validationFunc,
161
- });
162
- }
163
- else {
164
- const mq = selectQuestion;
165
- const validationFunc = question.validation
166
- ? validation_1.getValidationFunction(question.validation, inputs)
167
- : undefined;
168
- return await ui.selectOptions({
169
- name: question.name,
170
- title: title,
171
- options: res.options,
172
- returnObject: selectQuestion.returnObject,
173
- default: defaultValue,
174
- placeholder: placeholder,
175
- prompt: prompt,
176
- onDidChangeSelection: mq.onDidChangeSelection,
177
- step: step,
178
- totalSteps: totalSteps,
179
- validation: validationFunc,
180
- });
181
- }
182
- }
183
- else if (question.type === "multiFile") {
184
- const validationFunc = question.validation
185
- ? validation_1.getValidationFunction(question.validation, inputs)
186
- : undefined;
187
- return await ui.selectFiles({
188
- name: question.name,
189
- title: title,
190
- placeholder: placeholder,
191
- prompt: prompt,
192
- step: step,
193
- totalSteps: totalSteps,
194
- validation: validationFunc,
195
- });
196
- }
197
- else if (question.type === "singleFile") {
198
- const validationFunc = question.validation
199
- ? validation_1.getValidationFunction(question.validation, inputs)
200
- : undefined;
201
- return await ui.selectFile({
202
- name: question.name,
203
- title: title,
204
- placeholder: placeholder,
205
- prompt: prompt,
206
- default: defaultValue,
207
- step: step,
208
- totalSteps: totalSteps,
209
- validation: validationFunc,
210
- });
211
- }
212
- else if (question.type === "folder") {
213
- const validationFunc = question.validation
214
- ? validation_1.getValidationFunction(question.validation, inputs)
215
- : undefined;
216
- return await ui.selectFolder({
217
- name: question.name,
218
- title: title,
219
- placeholder: placeholder,
220
- prompt: prompt,
221
- default: defaultValue,
222
- step: step,
223
- totalSteps: totalSteps,
224
- validation: validationFunc,
225
- });
226
- }
227
- }
228
- return neverthrow_1.err(new error_1.UserError("API", "UnsupportedNodeType", `Unsupported question node type:${JSON.stringify(question)}`, `Unsupported question node type:${JSON.stringify(question)}`));
229
- };
230
- async function traverse(root, inputs, ui, telemetryReporter, visitor = questionVisitor) {
231
- const stack = [];
232
- const history = [];
233
- stack.push(root);
234
- let step = 1; // manual input step
235
- let totalStep = 1;
236
- const parentMap = new Map();
237
- // const valueMap = new Map<QTreeNode, unknown>();
238
- const autoSkipSet = new Set();
239
- while (stack.length > 0) {
240
- const curr = stack.pop();
241
- if (!curr)
242
- continue;
243
- //visit
244
- if (curr.data.type !== "group") {
245
- const question = curr.data;
246
- totalStep = step + stack.length;
247
- let qvRes;
248
- try {
249
- qvRes = await visitor(question, ui, inputs, step, totalStep);
250
- sendTelemetryEvent(telemetryReporter, qvRes, question, inputs);
251
- }
252
- catch (e) {
253
- return neverthrow_1.err(error_1.assembleError(e));
254
- }
255
- if (qvRes.isErr()) {
256
- // Cancel or Error
257
- return neverthrow_1.err(qvRes.error);
258
- }
259
- const inputResult = qvRes.value;
260
- if (inputResult.type === "back") {
261
- //go back
262
- // if (curr.children) {
263
- // while (stack.length > 0) {
264
- // const tmp = stack[stack.length - 1];
265
- // if (curr.children.includes(tmp)) {
266
- // stack.pop();
267
- // } else {
268
- // break;
269
- // }
270
- // }
271
- // }
272
- stack.push(curr);
273
- // find the previous input that is neither group nor func nor single option select
274
- let found = false;
275
- while (history.length > 0) {
276
- const last = history.pop();
277
- if (!last)
278
- continue;
279
- if (last.children) {
280
- while (stack.length > 0) {
281
- const tmp = stack[stack.length - 1];
282
- if (last.children.includes(tmp)) {
283
- stack.pop();
284
- }
285
- else {
286
- break;
287
- }
288
- }
289
- }
290
- stack.push(last);
291
- if (last.data.type !== "group")
292
- delete inputs[last.data.name];
293
- const lastIsAutoSkip = autoSkipSet.has(last);
294
- if (last.data.type !== "group" && last.data.type !== "func" && !lastIsAutoSkip) {
295
- found = true;
296
- break;
297
- }
298
- }
299
- if (!found) {
300
- return neverthrow_1.err(error_1.UserCancelError);
301
- }
302
- --step;
303
- continue; //ignore the following steps
304
- }
305
- else {
306
- //success or skip
307
- question.value = inputResult.result;
308
- inputs[question.name] = question.value;
309
- if (inputResult.type === "skip" || question.type === "func") {
310
- if (inputResult.type === "skip")
311
- autoSkipSet.add(curr);
312
- }
313
- else {
314
- ++step;
315
- }
316
- }
317
- }
318
- history.push(curr);
319
- if (curr.children) {
320
- const matchChildren = [];
321
- const valueInMap = findValue(curr, parentMap); //curr.data.type !== "group" ? curr.data.value : undefined; //valueMap.get(curr);
322
- for (const child of curr.children) {
323
- if (!child)
324
- continue;
325
- if (child.condition) {
326
- const validRes = await validation_1.validate(child.condition, valueInMap, inputs);
327
- if (validRes !== undefined) {
328
- continue;
329
- }
330
- }
331
- matchChildren.push(child);
332
- }
333
- for (let i = matchChildren.length - 1; i >= 0; --i) {
334
- const child = matchChildren[i];
335
- parentMap.set(child, curr);
336
- stack.push(child);
337
- }
338
- }
339
- }
340
- return neverthrow_1.ok(types_1.Void);
341
- }
342
- exports.traverse = traverse;
343
- function findValue(curr, parentMap) {
344
- if (curr.data.type !== "group") {
345
- // need to convert OptionItem value into id for validation
346
- if (curr.data.type === "singleSelect") {
347
- const sq = curr.data;
348
- if (sq.value && typeof sq.value !== "string" && sq.value.id) {
349
- return sq.value.id;
350
- }
351
- }
352
- else if (curr.data.type === "multiSelect") {
353
- const mq = curr.data;
354
- if (mq.value && typeof mq.value[0] !== "string") {
355
- return mq.value.map((i) => i.id);
356
- }
357
- }
358
- return curr.data.value;
359
- }
360
- const parent = parentMap.get(curr);
361
- if (parent) {
362
- return findValue(parent, parentMap);
363
- }
364
- return undefined;
365
- }
366
- function sendTelemetryEvent(telemetryReporter, qvres, question, inputs) {
367
- var _a;
368
- if (qvres.isErr()) {
369
- telemetryReporter === null || telemetryReporter === void 0 ? void 0 : telemetryReporter.sendTelemetryEvent(constants_1.TelemetryEvent.askQuestion, {
370
- [constants_1.TelemetryProperty.answerType]: qvres.error.name,
371
- [constants_1.TelemetryProperty.question]: question.name,
372
- [constants_1.TelemetryProperty.platform]: inputs.platform,
373
- [constants_1.TelemetryProperty.stage]: inputs.stage ? inputs.stage : "",
374
- });
375
- }
376
- else {
377
- telemetryReporter === null || telemetryReporter === void 0 ? void 0 : telemetryReporter.sendTelemetryEvent(constants_1.TelemetryEvent.askQuestion, {
378
- [constants_1.TelemetryProperty.answerType]: qvres.value.type,
379
- [constants_1.TelemetryProperty.question]: question.name,
380
- [constants_1.TelemetryProperty.answer]: question.type == "singleSelect" || question.type == "multiSelect"
381
- ? (_a = qvres.value.result) === null || _a === void 0 ? void 0 : _a.toString()
382
- : "",
383
- [constants_1.TelemetryProperty.platform]: inputs.platform,
384
- [constants_1.TelemetryProperty.stage]: inputs.stage ? inputs.stage : "",
385
- });
386
- }
387
- }
388
- //# sourceMappingURL=visitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/qm/visitor.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { Result } from "neverthrow";
2
- import { SolutionContext } from "./context";
3
- import { FxError } from "./error";
4
- import { Func, QTreeNode } from "./qm";
5
- import { Stage } from "./constants";
6
- export interface Solution {
7
- name: string;
8
- create: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
9
- scaffold: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
10
- provision: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
11
- deploy: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
12
- publish: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
13
- localDebug: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
14
- getQuestions: (task: Stage, ctx: SolutionContext) => Promise<Result<QTreeNode | undefined, FxError>>;
15
- getQuestionsForUserTask?: (func: Func, ctx: SolutionContext) => Promise<Result<QTreeNode | undefined, FxError>>;
16
- executeUserTask?: (func: Func, ctx: SolutionContext) => Promise<Result<any, FxError>>;
17
- /**
18
- * For grant and check permission in remote collaboration
19
- */
20
- grantPermission?: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
21
- checkPermission?: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
22
- listCollaborator?: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
23
- /**
24
- * for env management
25
- */
26
- createEnv?: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
27
- activateEnv?: (ctx: SolutionContext) => Promise<Result<any, FxError>>;
28
- }
29
- //# sourceMappingURL=solution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solution.d.ts","sourceRoot":"","sources":["../src/solution.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhE,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAElE,SAAS,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEjE,UAAU,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpE,YAAY,EAAE,CACZ,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAErD,uBAAuB,CAAC,EAAE,CACxB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAErD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtF;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3E;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;CACvE"}
package/build/solution.js DELETED
@@ -1,5 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- "use strict";
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=solution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solution.js","sourceRoot":"","sources":["../src/solution.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from "./resourcePlugin";
2
- export * from "./solutionPlugin";
3
- export * from "./types";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
package/build/v2/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- const tslib_1 = require("tslib");
6
- tslib_1.__exportStar(require("./resourcePlugin"), exports);
7
- tslib_1.__exportStar(require("./solutionPlugin"), exports);
8
- tslib_1.__exportStar(require("./types"), exports);
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,2DAAiC;AACjC,2DAAiC;AACjC,kDAAwB"}
@@ -1,180 +0,0 @@
1
- import { Result } from "neverthrow";
2
- import { FxError } from "../error";
3
- import { Func, QTreeNode } from "../qm/question";
4
- import { ProjectSettings, Inputs, Json, Void } from "../types";
5
- import { M365TokenProvider, TokenProvider } from "../utils";
6
- import { Context, DeepReadonly, DeploymentInputs, EnvInfoV2, InputsWithProjectPath, ProvisionInputs } from "./types";
7
- export declare type ResourceTemplate = BicepTemplate | JsonTemplate;
8
- export declare type JsonTemplate = {
9
- kind: "json";
10
- template: Json;
11
- };
12
- export declare type BicepTemplate = {
13
- kind: "bicep";
14
- template: Record<string, unknown>;
15
- };
16
- export declare type ResourceProvisionOutput = {
17
- output: Json;
18
- secrets: Json;
19
- };
20
- /**
21
- * Interface for ResourcePlugins. a ResourcePlugin can hook into Toolkit's
22
- * lifecycles by implementing the corresponding API.
23
- * Implementation of all lifecycles is expected to be idempotent. The return values
24
- * and observable side effects of each lifecycle are expected to be the same with the same input.
25
- *
26
- * All lifecycles follow the same pattern of returning a Promise<Result<T, FxError>>.
27
- * Please return {@link UserError} or {@link SystemError} when error happens
28
- * instead of throwing.
29
- */
30
- export interface ResourcePlugin {
31
- name: string;
32
- displayName: string;
33
- /**
34
- * A resource plugin can decide whether it needs to be activated when the Toolkit initializes
35
- * based on project settings.
36
- *
37
- * @param projectSettings project settings
38
- *
39
- * @returns whether to be activated
40
- */
41
- activate(projectSettings: ProjectSettings): boolean;
42
- /**
43
- * Called by Toolkit when creating a new project or adding a new resource.
44
- * A resource plugin is expected to scaffold source code or files on disk, relative to context.projectPath.
45
- *
46
- * @example
47
- * ```
48
- * scaffoldSourceCode(ctx: Context, inputs: Inputs) {
49
- * const fs = require("fs-extra");
50
- * let content = "let x = 1;"
51
- * let path = path.join(ctx.projectPath, "myFolder");
52
- * let sourcePath = "somePathhere";
53
- * let result = await fs.copy(sourcePath, content);
54
- * return ok(Void);
55
- * }
56
- * ```
57
- *
58
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
59
- * @param {Inputs} inputs - User answers to questions defined in {@link getQuestionsForScaffolding} along with some system inputs.
60
- *
61
- * @returns Void because side effect is expected.
62
- */
63
- scaffoldSourceCode?: (ctx: Context, inputs: Inputs) => Promise<Result<Void, FxError>>;
64
- /**
65
- * This method is called when creating a new project or adding a new resource.
66
- * A resource plugin is expected to return a resource template(e.g. Bicep templates/plain JSON) which will be persisted
67
- * by the Toolkit and will be used to provision resource when Provision command is called.
68
- *
69
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
70
- * @param {Inputs} inputs - User's answers to questions defined in {@link getQuestionsForScaffolding} along with some system inputs.
71
- *
72
- * @return {@link ResourceTemplate} return ARM template for solution to combine.
73
- */
74
- generateResourceTemplate?: (ctx: Context, inputs: Inputs & {
75
- existingResources: string[];
76
- }) => Promise<Result<ResourceTemplate, FxError>>;
77
- updateResourceTemplate?: (ctx: Context, inputs: Inputs & {
78
- existingResources: string[];
79
- }) => Promise<Result<ResourceTemplate, FxError>>;
80
- /**
81
- * provisionResource() runs before ARM/Bicep provision when Provision command is called.
82
- * There are two reasons why a resource needs to implement this method:
83
- * 1) to generate input for ARM/Bicep provision to consume.
84
- * 2) the resource can't be provisioned using resource templates like ARM/Bicep.
85
- * Two typical resources that need to implement this method are AAD(Azure Active Directory)
86
- * and AppSudio, which statisfy both above criteria.
87
- *
88
- * A plugin can get access tokens to cloud service using TokenProvider.
89
- *
90
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
91
- * @param {ProvisionInputs} inputs - inputs injected by Toolkit runtime and solution.
92
- * @param {EnvInfoV2} envInfo - a reference of environment info modeled after (config|state).${env}.json
93
- * @param {TokenProvider} tokenProvider - Tokens for Azure and AppStudio
94
- * @returns Void because side effect is expected.
95
- */
96
- provisionResource?: (ctx: Context, inputs: ProvisionInputs, envInfo: EnvInfoV2, tokenProvider: TokenProvider) => Promise<Result<Void, FxError>>;
97
- /**
98
- * configureResource() is guaranteed to run after Bicep/ARM provision.
99
- * Plugins are expected to read the provision output of other plugins via envInfo's state,
100
- * and return a new copy of its own provision output possibly with added and modified fields.
101
- *
102
- * Plugins can also sync their settings to the clould using access tokens provided by TokenProvider
103
- *
104
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
105
- * @param {ProvisionInputs} inputs - inputs injected by Toolkit runtime and solution.
106
- * @param {EnvInfoV2} envInfo - a reference of environment info modeled after (config|state).${env}.json
107
- * @param {TokenProvider} tokenProvider - Tokens for Azure and AppStudio
108
- * @returns Void because side effect is expected.
109
- */
110
- configureResource?: (ctx: Context, inputs: ProvisionInputs, envInfo: EnvInfoV2, tokenProvider: TokenProvider) => Promise<Result<Void, FxError>>;
111
- /**
112
- * Depends on the provision output values returned by {@link provisionResource}, ARM/Bicep provision
113
- * and {@link configureResource}.
114
- * Plugins are expected to deploy code to cloud using access tokens provided by {@link TokenProvider}.
115
- *
116
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
117
- * @param {DeploymentInputs} inputs - inputs injected by Toolkit runtime and solution.
118
- * @param {DeepReadonly<EnvInfoV2>} envInfo - a readonly view of environment info modeled after (config|state).${env}.json
119
- * @param {TokenProvider} tokenProvider - Token provider for Azure, AppStudio and m365
120
- * @returns Void because side effect is expected.
121
- */
122
- deploy?: (ctx: Context, inputs: DeploymentInputs, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider) => Promise<Result<Void, FxError>>;
123
- /**
124
- * Depends on the output of {@link package}. Uploads Teams package to AppStudio
125
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
126
- * @param {Inputs} inputs - system inputs.
127
- * @param {DeepReadonly<EnvInfoV2>} envInfo - a readonly view of environment info modeled after (config|state).${env}.json
128
- * @param {M365TokenProvider} tokenProvider - Token for M365
129
- *
130
- * @returns Void because side effect is expected.
131
- */
132
- publishApplication?: (ctx: Context, inputs: Inputs, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: M365TokenProvider) => Promise<Result<Void, FxError>>;
133
- /**
134
- * provisionLocalResource is a special lifecycle, called when users press F5 in vscode.
135
- * It works like provision, but only creates necessary cloud resources for local debugging like AAD and AppStudio App.
136
- *
137
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
138
- * @param {Inputs} inputs - system inputs.
139
- * @param {Json} localSettings - local debug settings generated by {@link provisionLocalResource}
140
- * @param {TokenProvider} tokenProvider - Tokens for Azure and AppStudio
141
- * @param {EnvInfoV2} envInfo - a reference of environment info modeled after (config|state).${env}.json
142
- *
143
- * @returns Void because side effect is expected.
144
- */
145
- provisionLocalResource?: (ctx: Context, inputs: Inputs, localSettings: Json, tokenProvider: TokenProvider, envInfo?: EnvInfoV2) => Promise<Result<Void, FxError>>;
146
- /**
147
- * configureLocalResource works like {@link configureResource} but only for local debugging resources.
148
- * Plugins are expected to read the local provision output values of other plugins, and modify in-place
149
- *
150
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
151
- * @param {Json} localSettings - local debug settings generated by {@link scaffoldSourceCode}
152
- * @param {TokenProvider} tokenProvider - Tokens for Azure and AppStudio
153
- * @param {EnvInfoV2} envInfo - a reference of environment info modeled after (config|state).${env}.json
154
- *
155
- * @returns Void because side effect is expected.
156
- */
157
- configureLocalResource?: (ctx: Context, inputs: Inputs, localSettings: Json, tokenProvider: TokenProvider, envInfo?: EnvInfoV2) => Promise<Result<Void, FxError>>;
158
- /**
159
- * Plugins that need to collect user input are expected to implement this method.
160
- * Questions are organized as a tree. Please see {@link QTreeNode}.
161
- *
162
- * getQuestionsForScaffolding() is guaranteed to be called before scaffoldSourceCode().
163
- *
164
- * @param {Context} ctx - plugin's runtime context shared by all lifecycles.
165
- * @param {Inputs} inputs - system inputs.
166
- *
167
- * @returns question tree.
168
- */
169
- getQuestionsForScaffolding?: (ctx: Context, inputs: Inputs) => Promise<Result<QTreeNode | undefined, FxError>>;
170
- executeUserTask?: (ctx: Context, inputs: Inputs, func: Func, localSettings: Json, envInfo: EnvInfoV2, tokenProvider: TokenProvider) => Promise<Result<unknown, FxError>>;
171
- getQuestions?: (ctx: Context, inputs: Inputs, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider) => Promise<Result<QTreeNode | undefined, FxError>>;
172
- getQuestionsForUserTask?: (ctx: Context, inputs: Inputs, func: Func, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider) => Promise<Result<QTreeNode | undefined, FxError>>;
173
- /**
174
- * For grant and check permission in remote collaboration
175
- */
176
- grantPermission?: (ctx: Context, inputs: InputsWithProjectPath, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider, userInfo: Json) => Promise<Result<Json, FxError>>;
177
- checkPermission?: (ctx: Context, inputs: InputsWithProjectPath, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider, userInfo: Json) => Promise<Result<Json, FxError>>;
178
- listCollaborator?: (ctx: Context, inputs: InputsWithProjectPath, envInfo: DeepReadonly<EnvInfoV2>, tokenProvider: TokenProvider, userInfo: Json) => Promise<Result<Json, FxError>>;
179
- }
180
- //# sourceMappingURL=resourcePlugin.d.ts.map