@pulumi/pulumi 3.65.1 → 3.66.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.
- package/automation/errors.js +9 -5
- package/automation/errors.js.map +1 -1
- package/automation/events.js.map +1 -1
- package/automation/localWorkspace.js +21 -5
- package/automation/localWorkspace.js.map +1 -1
- package/automation/remoteStack.js.map +1 -1
- package/automation/remoteWorkspace.js.map +1 -1
- package/automation/server.js +1 -1
- package/automation/server.js.map +1 -1
- package/automation/stack.js +14 -7
- package/automation/stack.js.map +1 -1
- package/cmd/dynamic-provider/index.js +1 -1
- package/cmd/dynamic-provider/index.js.map +1 -1
- package/cmd/run/index.js +5 -3
- package/cmd/run/index.js.map +1 -1
- package/cmd/run/run.js +3 -7
- package/cmd/run/run.js.map +1 -1
- package/cmd/run/tracing.js.map +1 -1
- package/cmd/run-policy-pack/index.js +1 -1
- package/cmd/run-policy-pack/index.js.map +1 -1
- package/cmd/run-policy-pack/run.js +3 -6
- package/cmd/run-policy-pack/run.js.map +1 -1
- package/config.js +2 -3
- package/config.js.map +1 -1
- package/dynamic/index.js +2 -2
- package/dynamic/index.js.map +1 -1
- package/iterable/index.js +4 -4
- package/iterable/index.js.map +1 -1
- package/log/index.js +1 -3
- package/log/index.js.map +1 -1
- package/output.d.ts +4 -4
- package/output.js +35 -29
- package/output.js.map +1 -1
- package/package.json +2 -1
- package/provider/internals.js.map +1 -1
- package/provider/server.js +7 -8
- package/provider/server.js.map +1 -1
- package/resource.js +8 -8
- package/resource.js.map +1 -1
- package/runtime/asyncIterableUtil.js +1 -1
- package/runtime/asyncIterableUtil.js.map +1 -1
- package/runtime/closure/codePaths.js +1 -2
- package/runtime/closure/codePaths.js.map +1 -1
- package/runtime/closure/createClosure.js +56 -38
- package/runtime/closure/createClosure.js.map +1 -1
- package/runtime/closure/package.js +8 -5
- package/runtime/closure/package.js.map +1 -1
- package/runtime/closure/parseFunction.js +33 -17
- package/runtime/closure/parseFunction.js.map +1 -1
- package/runtime/closure/rewriteSuper.js +3 -6
- package/runtime/closure/rewriteSuper.js.map +1 -1
- package/runtime/closure/serializeClosure.js +34 -26
- package/runtime/closure/serializeClosure.js.map +1 -1
- package/runtime/closure/utils.js +1 -2
- package/runtime/closure/utils.js.map +1 -1
- package/runtime/closure/v8.js +9 -10
- package/runtime/closure/v8.js.map +1 -1
- package/runtime/closure/v8Hooks.js +2 -2
- package/runtime/closure/v8Hooks.js.map +1 -1
- package/runtime/config.js.map +1 -1
- package/runtime/debuggable.js +10 -9
- package/runtime/debuggable.js.map +1 -1
- package/runtime/index.js.map +1 -1
- package/runtime/invoke.js +4 -9
- package/runtime/invoke.js.map +1 -1
- package/runtime/mocks.js.map +1 -1
- package/runtime/resource.js +17 -12
- package/runtime/resource.js.map +1 -1
- package/runtime/rpc.js +6 -6
- package/runtime/rpc.js.map +1 -1
- package/runtime/settings.js +1 -1
- package/runtime/settings.js.map +1 -1
- package/runtime/stack.js +3 -3
- package/runtime/stack.js.map +1 -1
- package/runtime/state.js +1 -3
- package/runtime/state.js.map +1 -1
- package/stackReference.js.map +1 -1
- package/tests/automation/localWorkspace.spec.js +63 -57
- package/tests/automation/localWorkspace.spec.js.map +1 -1
- package/tests/automation/remoteWorkspace.spec.js +9 -6
- package/tests/automation/remoteWorkspace.spec.js.map +1 -1
- package/tests/config.spec.js +76 -28
- package/tests/config.spec.js.map +1 -1
- package/tests/iterable.spec.js +2 -2
- package/tests/iterable.spec.js.map +1 -1
- package/tests/options.spec.js +9 -3
- package/tests/options.spec.js.map +1 -1
- package/tests/output.spec.js +61 -67
- package/tests/output.spec.js.map +1 -1
- package/tests/provider.spec.js +7 -1
- package/tests/provider.spec.js.map +1 -1
- package/tests/resource.spec.js.map +1 -1
- package/tests/runtime/asyncIterableUtil.spec.js.map +1 -1
- package/tests/runtime/closureLoader.spec.js +1 -1
- package/tests/runtime/closureLoader.spec.js.map +1 -1
- package/tests/runtime/deploymentOnlyModule/runtimeConfig.js.map +1 -1
- package/tests/runtime/langhost/cases/000.empty/index.js +0 -1
- package/tests/runtime/langhost/cases/001.one_resource/index.js +0 -1
- package/tests/runtime/langhost/cases/002.ten_resources/index.js +0 -1
- package/tests/runtime/langhost/cases/003.one_complex_resource/index.js +20 -20
- package/tests/runtime/langhost/cases/004.ten_complex_resources/index.js +5 -6
- package/tests/runtime/langhost/cases/004.ten_complex_resources/resource.js +11 -12
- package/tests/runtime/langhost/cases/005.resource_thens/index.js +12 -13
- package/tests/runtime/langhost/cases/006.asset/index.js +1 -2
- package/tests/runtime/langhost/cases/007.promises_io/index.js +2 -3
- package/tests/runtime/langhost/cases/008.ten_depends_on_resources/index.js +19 -11
- package/tests/runtime/langhost/cases/009.invoke/index.js +1 -1
- package/tests/runtime/langhost/cases/012.assets_archive/index.js +10 -8
- package/tests/runtime/langhost/cases/013.unhandled_promise_rejection/index.js +1 -1
- package/tests/runtime/langhost/cases/014.read_resource/index.js +7 -7
- package/tests/runtime/langhost/cases/015.runtime_sxs/index.js +35 -19
- package/tests/runtime/langhost/cases/017.parent_defaults/index.js +49 -41
- package/tests/runtime/langhost/cases/020.property_dependencies/index.js +27 -18
- package/tests/runtime/langhost/cases/021.parent_child_dependencies/index.js +3 -3
- package/tests/runtime/langhost/cases/022.parent_child_dependencies_2/index.js +3 -3
- package/tests/runtime/langhost/cases/023.parent_child_dependencies_3/index.js +6 -6
- package/tests/runtime/langhost/cases/024.parent_child_dependencies_4/index.js +8 -8
- package/tests/runtime/langhost/cases/025.parent_child_dependencies_5/index.js +9 -9
- package/tests/runtime/langhost/cases/026.parent_child_dependencies_6/index.js +11 -11
- package/tests/runtime/langhost/cases/027.parent_child_dependencies_7/index.js +14 -14
- package/tests/runtime/langhost/cases/028.parent_child_dependencies_8/index.js +10 -10
- package/tests/runtime/langhost/cases/029.parent_child_dependencies_9/index.js +8 -8
- package/tests/runtime/langhost/cases/030.import_resource/index.js +0 -1
- package/tests/runtime/langhost/cases/041.component_opt_single_provider/index.js +49 -41
- package/tests/runtime/langhost/cases/042.component_opt_providers_array/index.js +49 -41
- package/tests/runtime/langhost/cases/060.provider_invokes/index.js +4 -4
- package/tests/runtime/langhost/cases/061.provider_in_parent_invokes/index.js +8 -8
- package/tests/runtime/langhost/cases/063.providerref_in_parent_invokes/index.js +2 -2
- package/tests/runtime/langhost/cases/064.async_components/index.js +9 -9
- package/tests/runtime/langhost/cases/065.large_resource/index.js +2 -2
- package/tests/runtime/langhost/cases/067.native_es_module/index.js +0 -1
- package/tests/runtime/langhost/cases/068.remote_component_providers/index.js +6 -6
- package/tests/runtime/langhost/cases/069.ambiguous_entrypoints/index.js +0 -1
- package/tests/runtime/langhost/cases/070.unusual_alias_names/index.js +5 -6
- package/tests/runtime/langhost/cases/071.large_alias_counts/index.js +4 -5
- package/tests/runtime/langhost/cases/072.large_alias_lineage_chains/index.js +13 -14
- package/tests/runtime/langhost/cases/073.component_dependencies/index.js +10 -10
- package/tests/runtime/langhost/run.spec.js +140 -116
- package/tests/runtime/langhost/run.spec.js.map +1 -1
- package/tests/runtime/package.spec.js +23 -23
- package/tests/runtime/package.spec.js.map +1 -1
- package/tests/runtime/props.spec.js +53 -51
- package/tests/runtime/props.spec.js.map +1 -1
- package/tests/runtime/settings.spec.js.map +1 -1
- package/tests/runtime/tsClosureCases.js +3 -1
- package/tests/runtime/tsClosureCases.js.map +1 -1
- package/tests/stackReference.spec.js.map +1 -1
- package/tests/unwrap.spec.js +27 -7
- package/tests/unwrap.spec.js.map +1 -1
- package/tests/util.js.map +1 -1
- package/tests_with_mocks/mocks.spec.js +11 -11
- package/tests_with_mocks/mocks.spec.js.map +1 -1
- package/version.js +1 -1
package/tests/output.spec.js
CHANGED
|
@@ -41,7 +41,7 @@ function mustCompile() {
|
|
|
41
41
|
type: "foo",
|
|
42
42
|
properties: {
|
|
43
43
|
whatever: 1,
|
|
44
|
-
}
|
|
44
|
+
},
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
// mockOutput returns a value that looks like an Output, but allows for greater control over its behavior. This can be
|
|
@@ -62,14 +62,14 @@ function mockOutput(isKnown, value) {
|
|
|
62
62
|
}
|
|
63
63
|
return callback(v);
|
|
64
64
|
})));
|
|
65
|
-
}
|
|
65
|
+
},
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
describe("output", () => {
|
|
69
69
|
it("propagates true isKnown bit from inner Output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
70
|
runtime._setIsDryRun(true);
|
|
71
71
|
const output1 = new output_1.Output(new Set(), Promise.resolve("outer"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
72
|
-
const output2 = output1.apply(v => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set())));
|
|
72
|
+
const output2 = output1.apply((v) => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set())));
|
|
73
73
|
const isKnown = yield output2.isKnown;
|
|
74
74
|
assert.strictEqual(isKnown, true);
|
|
75
75
|
const value = yield output2.promise();
|
|
@@ -78,7 +78,7 @@ describe("output", () => {
|
|
|
78
78
|
it("propagates false isKnown bit from inner Output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
79
|
runtime._setIsDryRun(true);
|
|
80
80
|
const output1 = new output_1.Output(new Set(), Promise.resolve("outer"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
81
|
-
const output2 = output1.apply(v => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(false), Promise.resolve(false), Promise.resolve(new Set())));
|
|
81
|
+
const output2 = output1.apply((v) => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(false), Promise.resolve(false), Promise.resolve(new Set())));
|
|
82
82
|
const isKnown = yield output2.isKnown;
|
|
83
83
|
assert.strictEqual(isKnown, false);
|
|
84
84
|
const value = yield output2.promise();
|
|
@@ -87,24 +87,22 @@ describe("output", () => {
|
|
|
87
87
|
it("can not await if isKnown is a rejected promise.", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
88
88
|
runtime._setIsDryRun(true);
|
|
89
89
|
const output1 = new output_1.Output(new Set(), Promise.resolve("outer"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
90
|
-
const output2 = output1.apply(v => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.reject(new Error("foo")), Promise.resolve(false), Promise.resolve(new Set())));
|
|
90
|
+
const output2 = output1.apply((v) => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.reject(new Error("foo")), Promise.resolve(false), Promise.resolve(new Set())));
|
|
91
91
|
try {
|
|
92
92
|
const isKnown = yield output2.isKnown;
|
|
93
93
|
assert.fail("Should not reach here");
|
|
94
94
|
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
}
|
|
95
|
+
catch (err) { }
|
|
97
96
|
try {
|
|
98
97
|
const value = yield output2.promise();
|
|
99
98
|
assert.fail("Should not reach here");
|
|
100
99
|
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
}
|
|
100
|
+
catch (err) { }
|
|
103
101
|
}));
|
|
104
102
|
it("propagates true isSecret bit from inner Output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
105
103
|
runtime._setIsDryRun(true);
|
|
106
104
|
const output1 = new output_1.Output(new Set(), Promise.resolve("outer"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
107
|
-
const output2 = output1.apply(v => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(true), Promise.resolve(new Set())));
|
|
105
|
+
const output2 = output1.apply((v) => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(true), Promise.resolve(new Set())));
|
|
108
106
|
const isSecret = yield output2.isSecret;
|
|
109
107
|
assert.strictEqual(isSecret, true);
|
|
110
108
|
const value = yield output2.promise();
|
|
@@ -113,7 +111,7 @@ describe("output", () => {
|
|
|
113
111
|
it("retains true isSecret bit from outer Output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
114
112
|
runtime._setIsDryRun(true);
|
|
115
113
|
const output1 = new output_1.Output(new Set(), Promise.resolve("outer"), Promise.resolve(true), Promise.resolve(true), Promise.resolve(new Set()));
|
|
116
|
-
const output2 = output1.apply(v => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set())));
|
|
114
|
+
const output2 = output1.apply((v) => new output_1.Output(new Set(), Promise.resolve("inner"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set())));
|
|
117
115
|
const isSecret = yield output2.isSecret;
|
|
118
116
|
assert.strictEqual(isSecret, true);
|
|
119
117
|
const value = yield output2.promise();
|
|
@@ -126,63 +124,63 @@ describe("output", () => {
|
|
|
126
124
|
it("can run on known value during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
127
125
|
runtime._setIsDryRun(true);
|
|
128
126
|
const out = createOutput(0, true);
|
|
129
|
-
const r = out.apply(v => v + 1);
|
|
127
|
+
const r = out.apply((v) => v + 1);
|
|
130
128
|
assert.strictEqual(yield r.isKnown, true);
|
|
131
129
|
assert.strictEqual(yield r.promise(), 1);
|
|
132
130
|
}));
|
|
133
131
|
it("can run on known awaitable value during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
134
132
|
runtime._setIsDryRun(true);
|
|
135
133
|
const out = createOutput(0, true);
|
|
136
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
134
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
137
135
|
assert.strictEqual(yield r.isKnown, true);
|
|
138
136
|
assert.strictEqual(yield r.promise(), "inner");
|
|
139
137
|
}));
|
|
140
138
|
it("can run on known known output value during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
141
139
|
runtime._setIsDryRun(true);
|
|
142
140
|
const out = createOutput(0, true);
|
|
143
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
141
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
144
142
|
assert.strictEqual(yield r.isKnown, true);
|
|
145
143
|
assert.strictEqual(yield r.promise(), "inner");
|
|
146
144
|
}));
|
|
147
145
|
it("can run on known unknown output value during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
148
146
|
runtime._setIsDryRun(true);
|
|
149
147
|
const out = createOutput(0, true);
|
|
150
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
148
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
151
149
|
assert.strictEqual(yield r.isKnown, false);
|
|
152
150
|
assert.strictEqual(yield r.promise(), "inner");
|
|
153
151
|
}));
|
|
154
152
|
it("produces unknown default on unknown during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
155
153
|
runtime._setIsDryRun(true);
|
|
156
154
|
const out = createOutput(0, false);
|
|
157
|
-
const r = out.apply(v => v + 1);
|
|
155
|
+
const r = out.apply((v) => v + 1);
|
|
158
156
|
assert.strictEqual(yield r.isKnown, false);
|
|
159
157
|
assert.strictEqual(yield r.promise(), undefined);
|
|
160
158
|
}));
|
|
161
159
|
it("produces unknown default on unknown awaitable during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
160
|
runtime._setIsDryRun(true);
|
|
163
161
|
const out = createOutput(0, false);
|
|
164
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
162
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
165
163
|
assert.strictEqual(yield r.isKnown, false);
|
|
166
164
|
assert.strictEqual(yield r.promise(), undefined);
|
|
167
165
|
}));
|
|
168
166
|
it("produces unknown default on unknown known output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
169
167
|
runtime._setIsDryRun(true);
|
|
170
168
|
const out = createOutput(0, false);
|
|
171
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
169
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
172
170
|
assert.strictEqual(yield r.isKnown, false);
|
|
173
171
|
assert.strictEqual(yield r.promise(), undefined);
|
|
174
172
|
}));
|
|
175
173
|
it("produces unknown default on unknown unknown output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
176
174
|
runtime._setIsDryRun(true);
|
|
177
175
|
const out = createOutput(0, false);
|
|
178
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
176
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
179
177
|
assert.strictEqual(yield r.isKnown, false);
|
|
180
178
|
assert.strictEqual(yield r.promise(), undefined);
|
|
181
179
|
}));
|
|
182
180
|
it("preserves secret on known during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
183
181
|
runtime._setIsDryRun(true);
|
|
184
182
|
const out = createOutput(0, true, true);
|
|
185
|
-
const r = out.apply(v => v + 1);
|
|
183
|
+
const r = out.apply((v) => v + 1);
|
|
186
184
|
assert.strictEqual(yield r.isKnown, true);
|
|
187
185
|
assert.strictEqual(yield r.isSecret, true);
|
|
188
186
|
assert.strictEqual(yield r.promise(), 1);
|
|
@@ -190,7 +188,7 @@ describe("output", () => {
|
|
|
190
188
|
it("preserves secret on known awaitable during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
191
189
|
runtime._setIsDryRun(true);
|
|
192
190
|
const out = createOutput(0, true, true);
|
|
193
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
191
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
194
192
|
assert.strictEqual(yield r.isKnown, true);
|
|
195
193
|
assert.strictEqual(yield r.isSecret, true);
|
|
196
194
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -198,7 +196,7 @@ describe("output", () => {
|
|
|
198
196
|
it("preserves secret on known known output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
199
197
|
runtime._setIsDryRun(true);
|
|
200
198
|
const out = createOutput(0, true, true);
|
|
201
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
199
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
202
200
|
assert.strictEqual(yield r.isKnown, true);
|
|
203
201
|
assert.strictEqual(yield r.isSecret, true);
|
|
204
202
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -206,7 +204,7 @@ describe("output", () => {
|
|
|
206
204
|
it("preserves secret on known unknown output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
207
205
|
runtime._setIsDryRun(true);
|
|
208
206
|
const out = createOutput(0, true, true);
|
|
209
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
207
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
210
208
|
assert.strictEqual(yield r.isKnown, false);
|
|
211
209
|
assert.strictEqual(yield r.isSecret, true);
|
|
212
210
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -214,7 +212,7 @@ describe("output", () => {
|
|
|
214
212
|
it("preserves secret on unknown during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
215
213
|
runtime._setIsDryRun(true);
|
|
216
214
|
const out = createOutput(0, false, true);
|
|
217
|
-
const r = out.apply(v => v + 1);
|
|
215
|
+
const r = out.apply((v) => v + 1);
|
|
218
216
|
assert.strictEqual(yield r.isKnown, false);
|
|
219
217
|
assert.strictEqual(yield r.isSecret, true);
|
|
220
218
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -222,7 +220,7 @@ describe("output", () => {
|
|
|
222
220
|
it("preserves secret on unknown awaitable during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
223
221
|
runtime._setIsDryRun(true);
|
|
224
222
|
const out = createOutput(0, false, true);
|
|
225
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
223
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
226
224
|
assert.strictEqual(yield r.isKnown, false);
|
|
227
225
|
assert.strictEqual(yield r.isSecret, true);
|
|
228
226
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -230,7 +228,7 @@ describe("output", () => {
|
|
|
230
228
|
it("preserves secret on unknown known output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
231
229
|
runtime._setIsDryRun(true);
|
|
232
230
|
const out = createOutput(0, false, true);
|
|
233
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
231
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
234
232
|
assert.strictEqual(yield r.isKnown, false);
|
|
235
233
|
assert.strictEqual(yield r.isSecret, true);
|
|
236
234
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -238,7 +236,7 @@ describe("output", () => {
|
|
|
238
236
|
it("preserves secret on unknown unknown output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
239
237
|
runtime._setIsDryRun(true);
|
|
240
238
|
const out = createOutput(0, false, true);
|
|
241
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
239
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
242
240
|
assert.strictEqual(yield r.isKnown, false);
|
|
243
241
|
assert.strictEqual(yield r.isSecret, true);
|
|
244
242
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -246,7 +244,7 @@ describe("output", () => {
|
|
|
246
244
|
it("propagates secret on known known output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
247
245
|
runtime._setIsDryRun(true);
|
|
248
246
|
const out = createOutput(0, true);
|
|
249
|
-
const r = out.apply(v => createOutput("inner", true, true));
|
|
247
|
+
const r = out.apply((v) => createOutput("inner", true, true));
|
|
250
248
|
assert.strictEqual(yield r.isKnown, true);
|
|
251
249
|
assert.strictEqual(yield r.isSecret, true);
|
|
252
250
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -254,7 +252,7 @@ describe("output", () => {
|
|
|
254
252
|
it("propagates secret on known unknown output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
255
253
|
runtime._setIsDryRun(true);
|
|
256
254
|
const out = createOutput(0, true);
|
|
257
|
-
const r = out.apply(v => createOutput("inner", false, true));
|
|
255
|
+
const r = out.apply((v) => createOutput("inner", false, true));
|
|
258
256
|
assert.strictEqual(yield r.isKnown, false);
|
|
259
257
|
assert.strictEqual(yield r.isSecret, true);
|
|
260
258
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -262,7 +260,7 @@ describe("output", () => {
|
|
|
262
260
|
it("does not propagate secret on unknown known output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
263
261
|
runtime._setIsDryRun(true);
|
|
264
262
|
const out = createOutput(0, false);
|
|
265
|
-
const r = out.apply(v => createOutput("inner", true, true));
|
|
263
|
+
const r = out.apply((v) => createOutput("inner", true, true));
|
|
266
264
|
assert.strictEqual(yield r.isKnown, false);
|
|
267
265
|
assert.strictEqual(yield r.isSecret, false);
|
|
268
266
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -270,7 +268,7 @@ describe("output", () => {
|
|
|
270
268
|
it("does not propagate secret on unknown unknown output during preview", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
271
269
|
runtime._setIsDryRun(true);
|
|
272
270
|
const out = createOutput(0, false);
|
|
273
|
-
const r = out.apply(v => createOutput("inner", false, true));
|
|
271
|
+
const r = out.apply((v) => createOutput("inner", false, true));
|
|
274
272
|
assert.strictEqual(yield r.isKnown, false);
|
|
275
273
|
assert.strictEqual(yield r.isSecret, false);
|
|
276
274
|
assert.strictEqual(yield r.promise(), undefined);
|
|
@@ -278,63 +276,63 @@ describe("output", () => {
|
|
|
278
276
|
it("can run on known value", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
279
277
|
runtime._setIsDryRun(false);
|
|
280
278
|
const out = createOutput(0, true);
|
|
281
|
-
const r = out.apply(v => v + 1);
|
|
279
|
+
const r = out.apply((v) => v + 1);
|
|
282
280
|
assert.strictEqual(yield r.isKnown, true);
|
|
283
281
|
assert.strictEqual(yield r.promise(), 1);
|
|
284
282
|
}));
|
|
285
283
|
it("can run on known awaitable value", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
286
284
|
runtime._setIsDryRun(false);
|
|
287
285
|
const out = createOutput(0, true);
|
|
288
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
286
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
289
287
|
assert.strictEqual(yield r.isKnown, true);
|
|
290
288
|
assert.strictEqual(yield r.promise(), "inner");
|
|
291
289
|
}));
|
|
292
290
|
it("can run on known known output value", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
293
291
|
runtime._setIsDryRun(false);
|
|
294
292
|
const out = createOutput(0, true);
|
|
295
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
293
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
296
294
|
assert.strictEqual(yield r.isKnown, true);
|
|
297
295
|
assert.strictEqual(yield r.promise(), "inner");
|
|
298
296
|
}));
|
|
299
297
|
it("can run on unknown known output value", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
300
298
|
runtime._setIsDryRun(false);
|
|
301
299
|
const out = createOutput(0, true);
|
|
302
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
300
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
303
301
|
assert.strictEqual(yield r.isKnown, false);
|
|
304
302
|
assert.strictEqual(yield r.promise(), "inner");
|
|
305
303
|
}));
|
|
306
304
|
it("produces known on unknown", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
307
305
|
runtime._setIsDryRun(false);
|
|
308
306
|
const out = createOutput(0, false);
|
|
309
|
-
const r = out.apply(v => v + 1);
|
|
307
|
+
const r = out.apply((v) => v + 1);
|
|
310
308
|
assert.strictEqual(yield r.isKnown, true);
|
|
311
309
|
assert.strictEqual(yield r.promise(), 1);
|
|
312
310
|
}));
|
|
313
311
|
it("produces known on unknown awaitable", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
314
312
|
runtime._setIsDryRun(false);
|
|
315
313
|
const out = createOutput(0, false);
|
|
316
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
314
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
317
315
|
assert.strictEqual(yield r.isKnown, true);
|
|
318
316
|
assert.strictEqual(yield r.promise(), "inner");
|
|
319
317
|
}));
|
|
320
318
|
it("produces known on unknown known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
321
319
|
runtime._setIsDryRun(false);
|
|
322
320
|
const out = createOutput(0, false);
|
|
323
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
321
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
324
322
|
assert.strictEqual(yield r.isKnown, true);
|
|
325
323
|
assert.strictEqual(yield r.promise(), "inner");
|
|
326
324
|
}));
|
|
327
325
|
it("produces unknown on unknown unknown output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
328
326
|
runtime._setIsDryRun(false);
|
|
329
327
|
const out = createOutput(0, false);
|
|
330
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
328
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
331
329
|
assert.strictEqual(yield r.isKnown, false);
|
|
332
330
|
assert.strictEqual(yield r.promise(), "inner");
|
|
333
331
|
}));
|
|
334
332
|
it("preserves secret on known", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
335
333
|
runtime._setIsDryRun(false);
|
|
336
334
|
const out = createOutput(0, true, true);
|
|
337
|
-
const r = out.apply(v => v + 1);
|
|
335
|
+
const r = out.apply((v) => v + 1);
|
|
338
336
|
assert.strictEqual(yield r.isKnown, true);
|
|
339
337
|
assert.strictEqual(yield r.isSecret, true);
|
|
340
338
|
assert.strictEqual(yield r.promise(), 1);
|
|
@@ -342,7 +340,7 @@ describe("output", () => {
|
|
|
342
340
|
it("preserves secret on known awaitable", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
343
341
|
runtime._setIsDryRun(false);
|
|
344
342
|
const out = createOutput(0, true, true);
|
|
345
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
343
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
346
344
|
assert.strictEqual(yield r.isKnown, true);
|
|
347
345
|
assert.strictEqual(yield r.isSecret, true);
|
|
348
346
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -350,7 +348,7 @@ describe("output", () => {
|
|
|
350
348
|
it("preserves secret on known known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
351
349
|
runtime._setIsDryRun(false);
|
|
352
350
|
const out = createOutput(0, true, true);
|
|
353
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
351
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
354
352
|
assert.strictEqual(yield r.isKnown, true);
|
|
355
353
|
assert.strictEqual(yield r.isSecret, true);
|
|
356
354
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -358,7 +356,7 @@ describe("output", () => {
|
|
|
358
356
|
it("preserves secret on known known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
359
357
|
runtime._setIsDryRun(false);
|
|
360
358
|
const out = createOutput(0, true, true);
|
|
361
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
359
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
362
360
|
assert.strictEqual(yield r.isKnown, false);
|
|
363
361
|
assert.strictEqual(yield r.isSecret, true);
|
|
364
362
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -366,7 +364,7 @@ describe("output", () => {
|
|
|
366
364
|
it("preserves secret on unknown", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
367
365
|
runtime._setIsDryRun(false);
|
|
368
366
|
const out = createOutput(0, false, true);
|
|
369
|
-
const r = out.apply(v => v + 1);
|
|
367
|
+
const r = out.apply((v) => v + 1);
|
|
370
368
|
assert.strictEqual(yield r.isKnown, true);
|
|
371
369
|
assert.strictEqual(yield r.isSecret, true);
|
|
372
370
|
assert.strictEqual(yield r.promise(), 1);
|
|
@@ -374,7 +372,7 @@ describe("output", () => {
|
|
|
374
372
|
it("preserves secret on unknown awaitable", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
375
373
|
runtime._setIsDryRun(false);
|
|
376
374
|
const out = createOutput(0, false, true);
|
|
377
|
-
const r = out.apply(v => Promise.resolve("inner"));
|
|
375
|
+
const r = out.apply((v) => Promise.resolve("inner"));
|
|
378
376
|
assert.strictEqual(yield r.isKnown, true);
|
|
379
377
|
assert.strictEqual(yield r.isSecret, true);
|
|
380
378
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -382,7 +380,7 @@ describe("output", () => {
|
|
|
382
380
|
it("preserves secret on unknown known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
383
381
|
runtime._setIsDryRun(false);
|
|
384
382
|
const out = createOutput(0, false, true);
|
|
385
|
-
const r = out.apply(v => createOutput("inner", true));
|
|
383
|
+
const r = out.apply((v) => createOutput("inner", true));
|
|
386
384
|
assert.strictEqual(yield r.isKnown, true);
|
|
387
385
|
assert.strictEqual(yield r.isSecret, true);
|
|
388
386
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -390,7 +388,7 @@ describe("output", () => {
|
|
|
390
388
|
it("preserves secret on unknown known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
391
389
|
runtime._setIsDryRun(false);
|
|
392
390
|
const out = createOutput(0, false, true);
|
|
393
|
-
const r = out.apply(v => createOutput("inner", false));
|
|
391
|
+
const r = out.apply((v) => createOutput("inner", false));
|
|
394
392
|
assert.strictEqual(yield r.isKnown, false);
|
|
395
393
|
assert.strictEqual(yield r.isSecret, true);
|
|
396
394
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -398,7 +396,7 @@ describe("output", () => {
|
|
|
398
396
|
it("propagates secret on known known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
399
397
|
runtime._setIsDryRun(false);
|
|
400
398
|
const out = createOutput(0, true);
|
|
401
|
-
const r = out.apply(v => createOutput("inner", true, true));
|
|
399
|
+
const r = out.apply((v) => createOutput("inner", true, true));
|
|
402
400
|
assert.strictEqual(yield r.isKnown, true);
|
|
403
401
|
assert.strictEqual(yield r.isSecret, true);
|
|
404
402
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -406,7 +404,7 @@ describe("output", () => {
|
|
|
406
404
|
it("propagates secret on known unknown output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
407
405
|
runtime._setIsDryRun(false);
|
|
408
406
|
const out = createOutput(0, true);
|
|
409
|
-
const r = out.apply(v => createOutput("inner", false, true));
|
|
407
|
+
const r = out.apply((v) => createOutput("inner", false, true));
|
|
410
408
|
assert.strictEqual(yield r.isKnown, false);
|
|
411
409
|
assert.strictEqual(yield r.isSecret, true);
|
|
412
410
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -414,7 +412,7 @@ describe("output", () => {
|
|
|
414
412
|
it("propagates secret on unknown known output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
415
413
|
runtime._setIsDryRun(false);
|
|
416
414
|
const out = createOutput(0, false);
|
|
417
|
-
const r = out.apply(v => createOutput("inner", true, true));
|
|
415
|
+
const r = out.apply((v) => createOutput("inner", true, true));
|
|
418
416
|
assert.strictEqual(yield r.isKnown, true);
|
|
419
417
|
assert.strictEqual(yield r.isSecret, true);
|
|
420
418
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -422,7 +420,7 @@ describe("output", () => {
|
|
|
422
420
|
it("propagates secret on unknown uknown output", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
423
421
|
runtime._setIsDryRun(false);
|
|
424
422
|
const out = createOutput(0, false);
|
|
425
|
-
const r = out.apply(v => createOutput("inner", false, true));
|
|
423
|
+
const r = out.apply((v) => createOutput("inner", false, true));
|
|
426
424
|
assert.strictEqual(yield r.isKnown, false);
|
|
427
425
|
assert.strictEqual(yield r.isSecret, true);
|
|
428
426
|
assert.strictEqual(yield r.promise(), "inner");
|
|
@@ -432,11 +430,7 @@ describe("output", () => {
|
|
|
432
430
|
function or(output1, output2) {
|
|
433
431
|
const val1 = output1.promise();
|
|
434
432
|
const val2 = output2.promise();
|
|
435
|
-
return new output_1.Output(new Set([...output1.resources(), ...output2.resources()]), Promise.all([val1, val2])
|
|
436
|
-
.then(([val1, val2]) => val1 || val2), Promise.all([val1, output1.isKnown, output2.isKnown])
|
|
437
|
-
.then(([val1, isKnown1, isKnown2]) => val1 ? isKnown1 : isKnown2), Promise.all([val1, output1.isSecret, output2.isSecret])
|
|
438
|
-
.then(([val1, isSecret1, isSecret2]) => val1 ? isSecret1 : isSecret2), Promise.all([output1.allResources(), output2.allResources()])
|
|
439
|
-
.then(([r1, r2]) => new Set([...r1, ...r2])));
|
|
433
|
+
return new output_1.Output(new Set([...output1.resources(), ...output2.resources()]), Promise.all([val1, val2]).then(([val1, val2]) => val1 || val2), Promise.all([val1, output1.isKnown, output2.isKnown]).then(([val1, isKnown1, isKnown2]) => val1 ? isKnown1 : isKnown2), Promise.all([val1, output1.isSecret, output2.isSecret]).then(([val1, isSecret1, isSecret2]) => val1 ? isSecret1 : isSecret2), Promise.all([output1.allResources(), output2.allResources()]).then(([r1, r2]) => new Set([...r1, ...r2])));
|
|
440
434
|
}
|
|
441
435
|
it("choose between known and known output, non-secret", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
442
436
|
runtime._setIsDryRun(true);
|
|
@@ -562,7 +556,7 @@ describe("output", () => {
|
|
|
562
556
|
runtime._setIsDryRun(true);
|
|
563
557
|
const o1 = new output_1.Output(new Set(), Promise.resolve(output_1.unknown), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
564
558
|
const o2 = new output_1.Output(new Set(), Promise.resolve(["foo", output_1.unknown]), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
565
|
-
const o3 = new output_1.Output(new Set(), Promise.resolve({
|
|
559
|
+
const o3 = new output_1.Output(new Set(), Promise.resolve({ foo: "foo", unknown: output_1.unknown }), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
566
560
|
assert.strictEqual(yield o1.isKnown, false);
|
|
567
561
|
assert.strictEqual(yield o2.isKnown, false);
|
|
568
562
|
assert.strictEqual(yield o3.isKnown, false);
|
|
@@ -570,12 +564,12 @@ describe("output", () => {
|
|
|
570
564
|
it("is unknown if the result after apply is unknown or contains unknowns", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
571
565
|
runtime._setIsDryRun(true);
|
|
572
566
|
const o1 = new output_1.Output(new Set(), Promise.resolve("foo"), Promise.resolve(true), Promise.resolve(false), Promise.resolve(new Set()));
|
|
573
|
-
const r1 = o1.apply(v => output_1.unknown);
|
|
574
|
-
const r2 = o1.apply(v => [v, output_1.unknown]);
|
|
575
|
-
const r3 = o1.apply(v => ({ v, unknown: output_1.unknown }));
|
|
576
|
-
const r4 = o1.apply(v => output_1.unknown).apply((v) => v, true);
|
|
577
|
-
const r5 = o1.apply(v => [v, output_1.unknown]).apply((v) => v, true);
|
|
578
|
-
const r6 = o1.apply(v => ({ v, unknown: output_1.unknown })).apply((v) => v, true);
|
|
567
|
+
const r1 = o1.apply((v) => output_1.unknown);
|
|
568
|
+
const r2 = o1.apply((v) => [v, output_1.unknown]);
|
|
569
|
+
const r3 = o1.apply((v) => ({ v, unknown: output_1.unknown }));
|
|
570
|
+
const r4 = o1.apply((v) => output_1.unknown).apply((v) => v, true);
|
|
571
|
+
const r5 = o1.apply((v) => [v, output_1.unknown]).apply((v) => v, true);
|
|
572
|
+
const r6 = o1.apply((v) => ({ v, unknown: output_1.unknown })).apply((v) => v, true);
|
|
579
573
|
assert.strictEqual(yield r1.isKnown, false);
|
|
580
574
|
assert.strictEqual(yield r2.isKnown, false);
|
|
581
575
|
assert.strictEqual(yield r3.isKnown, false);
|
|
@@ -654,7 +648,7 @@ describe("output", () => {
|
|
|
654
648
|
it("nested unknowns", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
655
649
|
const x = output_1.output([
|
|
656
650
|
new output_1.Output(new Set(), Promise.resolve(undefined), Promise.resolve(false), Promise.resolve(false), Promise.resolve(new Set())),
|
|
657
|
-
output_1.output(1)
|
|
651
|
+
output_1.output(1),
|
|
658
652
|
]);
|
|
659
653
|
const result = output_1.jsonStringify(x);
|
|
660
654
|
assert.strictEqual(yield result.isKnown, false);
|
|
@@ -663,7 +657,7 @@ describe("output", () => {
|
|
|
663
657
|
it("nested secret", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
664
658
|
const x = output_1.output([
|
|
665
659
|
new output_1.Output(new Set(), Promise.resolve(0), Promise.resolve(true), Promise.resolve(true), Promise.resolve(new Set())),
|
|
666
|
-
output_1.output(1)
|
|
660
|
+
output_1.output(1),
|
|
667
661
|
]);
|
|
668
662
|
const result = output_1.jsonStringify(x);
|
|
669
663
|
assert.strictEqual(yield result.promise(), "[0,1]");
|
|
@@ -683,7 +677,7 @@ describe("output", () => {
|
|
|
683
677
|
const mockResources = [mockResource];
|
|
684
678
|
const x = output_1.output([
|
|
685
679
|
new output_1.Output(new Set(mockResources), Promise.resolve(0), Promise.resolve(true), Promise.resolve(true), Promise.resolve(new Set())),
|
|
686
|
-
output_1.output(1)
|
|
680
|
+
output_1.output(1),
|
|
687
681
|
]);
|
|
688
682
|
const result = output_1.jsonStringify(x);
|
|
689
683
|
assert.strictEqual(yield result.promise(), "[0,1]");
|
|
@@ -713,7 +707,7 @@ describe("output", () => {
|
|
|
713
707
|
}
|
|
714
708
|
return value;
|
|
715
709
|
};
|
|
716
|
-
const x = output_1.output(
|
|
710
|
+
const x = output_1.output('{"bob": "hello"}');
|
|
717
711
|
const result = output_1.jsonParse(x, reviver);
|
|
718
712
|
assert.deepStrictEqual(yield result.promise(), { bob: "goodbye" });
|
|
719
713
|
assert.strictEqual(yield result.isKnown, true);
|