@explorer02/cfm-survey-sdk 0.0.2 → 0.0.4

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 (33) hide show
  1. package/dist/cli/const.d.ts +17 -3
  2. package/dist/cli/const.d.ts.map +1 -1
  3. package/dist/cli/const.js +21 -3
  4. package/dist/cli/const.js.map +1 -1
  5. package/dist/cli/index.js +52 -10
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/init.d.ts +2 -0
  8. package/dist/cli/init.d.ts.map +1 -0
  9. package/dist/cli/init.js +182 -0
  10. package/dist/cli/init.js.map +1 -0
  11. package/dist/cli/questionnaire/engine.d.ts +22 -0
  12. package/dist/cli/questionnaire/engine.d.ts.map +1 -0
  13. package/dist/cli/questionnaire/engine.js +218 -0
  14. package/dist/cli/questionnaire/engine.js.map +1 -0
  15. package/dist/cli/questionnaire/questionnaire-cli.d.ts +2 -0
  16. package/dist/cli/questionnaire/questionnaire-cli.d.ts.map +1 -0
  17. package/dist/cli/questionnaire/questionnaire-cli.js +3 -0
  18. package/dist/cli/questionnaire/questionnaire-cli.js.map +1 -0
  19. package/dist/cli/questionnaire/questions.d.ts +3 -0
  20. package/dist/cli/questionnaire/questions.d.ts.map +1 -0
  21. package/dist/cli/questionnaire/questions.js +327 -0
  22. package/dist/cli/questionnaire/questions.js.map +1 -0
  23. package/dist/cli/questionnaire/runner.d.ts +3 -0
  24. package/dist/cli/questionnaire/runner.d.ts.map +1 -0
  25. package/dist/cli/questionnaire/runner.js +102 -0
  26. package/dist/cli/questionnaire/runner.js.map +1 -0
  27. package/dist/cli/questionnaire/types.d.ts +94 -0
  28. package/dist/cli/questionnaire/types.d.ts.map +1 -0
  29. package/dist/cli/questionnaire/types.js +7 -0
  30. package/dist/cli/questionnaire/types.js.map +1 -0
  31. package/package.json +1 -1
  32. package/postinstall.js +57 -17
  33. package/templates/AGENT.md +92 -28
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=questionnaire-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questionnaire-cli.js","sourceRoot":"","sources":["../../../src/cli/questionnaire/questionnaire-cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Question } from './types';
2
+ export declare const CFM_QUESTIONS: Question[];
3
+ //# sourceMappingURL=questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/cli/questionnaire/questions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAW,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,aAAa,EAAE,QAAQ,EAyUnC,CAAC"}
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CFM_QUESTIONS = void 0;
4
+ exports.CFM_QUESTIONS = [
5
+ // ── PHASE 0: Mockup Detection ─────────────────────────────────────────────
6
+ {
7
+ type: 'section',
8
+ id: '__sec0__',
9
+ label: 'PHASE 0 of 7 │ Mockup Detection',
10
+ },
11
+ {
12
+ id: 'hasMockup',
13
+ type: 'yesno',
14
+ num: '0',
15
+ label: 'Did you share any UI mockup screenshots / images with the AI Agent in the IDE chat?',
16
+ hint: 'If yes, the agent will analyse them and replicate the visual design exactly.',
17
+ defaultValue: false,
18
+ defaultLabel: 'n',
19
+ },
20
+ // ── PHASE 1: Survey Identity ──────────────────────────────────────────────
21
+ {
22
+ type: 'section',
23
+ id: '__sec1__',
24
+ label: 'PHASE 1 of 7 │ Survey Identity',
25
+ },
26
+ {
27
+ id: 'surveyTitle',
28
+ type: 'text',
29
+ num: '1',
30
+ label: 'Survey Title',
31
+ hint: 'The heading displayed inside the survey page.',
32
+ defaultValue: 'Customer Feedback Survey',
33
+ defaultLabel: 'Customer Feedback Survey',
34
+ },
35
+ {
36
+ id: 'companyName',
37
+ type: 'text',
38
+ num: '2',
39
+ label: 'Company / Organisation Name',
40
+ hint: 'Shown in the header or footer.',
41
+ defaultValue: 'Sprinklr',
42
+ defaultLabel: 'Sprinklr',
43
+ },
44
+ {
45
+ id: 'browserTabTitle',
46
+ type: 'text',
47
+ num: '3',
48
+ label: 'Browser Tab Title',
49
+ hint: 'Text shown in the browser tab (<title> tag).',
50
+ defaultValue: 'Customer Feedback Survey',
51
+ defaultLabel: 'Customer Feedback Survey',
52
+ },
53
+ {
54
+ id: 'thankYouMessage',
55
+ type: 'text',
56
+ num: '4',
57
+ label: 'Thank-You Message',
58
+ hint: 'Displayed after the survey is submitted.',
59
+ defaultValue: 'Thank you for your valuable feedback!',
60
+ defaultLabel: 'Thank you for your valuable feedback!',
61
+ },
62
+ // ── PHASE 2: Logo ─────────────────────────────────────────────────────────
63
+ {
64
+ type: 'section',
65
+ id: '__sec2__',
66
+ label: 'PHASE 2 of 7 │ Logo Setup',
67
+ },
68
+ {
69
+ id: 'logoFileName',
70
+ type: 'text',
71
+ num: '5',
72
+ label: 'Logo filename inside public/',
73
+ hint: 'e.g. "logo.png" — Leave blank to use the default Sprinklr logo.',
74
+ defaultValue: '',
75
+ defaultLabel: 'none (Sprinklr default)',
76
+ },
77
+ // ── PHASE 3: UI Layout & Customisation ───────────────────────────────────
78
+ {
79
+ type: 'section',
80
+ id: '__sec3__',
81
+ label: 'PHASE 3 of 7 │ UI Layout & Customisation',
82
+ },
83
+ {
84
+ id: 'showHeader',
85
+ type: 'yesno',
86
+ num: '6',
87
+ label: 'Show a header bar at the top of the survey?',
88
+ hint: 'e.g. company name, logo.',
89
+ defaultValue: true,
90
+ defaultLabel: 'y',
91
+ },
92
+ {
93
+ id: 'showFooter',
94
+ type: 'yesno',
95
+ num: '7',
96
+ label: 'Show a footer at the bottom?',
97
+ hint: 'e.g. Privacy Policy, copyright notice.',
98
+ defaultValue: true,
99
+ defaultLabel: 'y',
100
+ },
101
+ {
102
+ id: 'showProgressBar',
103
+ type: 'yesno',
104
+ num: '8',
105
+ label: 'Show a progress bar showing survey completion?',
106
+ hint: 'Helps users see how far along they are.',
107
+ defaultValue: true,
108
+ defaultLabel: 'y',
109
+ },
110
+ {
111
+ id: 'showLanguageSwitcher',
112
+ type: 'yesno',
113
+ num: '9',
114
+ label: 'Show a language switcher for multi-language support?',
115
+ hint: 'Only needed if the survey supports multiple languages.',
116
+ defaultValue: false,
117
+ defaultLabel: 'n',
118
+ },
119
+ {
120
+ id: 'showBackButton',
121
+ type: 'yesno',
122
+ num: '10',
123
+ label: 'Allow users to go back to previous questions?',
124
+ hint: 'Shows a "Back" button between pages.',
125
+ defaultValue: true,
126
+ defaultLabel: 'y',
127
+ },
128
+ {
129
+ id: 'layoutWidth',
130
+ type: 'menu',
131
+ num: '11',
132
+ label: 'Survey content width',
133
+ options: [
134
+ 'Narrow (max-w-xl — compact, focussed)',
135
+ 'Standard (max-w-3xl — balanced)',
136
+ 'Wide (max-w-5xl — spacious, desktop-first)',
137
+ ],
138
+ },
139
+ {
140
+ id: 'borderStyle',
141
+ type: 'menu',
142
+ num: '12',
143
+ label: 'Border / corner style',
144
+ options: [
145
+ 'Sharp corners (square, corporate feel)',
146
+ 'Slightly rounded (modern, friendly)',
147
+ 'Fully rounded / pill (casual, soft)',
148
+ ],
149
+ },
150
+ {
151
+ id: 'fontStyle',
152
+ type: 'menu',
153
+ num: '13',
154
+ label: 'Font preference',
155
+ options: [
156
+ 'System font (fastest, clean)',
157
+ 'Modern sans-serif (Inter / Roboto — recommended)',
158
+ 'Classic serif (Times-style, formal)',
159
+ ],
160
+ },
161
+ {
162
+ id: 'showQuestionNumbers',
163
+ type: 'yesno',
164
+ num: '14',
165
+ label: 'Show question numbers? (e.g. "Q1.", "Q2.")',
166
+ hint: 'Helps users track progress within a page.',
167
+ defaultValue: true,
168
+ defaultLabel: 'y',
169
+ },
170
+ {
171
+ id: 'showRequiredAsterisk',
172
+ type: 'yesno',
173
+ num: '15',
174
+ label: 'Mark required questions with an asterisk (*)?',
175
+ hint: 'Standard survey convention — highly recommended.',
176
+ defaultValue: true,
177
+ defaultLabel: 'y',
178
+ },
179
+ {
180
+ id: 'submitButtonText',
181
+ type: 'text',
182
+ num: '16',
183
+ label: 'Submit button label',
184
+ hint: 'Text on the final submit button.',
185
+ defaultValue: 'Submit',
186
+ defaultLabel: 'Submit',
187
+ },
188
+ {
189
+ id: 'nextButtonText',
190
+ type: 'text',
191
+ num: '17',
192
+ label: 'Next button label',
193
+ hint: 'Text on the "next page" button.',
194
+ defaultValue: 'Next',
195
+ defaultLabel: 'Next',
196
+ },
197
+ {
198
+ id: 'backButtonText',
199
+ type: 'text',
200
+ num: '18',
201
+ label: 'Back button label',
202
+ hint: 'Text on the "previous page" button.',
203
+ defaultValue: 'Back',
204
+ defaultLabel: 'Back',
205
+ // ✅ Conditional: only shown when the user chose to have a back button
206
+ condition: (answers) => answers['showBackButton'] === true,
207
+ },
208
+ {
209
+ id: 'animationsEnabled',
210
+ type: 'yesno',
211
+ num: '19',
212
+ label: 'Enable smooth animations / transitions between pages?',
213
+ hint: 'Subtle fade transitions feel polished and modern.',
214
+ defaultValue: true,
215
+ defaultLabel: 'y',
216
+ },
217
+ // ── PHASE 4: Color Theme ──────────────────────────────────────────────────
218
+ {
219
+ type: 'section',
220
+ id: '__sec4__',
221
+ label: 'PHASE 4 of 7 │ Color Theme',
222
+ },
223
+ {
224
+ id: 'colorSource',
225
+ type: 'menu',
226
+ num: '20',
227
+ label: 'How should the color theme be chosen?',
228
+ // Note: options are rendered dynamically in the runner using hasMockup context
229
+ options: [
230
+ 'Extract colors from your mockup screenshots',
231
+ 'Extract colors from your logo',
232
+ 'Let me choose a custom color scheme',
233
+ 'Agent picks the best professional scheme automatically',
234
+ ],
235
+ },
236
+ // ── If custom mode chosen: how? ───────────────────────────────────────────
237
+ {
238
+ id: 'colorCustomMode',
239
+ type: 'menu',
240
+ num: '20b',
241
+ label: 'How would you like to provide your colors?',
242
+ options: [
243
+ 'Show me 5 suggested professional color schemes to pick from',
244
+ 'I will type in my own hex color codes',
245
+ ],
246
+ // Only if user selected option 3 (custom)
247
+ condition: (a) => a['colorSource'] === '3',
248
+ },
249
+ // ── Color scheme picker (shown when colorCustomMode === '1') ──────────────
250
+ {
251
+ id: 'colorSchemePick',
252
+ type: 'color-schemes',
253
+ num: '20c',
254
+ label: 'Pick a colour scheme',
255
+ condition: (a) => a['colorSource'] === '3' && a['colorCustomMode'] === '1',
256
+ },
257
+ // ── Hex inputs (shown when colorCustomMode === '2') ───────────────────────
258
+ {
259
+ id: 'hexColors',
260
+ type: 'hex-inputs',
261
+ num: '20d',
262
+ label: 'Enter your custom hex color codes',
263
+ condition: (a) => a['colorSource'] === '3' && a['colorCustomMode'] === '2',
264
+ },
265
+ // ── PHASE 5: SDK Placeholder Values ──────────────────────────────────────
266
+ {
267
+ type: 'section',
268
+ id: '__sec5__',
269
+ label: 'PHASE 5 of 7 │ Survey Data Configuration',
270
+ },
271
+ {
272
+ id: 'firstName',
273
+ type: 'text',
274
+ num: '21',
275
+ label: 'Test First Name',
276
+ hint: 'Used to replace {{FIRST_NAME}} in survey questions.',
277
+ defaultValue: 'Unnat',
278
+ defaultLabel: 'Unnat',
279
+ isRequired: true,
280
+ },
281
+ {
282
+ id: 'lastName',
283
+ type: 'text',
284
+ num: '22',
285
+ label: 'Test Last Name',
286
+ hint: 'Used to replace {{LAST_NAME}} in survey questions.',
287
+ defaultValue: 'Agrawal',
288
+ defaultLabel: 'Agrawal',
289
+ isRequired: true,
290
+ },
291
+ {
292
+ id: 'email',
293
+ type: 'text',
294
+ num: '23',
295
+ label: 'Test Email Address',
296
+ hint: 'Used to replace {{EMAIL_ADDRESS}} in survey questions.',
297
+ defaultValue: 'unnat.agrawal@sprinklr.com',
298
+ defaultLabel: 'unnat.agrawal@sprinklr.com',
299
+ isRequired: true,
300
+ },
301
+ {
302
+ id: 'debug',
303
+ type: 'yesno',
304
+ num: '24',
305
+ label: 'Enable Debug / Test Mode?',
306
+ hint: 'Shows extra info in browser console. Turn ON while building, OFF before going live.',
307
+ defaultValue: true,
308
+ defaultLabel: 'y',
309
+ isRequired: true,
310
+ },
311
+ // ── PHASE 6: Deployment ───────────────────────────────────────────────────
312
+ {
313
+ type: 'section',
314
+ id: '__sec6__',
315
+ label: 'PHASE 6 of 7 │ Deployment',
316
+ },
317
+ {
318
+ id: 'deployToVercel',
319
+ type: 'yesno',
320
+ num: '25',
321
+ label: 'Automatically deploy to Vercel when the build is ready?',
322
+ hint: 'This publishes your survey live on the internet. You can also do this later.',
323
+ defaultValue: true,
324
+ defaultLabel: 'y',
325
+ },
326
+ ];
327
+ //# sourceMappingURL=questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../../src/cli/questionnaire/questions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Answers } from './types';
2
+ export declare function runQuestionnaire(): Promise<Answers>;
3
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/cli/questionnaire/runner.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,OAAO,EAAE,MAAM,SAAS,CAAC;AAO9C,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8EnD"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runQuestionnaire = runQuestionnaire;
7
+ // ─────────────────────────────────────────────────────────────────────────────
8
+ // runQuestionnaire() — Public API
9
+ //
10
+ // Architecture:
11
+ // parent (init.ts) calls runQuestionnaire()
12
+ // ├── forks questionnaire-cli.js as child with stdio: [0, 1, 2, 'ipc']
13
+ // │ stdin (0) = inherited → child readline reads from terminal
14
+ // │ stdout (1) = inherited → child prints questions to terminal
15
+ // │ stderr (2) = inherited → errors visible in terminal
16
+ // │ 'ipc' = built-in Node.js IPC channel (invisible to terminal)
17
+ // └── awaits IPC message from child (questionnaireComplete / error / cancel)
18
+ //
19
+ // The client sees the questionnaire in the same terminal the agent opened.
20
+ // That terminal IS the visible IDE terminal in VS Code / Cursor.
21
+ // ─────────────────────────────────────────────────────────────────────────────
22
+ const child_process_1 = require("child_process");
23
+ const path_1 = __importDefault(require("path"));
24
+ const const_1 = require("../const");
25
+ const c = const_1.colors;
26
+ const TIMEOUT_MS = 15 * 60 * 1000; // 15-minute timeout
27
+ function runQuestionnaire() {
28
+ // Fork the compiled CLI entry point (dist/cli/index.js) with the
29
+ // 'questionnaire-run' command. The child inherits stdin/stdout/stderr so
30
+ // questions appear in the same visible terminal the agent opened, while
31
+ // structured answers flow back through the built-in IPC channel.
32
+ const cliEntry = path_1.default.join(__dirname, '..', 'index.js');
33
+ return new Promise((resolve, reject) => {
34
+ let child;
35
+ try {
36
+ child = (0, child_process_1.fork)(cliEntry, ['questionnaire-run'], {
37
+ // [0,1,2] = inherit stdin/stdout/stderr so the questionnaire is VISIBLE
38
+ // 'ipc' = add the built-in IPC channel for structured answer passing
39
+ stdio: [0, 1, 2, 'ipc'],
40
+ env: { ...process.env },
41
+ });
42
+ }
43
+ catch (err) {
44
+ const msg = err instanceof Error ? err.message : String(err);
45
+ return reject(new Error(`Failed to start questionnaire process: ${msg}`));
46
+ }
47
+ let settled = false;
48
+ function settle(fn) {
49
+ if (!settled) {
50
+ settled = true;
51
+ clearTimeout(timer);
52
+ fn();
53
+ }
54
+ }
55
+ // ── IPC message handler ──────────────────────────────────────────────────
56
+ child.on('message', (raw) => {
57
+ const msg = raw;
58
+ switch (msg.type) {
59
+ case 'questionnaireComplete':
60
+ settle(() => resolve(msg.payload));
61
+ break;
62
+ case 'questionnaireCancelled':
63
+ settle(() => resolve({})); // return empty → all defaults applied
64
+ break;
65
+ case 'questionnaireError':
66
+ settle(() => reject(new Error(msg.payload.message)));
67
+ break;
68
+ }
69
+ });
70
+ // ── Child process exits ──────────────────────────────────────────────────
71
+ child.on('exit', (code) => {
72
+ settle(() => {
73
+ if (code !== 0) {
74
+ reject(new Error(`Questionnaire process terminated before completion (exit code ${code})`));
75
+ }
76
+ else {
77
+ // Exited cleanly without sending complete — treat as cancelled
78
+ resolve({});
79
+ }
80
+ });
81
+ });
82
+ // ── Spawn error ──────────────────────────────────────────────────────────
83
+ child.on('error', (err) => {
84
+ settle(() => reject(new Error(`Questionnaire process error: ${err.message}`)));
85
+ });
86
+ // ── Timeout guard ────────────────────────────────────────────────────────
87
+ const timer = setTimeout(() => {
88
+ settle(() => {
89
+ console.error(`\n${c.red}⏱ Questionnaire timed out after 15 minutes — using default values.${c.reset}\n`);
90
+ try {
91
+ child.kill();
92
+ }
93
+ catch { /* ignore */ }
94
+ resolve({}); // fall back to all defaults
95
+ });
96
+ }, TIMEOUT_MS);
97
+ // Ensure the timer doesn't keep the process alive
98
+ if (timer.unref)
99
+ timer.unref();
100
+ });
101
+ }
102
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/cli/questionnaire/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ export type AnswerValue = string | boolean | null;
2
+ /** Collected answers keyed by question id */
3
+ export interface Answers {
4
+ [questionId: string]: AnswerValue;
5
+ }
6
+ /** A single question rendered in the terminal */
7
+ export interface Question {
8
+ /** Unique key stored in Answers */
9
+ id: string;
10
+ /**
11
+ * text – free-form text input
12
+ * yesno – y/n boolean
13
+ * menu – numbered list, returns the number as a string ('1','2',…,'')
14
+ * section – prints a section header, no input collected
15
+ * color-schemes – shows 5 colour scheme options, returns picked number string
16
+ * hex-inputs – collects 5 raw hex values; answer is stored as object (handled specially)
17
+ */
18
+ type: 'text' | 'yesno' | 'menu' | 'section' | 'color-schemes' | 'hex-inputs';
19
+ /** Display number (e.g. '1', '2a', '→') */
20
+ num?: string;
21
+ /** Question label shown in bold */
22
+ label: string;
23
+ /** Hint / example shown in dim */
24
+ hint?: string;
25
+ /** Default value used when user presses Enter */
26
+ defaultValue?: string | boolean;
27
+ /** Human-readable default shown in the prompt */
28
+ defaultLabel?: string;
29
+ /** Options for menu type */
30
+ options?: string[];
31
+ /** Use [recommended] instead of [optional] tag */
32
+ isRequired?: boolean;
33
+ /** If function returns false the question is silently skipped */
34
+ condition?: (answers: Answers) => boolean;
35
+ }
36
+ export type IPCMessage = {
37
+ type: 'questionnaireComplete';
38
+ payload: Answers;
39
+ } | {
40
+ type: 'questionnaireError';
41
+ payload: {
42
+ message: string;
43
+ };
44
+ } | {
45
+ type: 'questionnaireCancelled';
46
+ };
47
+ export interface ColorScheme {
48
+ primary: string;
49
+ secondary: string;
50
+ accent: string;
51
+ background: string;
52
+ text: string;
53
+ buttonText: string;
54
+ }
55
+ export interface SurveyConfig {
56
+ hasMockup: boolean;
57
+ surveyTitle: string;
58
+ companyName: string;
59
+ browserTabTitle: string;
60
+ thankYouMessage: string;
61
+ logo: {
62
+ fileName: string | null;
63
+ defaultUrl: string | null;
64
+ };
65
+ layout: {
66
+ showHeader: boolean;
67
+ showFooter: boolean;
68
+ showProgressBar: boolean;
69
+ showLanguageSwitcher: boolean;
70
+ showBackButton: boolean;
71
+ width: 'narrow' | 'standard' | 'wide';
72
+ borderStyle: 'sharp' | 'rounded' | 'pill';
73
+ fontStyle: 'system' | 'modern' | 'serif';
74
+ showQuestionNumbers: boolean;
75
+ showRequiredAsterisk: boolean;
76
+ animationsEnabled: boolean;
77
+ };
78
+ buttons: {
79
+ submit: string;
80
+ next: string;
81
+ back: string;
82
+ };
83
+ colorSource: 'mockup' | 'logo' | 'custom' | 'auto';
84
+ colorScheme: ColorScheme;
85
+ placeholders: {
86
+ firstName: string;
87
+ lastName: string;
88
+ email: string;
89
+ };
90
+ debug: boolean;
91
+ deployToVercel: boolean;
92
+ configuredAt: string;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/questionnaire/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // ─────────────────────────────────────────────────────────────────────────────
3
+ // CFM Survey SDK — Questionnaire Types
4
+ // Shared between runner (parent process) and questionnaire-run (child process)
5
+ // ─────────────────────────────────────────────────────────────────────────────
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/questionnaire/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,uCAAuC;AACvC,+EAA+E;AAC/E,gFAAgF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer02/cfm-survey-sdk",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "bin": {