@tutorflow/cli 0.4.0 → 0.5.1
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/README.md +23 -3
- package/dist/commands/course.d.ts.map +1 -1
- package/dist/commands/course.js +3 -1
- package/dist/commands/course.js.map +1 -1
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +5 -0
- package/dist/commands/interactive.js.map +1 -1
- package/dist/commands/module.d.ts.map +1 -1
- package/dist/commands/module.js +3 -1
- package/dist/commands/module.js.map +1 -1
- package/dist/commands/slide.d.ts.map +1 -1
- package/dist/commands/slide.js +2 -0
- package/dist/commands/slide.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +2 -0
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/video.d.ts.map +1 -1
- package/dist/commands/video.js +7 -2
- package/dist/commands/video.js.map +1 -1
- package/dist/content/sharing.d.ts +24 -0
- package/dist/content/sharing.d.ts.map +1 -0
- package/dist/content/sharing.js +88 -0
- package/dist/content/sharing.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -73,10 +73,10 @@ All ids are UUIDs. Every command accepts `--json`.
|
|
|
73
73
|
|
|
74
74
|
| Command | Route | Credits |
|
|
75
75
|
| --- | --- | --- |
|
|
76
|
-
| `course generate [prompt] [--lessons] [--language] [--level] [--title] [--description]` | `POST …/courses/generate` | 3 +
|
|
76
|
+
| `course generate [prompt] [--lessons] [--language] [--level] [--title] [--description]` | `POST …/courses/generate` | 3 + 6 per lesson |
|
|
77
77
|
| `slide generate [topic] [--count 5-20] [--theme] [--instructions] [--text-length concise\|detailed]` | `POST …/slides/generate` | per page |
|
|
78
78
|
| `test generate [topic] [--items] [--item-types select,blank,…] [--level] [--total-score]` | `POST …/tests/generate` | 3 |
|
|
79
|
-
| `module generate [topic] [--type markdown\|ai-tutor\|flashcard\|…] [--reference]` | `POST …/modules/generate` |
|
|
79
|
+
| `module generate [topic] [--type markdown\|ai-tutor\|flashcard\|…] [--reference]` | `POST …/modules/generate` | 6 |
|
|
80
80
|
|
|
81
81
|
`generate` (alias `create`) answers `202` with a run. Add `--wait [--timeout <seconds>]` to poll the run and print `{ run, resource }` with the resource's `editorUrl` and `publicUrl`. Every generate accepts `--idempotency-key`.
|
|
82
82
|
|
|
@@ -88,6 +88,23 @@ Each of `course`, `slide`, `test`, `module`, `video`, `game` and `simulation` al
|
|
|
88
88
|
| `get <id>` | `GET …/{resource}/{id}` |
|
|
89
89
|
| `open <id> [--editor]` | prints `editorUrl` and `publicUrl`; opens one in a browser on a TTY |
|
|
90
90
|
| `delete <id> --yes` | `DELETE …/{resource}/{id}` (`--yes` required without a TTY) |
|
|
91
|
+
| `share <id> [--listed]` | `PATCH …/{resource}/{id}`: makes it open by link and prints `publicUrl` |
|
|
92
|
+
| `visibility <id> <value>` | `PATCH …/{resource}/{id}` with that visibility |
|
|
93
|
+
|
|
94
|
+
`share` sets the least open value that still opens by link, and `visibility` takes the values below (case does not matter). The PATCH answer carries the new `publicUrl`; JSON mode prints the whole answer.
|
|
95
|
+
|
|
96
|
+
| Resource | `share` sets | `visibility` values |
|
|
97
|
+
| --- | --- | --- |
|
|
98
|
+
| `video`, `test` | `UNLISTED` (opens by link, kept out of lists and search); `--listed` sets `PUBLIC` | `PUBLIC`, `UNLISTED`, `PRIVATE` |
|
|
99
|
+
| `slide`, `game`, `simulation` | `PUBLIC` | `PUBLIC`, `PRIVATE` |
|
|
100
|
+
| `course` | `PUBLIC` | `PUBLIC`, `PRIVATE`, `ORGANIZATION`, `CLASSROOM`, `COURSE` |
|
|
101
|
+
| `module` | `isPublic: true` | `PUBLIC`, `PRIVATE` (written as `isPublic`) |
|
|
102
|
+
|
|
103
|
+
`publicUrl` can stay null after `share`: a video's watch page opens once it is rendered, a game or simulation's play page once it is built, a course page once the course is published, and the sandbox classroom of `tf_content_test_` keys has no public pages. A test's public page shows its cover; answering needs a learner sign-in. New tests start `PUBLIC`.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
tutorflow --json video share <videoId> | jq -r .publicUrl
|
|
107
|
+
```
|
|
91
108
|
|
|
92
109
|
`test results <testId>` lists learners' results (`GET …/tests/{id}/results`).
|
|
93
110
|
|
|
@@ -108,7 +125,7 @@ The Content API builds videos from scenes you script; it does not write the scri
|
|
|
108
125
|
|
|
109
126
|
| Command | Route |
|
|
110
127
|
| --- | --- |
|
|
111
|
-
| `video create --title [--description] [--visibility] [--scene "<script>"]…` | `POST …/videos`, then one scene per `--scene` in order |
|
|
128
|
+
| `video create --title [--description] [--visibility PUBLIC\|UNLISTED\|PRIVATE] [--scene "<script>"]…` | `POST …/videos`, then one scene per `--scene` in order |
|
|
112
129
|
| `video scene add <videoId> [--script] [--display-text] [--duration] [--after <sceneId>]` | `POST …/videos/{id}/scenes`, then `PATCH` the new scene |
|
|
113
130
|
| `video scene update <videoId> <sceneId> [--script] [--display-text] [--duration]` | `PATCH …/scenes/{sceneId}` |
|
|
114
131
|
| `video scene delete <videoId> <sceneId> --yes` | `DELETE …/scenes/{sceneId}` |
|
|
@@ -181,6 +198,8 @@ run=$(tutorflow course generate "Fractions for 5th grade" --lessons 2)
|
|
|
181
198
|
tutorflow run wait "$(echo "$run" | jq -r .runId)" | jq -r .resource.publicUrl
|
|
182
199
|
```
|
|
183
200
|
|
|
201
|
+
To hand the work to a person, make it open by link and send them `publicUrl`: `tutorflow course share <courseId> | jq -r .publicUrl`.
|
|
202
|
+
|
|
184
203
|
- **Output:** with `--json` or `TUTORFLOW_JSON=1`, success is one JSON document on stdout and errors are JSON on stderr. Progress lines (text mode only) go to stderr.
|
|
185
204
|
- **No prompts without a TTY:** a missing required input exits 2 with `ENOINTERACTIVE` and names the flag to pass. Destructive commands need `--yes`.
|
|
186
205
|
- **Retries:** create and generate commands accept `--idempotency-key`.
|
|
@@ -265,6 +284,7 @@ src/
|
|
|
265
284
|
├── content/
|
|
266
285
|
│ ├── context.ts # tf_content_ key check and classroom resolution
|
|
267
286
|
│ ├── resource.ts # shared list/get/open/delete/generate subcommands
|
|
287
|
+
│ ├── sharing.ts # shared share/visibility subcommands
|
|
268
288
|
│ └── runs.ts # waiting on runs, game/simulation builds and renders
|
|
269
289
|
├── commands/ # one file per top-level command
|
|
270
290
|
├── utils/ # runtime (JSON mode, CliError), output, args, keys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course.d.ts","sourceRoot":"","sources":["../../src/commands/course.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"course.d.ts","sourceRoot":"","sources":["../../src/commands/course.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,aAAa,IAAI,OAAO,CA2BvC"}
|
package/dist/commands/course.js
CHANGED
|
@@ -4,12 +4,13 @@ exports.courseCommand = courseCommand;
|
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const args_1 = require("../utils/args");
|
|
6
6
|
const resource_1 = require("../content/resource");
|
|
7
|
+
const sharing_1 = require("../content/sharing");
|
|
7
8
|
const COURSES = { path: 'courses', noun: 'course' };
|
|
8
9
|
function courseCommand() {
|
|
9
10
|
const course = new commander_1.Command('course').description('Generate and manage classroom courses');
|
|
10
11
|
(0, resource_1.addGenerateCommand)(course, {
|
|
11
12
|
...COURSES,
|
|
12
|
-
description: 'Generate a course with every lesson (3 credits for the outline +
|
|
13
|
+
description: 'Generate a course with every lesson (3 credits for the outline + 6 per lesson)',
|
|
13
14
|
promptLabel: 'Describe the course',
|
|
14
15
|
example: 'tutorflow course generate "Beginner Python" --lessons 5 --wait',
|
|
15
16
|
configure: (cmd) => cmd
|
|
@@ -28,6 +29,7 @@ function courseCommand() {
|
|
|
28
29
|
}),
|
|
29
30
|
});
|
|
30
31
|
(0, resource_1.addCrudCommands)(course, COURSES);
|
|
32
|
+
(0, sharing_1.addShareCommands)(course, COURSES, sharing_1.COURSE_SHARING);
|
|
31
33
|
return course;
|
|
32
34
|
}
|
|
33
35
|
//# sourceMappingURL=course.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course.js","sourceRoot":"","sources":["../../src/commands/course.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"course.js","sourceRoot":"","sources":["../../src/commands/course.ts"],"names":[],"mappings":";;AAeA,sCA2BC;AA1CD,yCAAoC;AACpC,wCAAiD;AACjD,kDAA6F;AAC7F,gDAAsE;AAUtE,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAElE,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAE1F,IAAA,6BAAkB,EAAwB,MAAM,EAAE;QAChD,GAAG,OAAO;QACV,WAAW,EAAE,gFAAgF;QAC7F,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,gEAAgE;QACzE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,GAAG;aACA,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAAC;aACrD,MAAM,CAAC,uBAAuB,EAAE,eAAe,EAAE,IAAI,CAAC;aACtD,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;aACzD,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;aAClE,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;QACzD,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM;YACN,WAAW,EAAE,IAAA,uBAAgB,EAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;YAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;KACH,CAAC,CAAC;IACH,IAAA,0BAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAA,0BAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,wBAAc,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAa7B,UAAU,eAAgB,SAAQ,YAAY;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAmEjE;AAwCD,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}
|
|
@@ -9,6 +9,7 @@ const runtime_1 = require("../utils/runtime");
|
|
|
9
9
|
const args_1 = require("../utils/args");
|
|
10
10
|
const context_1 = require("../content/context");
|
|
11
11
|
const resource_1 = require("../content/resource");
|
|
12
|
+
const sharing_1 = require("../content/sharing");
|
|
12
13
|
const runs_1 = require("../content/runs");
|
|
13
14
|
/**
|
|
14
15
|
* Games and simulations share one lifecycle: create → brief (plan) → build →
|
|
@@ -57,6 +58,10 @@ function interactiveCommand(spec) {
|
|
|
57
58
|
(0, output_1.printResult)(await ctx.client.request('GET', (0, resource_1.resourcePath)(ctx, spec, id, '/run')));
|
|
58
59
|
}));
|
|
59
60
|
(0, resource_1.addCrudCommands)(root, spec);
|
|
61
|
+
(0, sharing_1.addShareCommands)(root, spec, {
|
|
62
|
+
...sharing_1.PUBLIC_PRIVATE,
|
|
63
|
+
publicUrlNote: `The play page opens once the ${spec.noun} is built.`,
|
|
64
|
+
});
|
|
60
65
|
return root;
|
|
61
66
|
}
|
|
62
67
|
function addStep(root, spec, step) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/commands/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/commands/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,aAAa,IAAI,OAAO,CA0BvC"}
|
package/dist/commands/module.js
CHANGED
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.moduleCommand = moduleCommand;
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const resource_1 = require("../content/resource");
|
|
6
|
+
const sharing_1 = require("../content/sharing");
|
|
6
7
|
const MODULES = { path: 'modules', noun: 'interactive module' };
|
|
7
8
|
function moduleCommand() {
|
|
8
9
|
const module = new commander_1.Command('module').description('Generate and manage interactive lesson modules');
|
|
9
10
|
(0, resource_1.addGenerateCommand)(module, {
|
|
10
11
|
...MODULES,
|
|
11
|
-
description: 'Generate an interactive lesson module (
|
|
12
|
+
description: 'Generate an interactive lesson module (6 credits)',
|
|
12
13
|
promptLabel: 'Describe the module',
|
|
13
14
|
example: 'tutorflow module generate "Fractions for 5th grade" --wait',
|
|
14
15
|
configure: (cmd) => cmd
|
|
@@ -23,6 +24,7 @@ function moduleCommand() {
|
|
|
23
24
|
}),
|
|
24
25
|
});
|
|
25
26
|
(0, resource_1.addCrudCommands)(module, MODULES);
|
|
27
|
+
(0, sharing_1.addShareCommands)(module, MODULES, sharing_1.MODULE_SHARING);
|
|
26
28
|
return module;
|
|
27
29
|
}
|
|
28
30
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/commands/module.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/commands/module.ts"],"names":[],"mappings":";;AAYA,sCA0BC;AAtCD,yCAAoC;AACpC,kDAA6F;AAC7F,gDAAsE;AAQtE,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;AAE9E,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC;IAEnG,IAAA,6BAAkB,EAAwB,MAAM,EAAE;QAChD,GAAG,OAAO;QACV,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,4DAA4D;QACrE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,GAAG;aACA,MAAM,CACL,eAAe,EACf,qGAAqG,CACtG;aACA,MAAM,CAAC,uBAAuB,EAAE,eAAe,EAAE,IAAI,CAAC;aACtD,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,CAAC;QACjF,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,SAAS;SACjC,CAAC;KACH,CAAC,CAAC;IACH,IAAA,0BAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAA,0BAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,wBAAc,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slide.d.ts","sourceRoot":"","sources":["../../src/commands/slide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"slide.d.ts","sourceRoot":"","sources":["../../src/commands/slide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,YAAY,IAAI,OAAO,CA2BtC"}
|
package/dist/commands/slide.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.slideCommand = slideCommand;
|
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const args_1 = require("../utils/args");
|
|
6
6
|
const resource_1 = require("../content/resource");
|
|
7
|
+
const sharing_1 = require("../content/sharing");
|
|
7
8
|
const SLIDES = { path: 'slides', noun: 'slide deck' };
|
|
8
9
|
function slideCommand() {
|
|
9
10
|
const slide = new commander_1.Command('slide').description('Generate and manage classroom slide decks');
|
|
@@ -28,6 +29,7 @@ function slideCommand() {
|
|
|
28
29
|
}),
|
|
29
30
|
});
|
|
30
31
|
(0, resource_1.addCrudCommands)(slide, SLIDES);
|
|
32
|
+
(0, sharing_1.addShareCommands)(slide, SLIDES, sharing_1.PUBLIC_PRIVATE);
|
|
31
33
|
return slide;
|
|
32
34
|
}
|
|
33
35
|
//# sourceMappingURL=slide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slide.js","sourceRoot":"","sources":["../../src/commands/slide.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"slide.js","sourceRoot":"","sources":["../../src/commands/slide.ts"],"names":[],"mappings":";;AAeA,oCA2BC;AA1CD,yCAAoC;AACpC,wCAAiD;AACjD,kDAA6F;AAC7F,gDAAsE;AAUtE,MAAM,MAAM,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAEpE,SAAgB,YAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE5F,IAAA,6BAAkB,EAAuB,KAAK,EAAE;QAC9C,GAAG,MAAM;QACT,WAAW,EAAE,iFAAiF;QAC9F,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,4DAA4D;QACrE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,GAAG;aACA,MAAM,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;aAClD,MAAM,CAAC,uBAAuB,EAAE,eAAe,EAAE,IAAI,CAAC;aACtD,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;aACjD,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;aACvE,MAAM,CAAC,wBAAwB,EAAE,mCAAmC,CAAC;QAC1E,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK;YACL,UAAU,EAAE,IAAA,uBAAgB,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;YACtD,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;KACH,CAAC,CAAC;IACH,IAAA,0BAAe,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAA,0BAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,wBAAc,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,WAAW,IAAI,OAAO,CAiDrC"}
|
package/dist/commands/test.js
CHANGED
|
@@ -7,6 +7,7 @@ const runtime_1 = require("../utils/runtime");
|
|
|
7
7
|
const args_1 = require("../utils/args");
|
|
8
8
|
const context_1 = require("../content/context");
|
|
9
9
|
const resource_1 = require("../content/resource");
|
|
10
|
+
const sharing_1 = require("../content/sharing");
|
|
10
11
|
const TESTS = { path: 'tests', noun: 'test' };
|
|
11
12
|
function testCommand() {
|
|
12
13
|
const test = new commander_1.Command('test').description('Generate and manage classroom tests');
|
|
@@ -33,6 +34,7 @@ function testCommand() {
|
|
|
33
34
|
}),
|
|
34
35
|
});
|
|
35
36
|
(0, resource_1.addCrudCommands)(test, TESTS);
|
|
37
|
+
(0, sharing_1.addShareCommands)(test, TESTS, sharing_1.WITH_UNLISTED);
|
|
36
38
|
test
|
|
37
39
|
.command('results <testId>')
|
|
38
40
|
.description("List learners' results of a test")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":";;AAwBA,kCAiDC;AAzED,yCAAoC;AACpC,4CAA8C;AAC9C,8CAA2C;AAC3C,wCAA4D;AAC5D,gDAA2D;AAC3D,kDAK6B;AAC7B,gDAAqE;AAWrE,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE5D,SAAgB,WAAW;IACzB,MAAM,IAAI,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEpF,IAAA,6BAAkB,EAAsB,IAAI,EAAE;QAC5C,GAAG,KAAK;QACR,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,4DAA4D;QACrE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,GAAG;aACA,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;aACjD,MAAM,CACL,qBAAqB,EACrB,2FAA2F,CAC5F;aACA,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;aAC7C,MAAM,CAAC,uBAAuB,EAAE,eAAe,EAAE,IAAI,CAAC;aACtD,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;aACvE,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;QAChE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK;YACL,SAAS,EAAE,IAAA,uBAAgB,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;YACrD,SAAS,EAAE,IAAA,gBAAS,EAAC,OAAO,CAAC,SAAS,CAAC;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,UAAU,EAAE,IAAA,uBAAgB,EAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;YACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;KACH,CAAC,CAAC;IACH,IAAA,0BAAe,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,IAAA,0BAAgB,EAAC,IAAI,EAAE,KAAK,EAAE,uBAAa,CAAC,CAAC;IAE7C,IAAI;SACD,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,IAAI,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CACL,IAAA,iBAAO,EAAC,KAAK,EAAE,MAAc,EAAE,OAA2C,EAAE,EAAE;QAC5E,MAAM,KAAK,GAAG,IAAA,uBAAgB,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAqB,GAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAA,oBAAW,EACT,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAY,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CACzF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDpC,wBAAgB,YAAY,IAAI,OAAO,CA6GtC"}
|
package/dist/commands/video.js
CHANGED
|
@@ -7,9 +7,10 @@ const runtime_1 = require("../utils/runtime");
|
|
|
7
7
|
const args_1 = require("../utils/args");
|
|
8
8
|
const context_1 = require("../content/context");
|
|
9
9
|
const resource_1 = require("../content/resource");
|
|
10
|
+
const sharing_1 = require("../content/sharing");
|
|
10
11
|
const runs_1 = require("../content/runs");
|
|
11
12
|
const VIDEOS = { path: 'videos', noun: 'video' };
|
|
12
|
-
const VISIBILITIES = ['PUBLIC', 'PRIVATE'];
|
|
13
|
+
const VISIBILITIES = ['PUBLIC', 'UNLISTED', 'PRIVATE'];
|
|
13
14
|
const videoPath = (ctx, id, suffix = '') => (0, resource_1.resourcePath)(ctx, VIDEOS, id, suffix);
|
|
14
15
|
function videoCommand() {
|
|
15
16
|
const video = new commander_1.Command('video').description('Create, script, narrate and render classroom videos');
|
|
@@ -18,7 +19,7 @@ function videoCommand() {
|
|
|
18
19
|
.description('Create a video; each --scene adds a scene with that narration script')
|
|
19
20
|
.requiredOption('--title <title>', 'Video title')
|
|
20
21
|
.option('--description <text>', 'Video description')
|
|
21
|
-
.option('--visibility <visibility>', 'PUBLIC or PRIVATE')
|
|
22
|
+
.option('--visibility <visibility>', 'PUBLIC, UNLISTED (opens by link, not listed) or PRIVATE')
|
|
22
23
|
.option('--scene <script>', 'Add a scene with this script (repeatable, in order)', args_1.collect, [])
|
|
23
24
|
.option('--idempotency-key <key>', 'Idempotency key for safe retries of the create call')
|
|
24
25
|
.action((0, runtime_1.command)(async (options) => {
|
|
@@ -42,6 +43,10 @@ function videoCommand() {
|
|
|
42
43
|
(0, output_1.printResult)(await ctx.client.request('GET', videoPath(ctx, created.id)));
|
|
43
44
|
}));
|
|
44
45
|
(0, resource_1.addCrudCommands)(video, VIDEOS);
|
|
46
|
+
(0, sharing_1.addShareCommands)(video, VIDEOS, {
|
|
47
|
+
...sharing_1.WITH_UNLISTED,
|
|
48
|
+
publicUrlNote: 'The watch page opens once the video is rendered.',
|
|
49
|
+
});
|
|
45
50
|
video.addCommand(sceneCommand());
|
|
46
51
|
video
|
|
47
52
|
.command('narrate <videoId>')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { type ResourceSpec } from './resource';
|
|
3
|
+
/**
|
|
4
|
+
* `<resource> share <id>` and `<resource> visibility <id> <value>`: a PATCH of
|
|
5
|
+
* the resource's visibility. The PATCH answer carries the new publicUrl.
|
|
6
|
+
*/
|
|
7
|
+
export interface Sharing {
|
|
8
|
+
/** Values `visibility` accepts, as the Content API spells them. */
|
|
9
|
+
values: readonly string[];
|
|
10
|
+
/** What `share` sets: the least open value that still opens by link. */
|
|
11
|
+
shareValue: string;
|
|
12
|
+
/** What `share --listed` sets, for resources that can open by link unlisted. */
|
|
13
|
+
listedValue?: string;
|
|
14
|
+
/** Modules have `isPublic` instead of `visibility`; PUBLIC/PRIVATE map onto it. */
|
|
15
|
+
booleanField?: 'isPublic';
|
|
16
|
+
/** Why publicUrl can still be null after sharing, beyond the sandbox classroom. */
|
|
17
|
+
publicUrlNote?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const PUBLIC_PRIVATE: Sharing;
|
|
20
|
+
export declare const WITH_UNLISTED: Sharing;
|
|
21
|
+
export declare const COURSE_SHARING: Sharing;
|
|
22
|
+
export declare const MODULE_SHARING: Sharing;
|
|
23
|
+
export declare function addShareCommands(parent: Command, spec: ResourceSpec, sharing: Sharing): void;
|
|
24
|
+
//# sourceMappingURL=sharing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharing.d.ts","sourceRoot":"","sources":["../../src/content/sharing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnF;;;GAGG;AAEH,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,OAG5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAI3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,OAI5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,OAG5B,CAAC;AAIF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B5F"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MODULE_SHARING = exports.COURSE_SHARING = exports.WITH_UNLISTED = exports.PUBLIC_PRIVATE = void 0;
|
|
4
|
+
exports.addShareCommands = addShareCommands;
|
|
5
|
+
const output_1 = require("../utils/output");
|
|
6
|
+
const runtime_1 = require("../utils/runtime");
|
|
7
|
+
const keys_1 = require("../utils/keys");
|
|
8
|
+
const context_1 = require("./context");
|
|
9
|
+
const resource_1 = require("./resource");
|
|
10
|
+
exports.PUBLIC_PRIVATE = {
|
|
11
|
+
values: ['PUBLIC', 'PRIVATE'],
|
|
12
|
+
shareValue: 'PUBLIC',
|
|
13
|
+
};
|
|
14
|
+
exports.WITH_UNLISTED = {
|
|
15
|
+
values: ['PUBLIC', 'UNLISTED', 'PRIVATE'],
|
|
16
|
+
shareValue: 'UNLISTED',
|
|
17
|
+
listedValue: 'PUBLIC',
|
|
18
|
+
};
|
|
19
|
+
exports.COURSE_SHARING = {
|
|
20
|
+
values: ['PUBLIC', 'PRIVATE', 'ORGANIZATION', 'CLASSROOM', 'COURSE'],
|
|
21
|
+
shareValue: 'PUBLIC',
|
|
22
|
+
publicUrlNote: 'A course page opens once the course is published.',
|
|
23
|
+
};
|
|
24
|
+
exports.MODULE_SHARING = {
|
|
25
|
+
...exports.PUBLIC_PRIVATE,
|
|
26
|
+
booleanField: 'isPublic',
|
|
27
|
+
};
|
|
28
|
+
const SANDBOX_NOTE = 'The sandbox classroom of tf_content_test_ keys has no public pages.';
|
|
29
|
+
function addShareCommands(parent, spec, sharing) {
|
|
30
|
+
const share = parent
|
|
31
|
+
.command('share <id>')
|
|
32
|
+
.description(shareDescription(spec, sharing));
|
|
33
|
+
if (sharing.listedValue) {
|
|
34
|
+
share.option('--listed', `Set ${sharing.listedValue} so it is also listed and searchable`);
|
|
35
|
+
}
|
|
36
|
+
share.action((0, runtime_1.command)(async (id, options) => {
|
|
37
|
+
const value = options.listed && sharing.listedValue ? sharing.listedValue : sharing.shareValue;
|
|
38
|
+
await setVisibility(spec, sharing, id, value);
|
|
39
|
+
}));
|
|
40
|
+
parent
|
|
41
|
+
.command('visibility <id> <value>')
|
|
42
|
+
.description(`Set the ${spec.noun}'s visibility: ${sharing.values.join(', ')}${sharing.booleanField ? ` (sets ${sharing.booleanField})` : ''}`)
|
|
43
|
+
.action((0, runtime_1.command)(async (id, value) => {
|
|
44
|
+
await setVisibility(spec, sharing, id, parseVisibility(value, sharing));
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
function parseVisibility(value, sharing) {
|
|
48
|
+
const choice = value.toUpperCase();
|
|
49
|
+
if (!sharing.values.includes(choice)) {
|
|
50
|
+
throw new runtime_1.CliError(`visibility must be one of: ${sharing.values.join(', ')} (got "${value}")`, {
|
|
51
|
+
code: 'EINVAL',
|
|
52
|
+
exitCode: 2,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return choice;
|
|
56
|
+
}
|
|
57
|
+
function shareDescription(spec, sharing) {
|
|
58
|
+
const listed = sharing.listedValue
|
|
59
|
+
? ` (${sharing.shareValue}: opens by link but stays out of lists; --listed for ${sharing.listedValue})`
|
|
60
|
+
: ` (${sharing.shareValue})`;
|
|
61
|
+
return `Make the ${spec.noun} open by link and print its publicUrl${listed}`;
|
|
62
|
+
}
|
|
63
|
+
async function setVisibility(spec, sharing, id, value) {
|
|
64
|
+
const body = sharing.booleanField
|
|
65
|
+
? { [sharing.booleanField]: value === 'PUBLIC' }
|
|
66
|
+
: { visibility: value };
|
|
67
|
+
const ctx = await (0, context_1.resolveContentContext)();
|
|
68
|
+
const updated = await ctx.client.request('PATCH', (0, resource_1.resourcePath)(ctx, spec, id), body);
|
|
69
|
+
if ((0, runtime_1.isJsonMode)()) {
|
|
70
|
+
(0, output_1.printResult)(updated);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const field = sharing.booleanField ?? 'visibility';
|
|
74
|
+
(0, output_1.printResult)({
|
|
75
|
+
id: updated.id ?? id,
|
|
76
|
+
[field]: updated[field] ?? body[field],
|
|
77
|
+
publicUrl: updated.publicUrl ?? null,
|
|
78
|
+
editorUrl: updated.editorUrl ?? null,
|
|
79
|
+
});
|
|
80
|
+
const opensByLink = value === sharing.shareValue || value === sharing.listedValue;
|
|
81
|
+
if (!updated.publicUrl && opensByLink) {
|
|
82
|
+
const isSandbox = (0, keys_1.getApiKeyKind)(ctx.client.apiKey) === 'content_test';
|
|
83
|
+
(0, output_1.printStatus)(['No publicUrl yet.', sharing.publicUrlNote, isSandbox ? SANDBOX_NOTE : undefined]
|
|
84
|
+
.filter(Boolean)
|
|
85
|
+
.join(' '));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=sharing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../../src/content/sharing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tutorflow/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "TutorFlow CLI - agent-friendly command line for the TutorFlow Content API: generate courses, slides, tests, modules, videos, games and simulations, grade learner answers, and manage learners and webhooks. Supports --json output, env-var auth, --wait polling, and non-interactive use.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tutorflow",
|