primitive-admin 1.1.0-alpha.4 → 1.1.0-alpha.40
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 +325 -31
- package/assets/skill/skills/primitive-platform/SKILL.md +281 -0
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +266 -16
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +123 -18
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/analytics.js +464 -55
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps.d.ts +2 -0
- package/dist/src/commands/apps.js +55 -13
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/auth.js +177 -7
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/blob-buckets.d.ts +2 -0
- package/dist/src/commands/blob-buckets.js +422 -0
- package/dist/src/commands/blob-buckets.js.map +1 -0
- package/dist/src/commands/catalog.d.ts +2 -0
- package/dist/src/commands/catalog.js +34 -35
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collection-type-configs.d.ts +2 -0
- package/dist/src/commands/collection-type-configs.js +178 -0
- package/dist/src/commands/collection-type-configs.js.map +1 -0
- package/dist/src/commands/collections.d.ts +2 -0
- package/dist/src/commands/collections.js +515 -0
- package/dist/src/commands/collections.js.map +1 -0
- package/dist/src/commands/comparisons.d.ts +2 -0
- package/dist/src/commands/comparisons.js +6 -6
- package/dist/src/commands/comparisons.js.map +1 -1
- package/dist/src/commands/cron-triggers.d.ts +2 -0
- package/dist/src/commands/cron-triggers.js +357 -0
- package/dist/src/commands/cron-triggers.js.map +1 -0
- package/dist/src/commands/database-types.d.ts +2 -0
- package/dist/src/commands/database-types.js +471 -0
- package/dist/src/commands/database-types.js.map +1 -0
- package/dist/src/commands/databases.d.ts +2 -0
- package/dist/src/commands/databases.js +1462 -83
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +2 -0
- package/dist/src/commands/documents.js +518 -11
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.d.ts +2 -0
- package/dist/src/commands/email-templates.js +281 -0
- package/dist/src/commands/email-templates.js.map +1 -0
- package/dist/src/commands/env.d.ts +12 -0
- package/dist/src/commands/env.js +260 -0
- package/dist/src/commands/env.js.map +1 -0
- package/dist/src/commands/group-type-configs.d.ts +2 -0
- package/dist/src/commands/group-type-configs.js +181 -0
- package/dist/src/commands/group-type-configs.js.map +1 -0
- package/dist/src/commands/groups.d.ts +2 -0
- package/dist/src/commands/groups.js +45 -43
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +159 -0
- package/dist/src/commands/guides.js +449 -35
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/init.d.ts +17 -0
- package/dist/src/commands/init.js +811 -201
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.d.ts +2 -0
- package/dist/src/commands/integrations.js +533 -46
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.d.ts +2 -0
- package/dist/src/commands/llm.js +4 -2
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/prompts.d.ts +2 -0
- package/dist/src/commands/prompts.js +50 -52
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +3 -0
- package/dist/src/commands/rule-sets.js +388 -0
- package/dist/src/commands/rule-sets.js.map +1 -0
- package/dist/src/commands/scripts.d.ts +2 -0
- package/dist/src/commands/scripts.js +667 -0
- package/dist/src/commands/scripts.js.map +1 -0
- package/dist/src/commands/secrets.d.ts +2 -0
- package/dist/src/commands/secrets.js +108 -0
- package/dist/src/commands/secrets.js.map +1 -0
- package/dist/src/commands/skill.d.ts +2 -0
- package/dist/src/commands/skill.js +29 -0
- package/dist/src/commands/skill.js.map +1 -0
- package/dist/src/commands/sync.d.ts +174 -0
- package/dist/src/commands/sync.js +4392 -235
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +122 -19
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +440 -22
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/waitlist.d.ts +2 -0
- package/dist/src/commands/waitlist.js +10 -10
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +2 -0
- package/dist/src/commands/webhooks.js +391 -0
- package/dist/src/commands/webhooks.js.map +1 -0
- package/dist/src/commands/workflows.d.ts +49 -0
- package/dist/src/commands/workflows.js +1009 -123
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +1272 -0
- package/dist/src/lib/api-client.js +1115 -83
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/auth-flow.d.ts +8 -0
- package/dist/src/lib/block-layout.d.ts +160 -0
- package/dist/src/lib/block-layout.js +451 -0
- package/dist/src/lib/block-layout.js.map +1 -0
- package/dist/src/lib/cli-manifest.d.ts +60 -0
- package/dist/src/lib/cli-manifest.js +70 -0
- package/dist/src/lib/cli-manifest.js.map +1 -0
- package/dist/src/lib/config.d.ts +53 -0
- package/dist/src/lib/config.js +92 -53
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/confirm-prompt.d.ts +83 -0
- package/dist/src/lib/confirm-prompt.js +110 -0
- package/dist/src/lib/confirm-prompt.js.map +1 -0
- package/dist/src/lib/constants.d.ts +2 -0
- package/dist/src/lib/constants.js +3 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/crash-handlers.d.ts +20 -0
- package/dist/src/lib/crash-handlers.js +49 -0
- package/dist/src/lib/crash-handlers.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +79 -0
- package/dist/src/lib/credentials-store.js +307 -0
- package/dist/src/lib/credentials-store.js.map +1 -0
- package/dist/src/lib/csv.d.ts +48 -0
- package/dist/src/lib/csv.js +177 -0
- package/dist/src/lib/csv.js.map +1 -0
- package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +111 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +371 -0
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/db-codegen/dbNaming.d.ts +45 -0
- package/dist/src/lib/db-codegen/dbNaming.js +104 -0
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +97 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +159 -0
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +78 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js +112 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +62 -0
- package/dist/src/lib/env-resolver.js +121 -0
- package/dist/src/lib/env-resolver.js.map +1 -0
- package/dist/src/lib/fetch.d.ts +5 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +213 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +59 -0
- package/dist/src/lib/init-config.js +113 -0
- package/dist/src/lib/init-config.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +49 -0
- package/dist/src/lib/migration-nag.js +163 -0
- package/dist/src/lib/migration-nag.js.map +1 -0
- package/dist/src/lib/output.d.ts +86 -0
- package/dist/src/lib/output.js +150 -8
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +33 -0
- package/dist/src/lib/paginate.js +42 -0
- package/dist/src/lib/paginate.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +97 -0
- package/dist/src/lib/project-config.js +209 -0
- package/dist/src/lib/project-config.js.map +1 -0
- package/dist/src/lib/query-operators.d.ts +43 -0
- package/dist/src/lib/query-operators.js +80 -0
- package/dist/src/lib/query-operators.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +65 -0
- package/dist/src/lib/refresh-admin-credentials.js +103 -0
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
- package/dist/src/lib/resolve-platform.d.ts +45 -0
- package/dist/src/lib/resolve-platform.js +43 -0
- package/dist/src/lib/resolve-platform.js.map +1 -0
- package/dist/src/lib/skill-installer.d.ts +23 -0
- package/dist/src/lib/skill-installer.js +135 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/snapshots.d.ts +99 -0
- package/dist/src/lib/snapshots.js +357 -0
- package/dist/src/lib/snapshots.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +72 -0
- package/dist/src/lib/sync-paths.js +130 -0
- package/dist/src/lib/sync-paths.js.map +1 -0
- package/dist/src/lib/template.d.ts +97 -0
- package/dist/src/lib/template.js +336 -62
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/token-inject.d.ts +56 -0
- package/dist/src/lib/token-inject.js +204 -0
- package/dist/src/lib/token-inject.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +152 -0
- package/dist/src/lib/toml-database-config.js +600 -0
- package/dist/src/lib/toml-database-config.js.map +1 -0
- package/dist/src/lib/toml-metadata-config.d.ts +108 -0
- package/dist/src/lib/toml-metadata-config.js +371 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -0
- package/dist/src/lib/toml-params-validator.d.ts +129 -0
- package/dist/src/lib/toml-params-validator.js +298 -0
- package/dist/src/lib/toml-params-validator.js.map +1 -0
- package/dist/src/lib/version-check.d.ts +10 -0
- package/dist/src/lib/version-check.js +172 -0
- package/dist/src/lib/version-check.js.map +1 -0
- package/dist/src/lib/workflow-apply.d.ts +66 -0
- package/dist/src/lib/workflow-apply.js +117 -0
- package/dist/src/lib/workflow-apply.js.map +1 -0
- package/dist/src/lib/workflow-fragments.d.ts +41 -0
- package/dist/src/lib/workflow-fragments.js +121 -0
- package/dist/src/lib/workflow-fragments.js.map +1 -0
- package/dist/src/lib/workflow-toml-validator.d.ts +95 -0
- package/dist/src/lib/workflow-toml-validator.js +323 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -0
- package/dist/src/types/index.d.ts +520 -0
- package/dist/src/validators.d.ts +64 -0
- package/dist/src/validators.js +63 -0
- package/dist/src/validators.js.map +1 -0
- package/package.json +18 -4
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { ApiClient } from "../lib/api-client.js";
|
|
2
|
+
import { resolveAppId } from "../lib/config.js";
|
|
3
|
+
import { success, error, info, keyValue, result as printResult, formatTable, formatDate, json, } from "../lib/output.js";
|
|
4
|
+
import { confirmPrompt } from "../lib/confirm-prompt.js";
|
|
5
|
+
export function registerGroupTypeConfigsCommands(program) {
|
|
6
|
+
const configs = program
|
|
7
|
+
.command("group-type-configs")
|
|
8
|
+
.description("Manage group type configurations (rule sets and auto-add behavior)")
|
|
9
|
+
.addHelpText("after", `
|
|
10
|
+
Examples:
|
|
11
|
+
$ primitive group-type-configs list
|
|
12
|
+
$ primitive group-type-configs create --group-type team --rule-set-id <id>
|
|
13
|
+
$ primitive group-type-configs get team
|
|
14
|
+
$ primitive group-type-configs update team --auto-add-creator false
|
|
15
|
+
$ primitive group-type-configs delete team
|
|
16
|
+
`);
|
|
17
|
+
// List
|
|
18
|
+
configs
|
|
19
|
+
.command("list")
|
|
20
|
+
.description("List group type configs in an app")
|
|
21
|
+
.argument("[app-id]", "App ID (uses current app if not specified)")
|
|
22
|
+
.option("--app <app-id>", "App ID")
|
|
23
|
+
.option("--json", "Output as JSON")
|
|
24
|
+
.action(async (appId, options) => {
|
|
25
|
+
const resolvedAppId = resolveAppId(appId, options);
|
|
26
|
+
const client = new ApiClient();
|
|
27
|
+
try {
|
|
28
|
+
const result = await client.listGroupTypeConfigs(resolvedAppId);
|
|
29
|
+
const list = Array.isArray(result) ? result : [];
|
|
30
|
+
if (options.json) {
|
|
31
|
+
json(list);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (list.length === 0) {
|
|
35
|
+
info("No group type configs found.");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
console.log(formatTable(list, [
|
|
39
|
+
{ header: "GROUP_TYPE", key: "groupType" },
|
|
40
|
+
{ header: "RULE_SET_ID", key: "ruleSetId" },
|
|
41
|
+
{ header: "AUTO_ADD", key: "autoAddCreator" },
|
|
42
|
+
{ header: "CREATED", key: "createdAt", format: formatDate },
|
|
43
|
+
]));
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
error(err.message);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
// Create
|
|
51
|
+
configs
|
|
52
|
+
.command("create")
|
|
53
|
+
.description("Create a group type config")
|
|
54
|
+
.requiredOption("--group-type <type>", "Group type")
|
|
55
|
+
.option("--rule-set-id <id>", "Rule set ID to attach")
|
|
56
|
+
.option("--auto-add-creator <bool>", "Auto-add creator to group (default: true)")
|
|
57
|
+
.option("--app <app-id>", "App ID")
|
|
58
|
+
.option("--json", "Output as JSON")
|
|
59
|
+
.action(async (options) => {
|
|
60
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
61
|
+
const client = new ApiClient();
|
|
62
|
+
try {
|
|
63
|
+
const data = { groupType: options.groupType };
|
|
64
|
+
if (options.ruleSetId)
|
|
65
|
+
data.ruleSetId = options.ruleSetId;
|
|
66
|
+
if (options.autoAddCreator !== undefined) {
|
|
67
|
+
data.autoAddCreator = options.autoAddCreator !== "false";
|
|
68
|
+
}
|
|
69
|
+
const result = await client.createGroupTypeConfig(resolvedAppId, data);
|
|
70
|
+
if (options.json) {
|
|
71
|
+
json(result);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
success("Group type config created.");
|
|
75
|
+
keyValue("Group Type", result.groupType);
|
|
76
|
+
keyValue("Rule Set ID", result.ruleSetId || "(none)");
|
|
77
|
+
keyValue("Auto-Add Creator", String(result.autoAddCreator));
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
error(err.message);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
// Get
|
|
85
|
+
configs
|
|
86
|
+
.command("get")
|
|
87
|
+
.description("Get a group type config")
|
|
88
|
+
.argument("<group-type>", "Group type")
|
|
89
|
+
.option("--app <app-id>", "App ID")
|
|
90
|
+
.option("--json", "Output as JSON")
|
|
91
|
+
.action(async (groupType, options) => {
|
|
92
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
93
|
+
const client = new ApiClient();
|
|
94
|
+
try {
|
|
95
|
+
const result = await client.getGroupTypeConfig(resolvedAppId, groupType);
|
|
96
|
+
if (options.json) {
|
|
97
|
+
json(result);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
printResult("Group Type", result.groupType);
|
|
101
|
+
printResult("Rule Set ID", result.ruleSetId || "(none)");
|
|
102
|
+
printResult("Auto-Add Creator", String(result.autoAddCreator));
|
|
103
|
+
printResult("Created", formatDate(result.createdAt));
|
|
104
|
+
printResult("Modified", formatDate(result.modifiedAt));
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
error(err.message);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
// Update
|
|
112
|
+
configs
|
|
113
|
+
.command("update")
|
|
114
|
+
.description("Update a group type config")
|
|
115
|
+
.argument("<group-type>", "Group type")
|
|
116
|
+
.option("--rule-set-id <id>", "Rule set ID (use 'null' to detach)")
|
|
117
|
+
.option("--auto-add-creator <bool>", "Auto-add creator to group")
|
|
118
|
+
.option("--app <app-id>", "App ID")
|
|
119
|
+
.option("--json", "Output as JSON")
|
|
120
|
+
.action(async (groupType, options) => {
|
|
121
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
122
|
+
const client = new ApiClient();
|
|
123
|
+
const data = {};
|
|
124
|
+
if (options.ruleSetId !== undefined) {
|
|
125
|
+
data.ruleSetId = options.ruleSetId === "null" ? null : options.ruleSetId;
|
|
126
|
+
}
|
|
127
|
+
if (options.autoAddCreator !== undefined) {
|
|
128
|
+
data.autoAddCreator = options.autoAddCreator !== "false";
|
|
129
|
+
}
|
|
130
|
+
if (Object.keys(data).length === 0) {
|
|
131
|
+
error("Nothing to update. Provide --rule-set-id or --auto-add-creator.");
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const result = await client.updateGroupTypeConfig(resolvedAppId, groupType, data);
|
|
136
|
+
if (options.json) {
|
|
137
|
+
json(result);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
success(`Group type config '${groupType}' updated.`);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
error(err.message);
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
// Delete
|
|
148
|
+
configs
|
|
149
|
+
.command("delete")
|
|
150
|
+
.description("Delete a group type config")
|
|
151
|
+
.argument("<group-type>", "Group type")
|
|
152
|
+
.option("--app <app-id>", "App ID")
|
|
153
|
+
.option("-y, --yes", "Skip confirmation prompt")
|
|
154
|
+
.action(async (groupType, options) => {
|
|
155
|
+
const resolvedAppId = resolveAppId(undefined, options);
|
|
156
|
+
if (!options.yes) {
|
|
157
|
+
let confirm;
|
|
158
|
+
try {
|
|
159
|
+
confirm = await confirmPrompt(`Delete group type config '${groupType}'? This cannot be undone.`);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
error(err.message);
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
if (!confirm) {
|
|
166
|
+
info("Cancelled.");
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const client = new ApiClient();
|
|
171
|
+
try {
|
|
172
|
+
await client.deleteGroupTypeConfig(resolvedAppId, groupType);
|
|
173
|
+
success(`Group type config '${groupType}' deleted.`);
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
error(err.message);
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=group-type-configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-type-configs.js","sourceRoot":"","sources":["../../../src/commands/group-type-configs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiClient } from "../lib/api-client.js";
|
|
2
2
|
import { getCurrentAppId } from "../lib/config.js";
|
|
3
|
-
import { success, error, info, keyValue, formatTable, formatId, formatDate, json, } from "../lib/output.js";
|
|
3
|
+
import { success, error, info, keyValue, result as printResult, formatTable, formatId, formatDate, json, } from "../lib/output.js";
|
|
4
|
+
import { confirmPrompt } from "../lib/confirm-prompt.js";
|
|
4
5
|
function resolveAppId(appId, options) {
|
|
5
6
|
const resolved = appId || options.app || getCurrentAppId();
|
|
6
7
|
if (!resolved) {
|
|
@@ -37,7 +38,7 @@ Examples:
|
|
|
37
38
|
if (options.type)
|
|
38
39
|
params.type = options.type;
|
|
39
40
|
const result = await client.listGroups(resolvedAppId, params);
|
|
40
|
-
const list =
|
|
41
|
+
const list = result.items;
|
|
41
42
|
if (options.json) {
|
|
42
43
|
json(list);
|
|
43
44
|
return;
|
|
@@ -112,12 +113,12 @@ Examples:
|
|
|
112
113
|
json(result);
|
|
113
114
|
return;
|
|
114
115
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
printResult("Type", result.groupType);
|
|
117
|
+
printResult("ID", result.groupId);
|
|
118
|
+
printResult("Name", result.name);
|
|
119
|
+
printResult("Description", result.description);
|
|
120
|
+
printResult("Members", result.memberCount);
|
|
121
|
+
printResult("Created", formatDate(result.createdAt));
|
|
121
122
|
}
|
|
122
123
|
catch (err) {
|
|
123
124
|
error(err.message);
|
|
@@ -170,15 +171,14 @@ Examples:
|
|
|
170
171
|
.action(async (groupType, groupId, options) => {
|
|
171
172
|
const resolvedAppId = resolveAppId(undefined, options);
|
|
172
173
|
if (!options.yes) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
{
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
]);
|
|
174
|
+
let confirm;
|
|
175
|
+
try {
|
|
176
|
+
confirm = await confirmPrompt(`Delete group ${groupType}/${groupId}? This will also remove all memberships.`);
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
error(err.message);
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
182
|
if (!confirm) {
|
|
183
183
|
info("Cancelled.");
|
|
184
184
|
return;
|
|
@@ -211,7 +211,7 @@ Examples:
|
|
|
211
211
|
const client = new ApiClient();
|
|
212
212
|
try {
|
|
213
213
|
const result = await client.listGroupMembers(resolvedAppId, groupType, groupId);
|
|
214
|
-
const list =
|
|
214
|
+
const list = result.items || [];
|
|
215
215
|
if (options.json) {
|
|
216
216
|
json(list);
|
|
217
217
|
return;
|
|
@@ -224,7 +224,6 @@ Examples:
|
|
|
224
224
|
{ header: "USER_ID", key: "userId", format: formatId },
|
|
225
225
|
{ header: "EMAIL", key: "userEmail" },
|
|
226
226
|
{ header: "NAME", key: "userName" },
|
|
227
|
-
{ header: "ROLE", key: "role" },
|
|
228
227
|
{ header: "ADDED", key: "addedAt", format: formatDate },
|
|
229
228
|
]));
|
|
230
229
|
}
|
|
@@ -240,7 +239,6 @@ Examples:
|
|
|
240
239
|
.argument("<group-type>", "Group type")
|
|
241
240
|
.argument("<group-id>", "Group ID")
|
|
242
241
|
.argument("<user-id>", "User ID to add")
|
|
243
|
-
.option("--role <role>", "Member role", "member")
|
|
244
242
|
.option("--app <app-id>", "App ID")
|
|
245
243
|
.option("--json", "Output as JSON")
|
|
246
244
|
.action(async (groupType, groupId, userId, options) => {
|
|
@@ -249,7 +247,6 @@ Examples:
|
|
|
249
247
|
try {
|
|
250
248
|
const result = await client.addGroupMember(resolvedAppId, groupType, groupId, {
|
|
251
249
|
userId,
|
|
252
|
-
role: options.role,
|
|
253
250
|
});
|
|
254
251
|
if (options.json) {
|
|
255
252
|
json(result);
|
|
@@ -274,15 +271,14 @@ Examples:
|
|
|
274
271
|
.action(async (groupType, groupId, userId, options) => {
|
|
275
272
|
const resolvedAppId = resolveAppId(undefined, options);
|
|
276
273
|
if (!options.yes) {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
{
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
]);
|
|
274
|
+
let confirm;
|
|
275
|
+
try {
|
|
276
|
+
confirm = await confirmPrompt(`Remove user ${userId} from group ${groupType}/${groupId}?`);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
error(err.message);
|
|
280
|
+
process.exit(1);
|
|
281
|
+
}
|
|
286
282
|
if (!confirm) {
|
|
287
283
|
info("Cancelled.");
|
|
288
284
|
return;
|
|
@@ -298,28 +294,35 @@ Examples:
|
|
|
298
294
|
process.exit(1);
|
|
299
295
|
}
|
|
300
296
|
});
|
|
301
|
-
//
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
.
|
|
297
|
+
// ---- Resource listing commands ----
|
|
298
|
+
// List group documents
|
|
299
|
+
groups
|
|
300
|
+
.command("documents")
|
|
301
|
+
.description("List documents a group has access to")
|
|
305
302
|
.argument("<group-type>", "Group type")
|
|
306
303
|
.argument("<group-id>", "Group ID")
|
|
307
|
-
.argument("<user-id>", "User ID")
|
|
308
|
-
.argument("<role>", "New role")
|
|
309
304
|
.option("--app <app-id>", "App ID")
|
|
310
305
|
.option("--json", "Output as JSON")
|
|
311
|
-
.action(async (groupType, groupId,
|
|
306
|
+
.action(async (groupType, groupId, options) => {
|
|
312
307
|
const resolvedAppId = resolveAppId(undefined, options);
|
|
313
308
|
const client = new ApiClient();
|
|
314
309
|
try {
|
|
315
|
-
const result = await client.
|
|
316
|
-
|
|
317
|
-
});
|
|
310
|
+
const result = await client.listGroupDocuments(resolvedAppId, groupType, groupId);
|
|
311
|
+
const list = Array.isArray(result) ? result : result?.documents ?? [];
|
|
318
312
|
if (options.json) {
|
|
319
|
-
json(
|
|
313
|
+
json(list);
|
|
320
314
|
return;
|
|
321
315
|
}
|
|
322
|
-
|
|
316
|
+
if (list.length === 0) {
|
|
317
|
+
info("No documents found for this group.");
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
console.log(formatTable(list, [
|
|
321
|
+
{ header: "ID", key: "documentId", format: formatId },
|
|
322
|
+
{ header: "TITLE", key: "title" },
|
|
323
|
+
{ header: "PERMISSION", key: "permission" },
|
|
324
|
+
{ header: "GRANTED", key: "grantedAt", format: formatDate },
|
|
325
|
+
]));
|
|
323
326
|
}
|
|
324
327
|
catch (err) {
|
|
325
328
|
error(err.message);
|
|
@@ -350,7 +353,6 @@ Examples:
|
|
|
350
353
|
console.log(formatTable(list, [
|
|
351
354
|
{ header: "GROUP_TYPE", key: "groupType" },
|
|
352
355
|
{ header: "GROUP_ID", key: "groupId" },
|
|
353
|
-
{ header: "ROLE", key: "role" },
|
|
354
356
|
{ header: "ADDED", key: "addedAt", format: formatDate },
|
|
355
357
|
]));
|
|
356
358
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/groups.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* A single available guide variant. `file` is always present; `language`
|
|
4
|
+
* and/or `platform` are optional — an omitted dimension means the variant is
|
|
5
|
+
* agnostic on that dimension (matches any requested value). This expresses all
|
|
6
|
+
* three categories from docs PR #81: language-only (e.g. javascript),
|
|
7
|
+
* platform-only (e.g. android), and pair-specific (e.g. swift_ios).
|
|
8
|
+
*/
|
|
9
|
+
export interface GuideVariant {
|
|
10
|
+
language?: string;
|
|
11
|
+
platform?: string;
|
|
12
|
+
file: string;
|
|
13
|
+
}
|
|
14
|
+
export interface Guide {
|
|
15
|
+
topic: string;
|
|
16
|
+
/**
|
|
17
|
+
* The default variant — always present. Served when nothing is requested,
|
|
18
|
+
* or when a requested (language, platform) combination matches no variant.
|
|
19
|
+
*/
|
|
20
|
+
file: string;
|
|
21
|
+
/** Available variants (docs PR #81 shape). Absent for concept-only guides. */
|
|
22
|
+
variants?: GuideVariant[];
|
|
23
|
+
description: string;
|
|
24
|
+
keywords: string[];
|
|
25
|
+
useCases: string[];
|
|
26
|
+
concepts: string[];
|
|
27
|
+
prerequisites: string[];
|
|
28
|
+
relatedGuides: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface Manifest {
|
|
31
|
+
/** Manifest-level defaults (docs PR #81). Informational; surfaced in --json. */
|
|
32
|
+
defaults?: {
|
|
33
|
+
language?: string;
|
|
34
|
+
platform?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Optional platform→language map (issue #1219; authored in
|
|
38
|
+
* Primitive-Labs/primitive-docs#194, consumed here). Maps each supported
|
|
39
|
+
* platform to the language its guides are written in, e.g.
|
|
40
|
+
* `{ web: { language: "ts" }, ios: { language: "swift" } }`. The CLI reads
|
|
41
|
+
* this to infer a language from `--platform` — it NEVER hardcodes the map.
|
|
42
|
+
* Absent on older manifests / stale cache: in that case `--platform` is not
|
|
43
|
+
* validated or inferred (back-compat pass-through). See
|
|
44
|
+
* `validateAndResolveRequest`.
|
|
45
|
+
*/
|
|
46
|
+
platforms?: Record<string, {
|
|
47
|
+
language: string;
|
|
48
|
+
}>;
|
|
49
|
+
guides: Guide[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Normalize a `--language` flag value: lowercase, trim, and map known aliases
|
|
53
|
+
* (typescript/javascript/js → ts). Unknown values pass through unchanged.
|
|
54
|
+
*
|
|
55
|
+
* NOTE: guide flags are intentionally NOT validated against a fixed enum. An
|
|
56
|
+
* unknown/typo'd value simply matches no variant and falls back to the guide's
|
|
57
|
+
* default `file` (the "never fail" behavior from #977). This DIVERGES from
|
|
58
|
+
* `init --platform`, which validates and exits for unsupported values
|
|
59
|
+
* (cli/src/commands/init.ts) — that divergence is deliberate and guide-specific.
|
|
60
|
+
*/
|
|
61
|
+
export declare function normalizeLanguage(value: string | undefined): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Normalize a `--platform` flag value: lowercase + trim. No aliases for now.
|
|
64
|
+
* Like `normalizeLanguage`, unknown values pass through and fall back to the
|
|
65
|
+
* default `file` rather than erroring (guide-specific "never fail" behavior).
|
|
66
|
+
*/
|
|
67
|
+
export declare function normalizePlatform(value: string | undefined): string | undefined;
|
|
68
|
+
export type MatchedOn = "exact" | "language" | "platform" | "default";
|
|
69
|
+
export interface VariantSelection {
|
|
70
|
+
/** The variant filename to fetch/serve. */
|
|
71
|
+
file: string;
|
|
72
|
+
/**
|
|
73
|
+
* Which dimensions the matched variant actually pinned:
|
|
74
|
+
* - "exact" — variant pins both the requested language AND platform
|
|
75
|
+
* - "language" — variant pins (and matched) language only
|
|
76
|
+
* - "platform" — variant pins (and matched) platform only
|
|
77
|
+
* - "default" — no variant matched; the guide's default `file` is served
|
|
78
|
+
*
|
|
79
|
+
* A language-pinned/platform-agnostic hit is reported as "language", NOT
|
|
80
|
+
* "exact", so agents don't over-trust specificity the manifest didn't claim.
|
|
81
|
+
*/
|
|
82
|
+
matchedOn: MatchedOn;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Select the guide variant filename for a requested (language, platform).
|
|
86
|
+
*
|
|
87
|
+
* Implemented as ordered `find()` passes — NOT a wildcard scoring system —
|
|
88
|
+
* with the no-flags case special-cased to the default `file`:
|
|
89
|
+
*
|
|
90
|
+
* 0. No flags at all → guide.file (deterministic "default")
|
|
91
|
+
* 1. Exact pair → variant pins BOTH requested dims
|
|
92
|
+
* 2. Language-only → variant pins language; platform agnostic
|
|
93
|
+
* 3. Platform-only → variant pins platform; language agnostic
|
|
94
|
+
* 4. Default → guide.file
|
|
95
|
+
*
|
|
96
|
+
* An omitted REQUEST dimension acts as a wildcard during matching (a
|
|
97
|
+
* `--language swift` request matches a swift variant regardless of platform).
|
|
98
|
+
* This function NEVER throws — an unknown/typo'd/unavailable combination simply
|
|
99
|
+
* falls through to the guide's default `file`.
|
|
100
|
+
*/
|
|
101
|
+
export declare function selectVariant(guide: Guide, request: {
|
|
102
|
+
language?: string;
|
|
103
|
+
platform?: string;
|
|
104
|
+
}): VariantSelection;
|
|
105
|
+
/**
|
|
106
|
+
* The global set of languages a manifest supports. Derived (never hardcoded)
|
|
107
|
+
* from: every guide variant's `language`, the manifest-level `defaults.language`
|
|
108
|
+
* (falling back to `"ts"` when absent), and every `platforms[*].language`. Used
|
|
109
|
+
* to validate `--language` and to render the `guides list` legend / `--json`.
|
|
110
|
+
*
|
|
111
|
+
* Derived per-request from the manifest ACTUALLY loaded (so it stays correct
|
|
112
|
+
* for stale-cache / `--guide-version` fallbacks), and grows automatically as
|
|
113
|
+
* new languages appear in the manifest — no CLI change needed.
|
|
114
|
+
*/
|
|
115
|
+
export declare function deriveLanguages(manifest: Manifest): Set<string>;
|
|
116
|
+
/**
|
|
117
|
+
* The outcome of validating + resolving a `(--language, --platform)` request.
|
|
118
|
+
* This is a PURE result — `validateAndResolveRequest` never calls `error()` or
|
|
119
|
+
* `process.exit()`; the command action does that when `error` is set (keeps the
|
|
120
|
+
* helper unit-testable, per the design's implementation hygiene note).
|
|
121
|
+
*/
|
|
122
|
+
export interface ResolveResult {
|
|
123
|
+
/** Effective language to select on, after platform→language inference. */
|
|
124
|
+
language?: string;
|
|
125
|
+
/** The requested platform, passed to `selectVariant` for exact-pair matching. */
|
|
126
|
+
platform?: string;
|
|
127
|
+
/** When set, validation failed; the action prints `error(...)` and exits 1. */
|
|
128
|
+
error?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Validate the requested `(language, platform)` against the loaded manifest and
|
|
132
|
+
* resolve the effective language (issue #1219). Behavior:
|
|
133
|
+
*
|
|
134
|
+
* - Normalizes both values first (lowercase + trim, aliases, `"" → undefined`)
|
|
135
|
+
* via the existing `normalizeLanguage`/`normalizePlatform` helpers, then
|
|
136
|
+
* validates the NORMALIZED value.
|
|
137
|
+
* - `--language` is validated against `deriveLanguages(manifest)` whether or
|
|
138
|
+
* not a `platforms` block exists (the set is derivable from any manifest).
|
|
139
|
+
* - `--platform` is validated + inferred ONLY when `manifest.platforms` is
|
|
140
|
+
* present. With the block, an unknown platform is a hard error and a known
|
|
141
|
+
* platform infers `language = platforms[p].language` (an explicit
|
|
142
|
+
* `--language` always wins the language dimension). WITHOUT the block, the
|
|
143
|
+
* platform passes through unvalidated and uninferred — today's non-enforcing
|
|
144
|
+
* behavior, so older manifests / stale cache don't start hard-failing.
|
|
145
|
+
* - Unknown values produce a hard-error message mirroring `init --platform`'s
|
|
146
|
+
* style, plus a cross-hint when the bad value names the other dimension
|
|
147
|
+
* (`--platform swift` → "Did you mean --language swift?", and vice versa).
|
|
148
|
+
*/
|
|
149
|
+
export declare function validateAndResolveRequest(manifest: Manifest, rawLanguage: string | undefined, rawPlatform: string | undefined): ResolveResult;
|
|
150
|
+
/**
|
|
151
|
+
* Compact rendering of the LANGUAGES a guide offers, for the `guides list`
|
|
152
|
+
* table (issue #1219 renamed the ambiguous `COMBINATIONS` column to
|
|
153
|
+
* `LANGUAGES`). Lists each variant's `language`, de-duplicated and order-
|
|
154
|
+
* preserving; a guide with no language-pinned variants renders `default`.
|
|
155
|
+
* Platforms are surfaced separately as a manifest-level legend, since they are
|
|
156
|
+
* a manifest-wide map rather than a per-guide attribute.
|
|
157
|
+
*/
|
|
158
|
+
export declare function formatLanguages(guide: Guide): string;
|
|
159
|
+
export declare function registerGuidesCommands(program: Command): void;
|