@meilisearch/cli 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +97 -2
  3. package/bin/run.js +15 -0
  4. package/dist/commands/add/documents.js +54 -0
  5. package/dist/commands/add/documents.js.map +1 -0
  6. package/dist/commands/add/indexes.js +39 -0
  7. package/dist/commands/add/indexes.js.map +1 -0
  8. package/dist/commands/add/keys.js +63 -0
  9. package/dist/commands/add/keys.js.map +1 -0
  10. package/dist/commands/add/projects.js +96 -0
  11. package/dist/commands/add/projects.js.map +1 -0
  12. package/dist/commands/auth/login.js +26 -0
  13. package/dist/commands/auth/login.js.map +1 -0
  14. package/dist/commands/auth/logout.js +33 -0
  15. package/dist/commands/auth/logout.js.map +1 -0
  16. package/dist/commands/auth/refresh.js +22 -0
  17. package/dist/commands/auth/refresh.js.map +1 -0
  18. package/dist/commands/auth/status.js +34 -0
  19. package/dist/commands/auth/status.js.map +1 -0
  20. package/dist/commands/cancel/tasks.js +24 -0
  21. package/dist/commands/cancel/tasks.js.map +1 -0
  22. package/dist/commands/config/list.js +18 -0
  23. package/dist/commands/config/list.js.map +1 -0
  24. package/dist/commands/config/set.js +48 -0
  25. package/dist/commands/config/set.js.map +1 -0
  26. package/dist/commands/config/sync-with-cloud.js +144 -0
  27. package/dist/commands/config/sync-with-cloud.js.map +1 -0
  28. package/dist/commands/config/unset.js +28 -0
  29. package/dist/commands/config/unset.js.map +1 -0
  30. package/dist/commands/config/update.js +53 -0
  31. package/dist/commands/config/update.js.map +1 -0
  32. package/dist/commands/delete/documents.js +81 -0
  33. package/dist/commands/delete/documents.js.map +1 -0
  34. package/dist/commands/delete/indexes.js +28 -0
  35. package/dist/commands/delete/indexes.js.map +1 -0
  36. package/dist/commands/delete/keys.js +28 -0
  37. package/dist/commands/delete/keys.js.map +1 -0
  38. package/dist/commands/delete/projects.js +40 -0
  39. package/dist/commands/delete/projects.js.map +1 -0
  40. package/dist/commands/delete/settings.js +28 -0
  41. package/dist/commands/delete/settings.js.map +1 -0
  42. package/dist/commands/delete/tasks.js +34 -0
  43. package/dist/commands/delete/tasks.js.map +1 -0
  44. package/dist/commands/export.js +67 -0
  45. package/dist/commands/export.js.map +1 -0
  46. package/dist/commands/facet-search.js +87 -0
  47. package/dist/commands/facet-search.js.map +1 -0
  48. package/dist/commands/get/batches.js +35 -0
  49. package/dist/commands/get/batches.js.map +1 -0
  50. package/dist/commands/get/documents.js +74 -0
  51. package/dist/commands/get/documents.js.map +1 -0
  52. package/dist/commands/get/health.js +17 -0
  53. package/dist/commands/get/health.js.map +1 -0
  54. package/dist/commands/get/indexes.js +33 -0
  55. package/dist/commands/get/indexes.js.map +1 -0
  56. package/dist/commands/get/keys.js +36 -0
  57. package/dist/commands/get/keys.js.map +1 -0
  58. package/dist/commands/get/projects.js +40 -0
  59. package/dist/commands/get/projects.js.map +1 -0
  60. package/dist/commands/get/settings.js +25 -0
  61. package/dist/commands/get/settings.js.map +1 -0
  62. package/dist/commands/get/stats.js +37 -0
  63. package/dist/commands/get/stats.js.map +1 -0
  64. package/dist/commands/get/tasks.js +35 -0
  65. package/dist/commands/get/tasks.js.map +1 -0
  66. package/dist/commands/get/version.js +16 -0
  67. package/dist/commands/get/version.js.map +1 -0
  68. package/dist/commands/multi-search.js +39 -0
  69. package/dist/commands/multi-search.js.map +1 -0
  70. package/dist/commands/schema.js +95 -0
  71. package/dist/commands/schema.js.map +1 -0
  72. package/dist/commands/search.js +164 -0
  73. package/dist/commands/search.js.map +1 -0
  74. package/dist/commands/similar.js +86 -0
  75. package/dist/commands/similar.js.map +1 -0
  76. package/dist/commands/teleport.js +472 -0
  77. package/dist/commands/teleport.js.map +1 -0
  78. package/dist/commands/update/documents.js +56 -0
  79. package/dist/commands/update/documents.js.map +1 -0
  80. package/dist/commands/update/indexes.js +44 -0
  81. package/dist/commands/update/indexes.js.map +1 -0
  82. package/dist/commands/update/keys.js +42 -0
  83. package/dist/commands/update/keys.js.map +1 -0
  84. package/dist/commands/update/projects.js +62 -0
  85. package/dist/commands/update/projects.js.map +1 -0
  86. package/dist/commands/update/settings.js +145 -0
  87. package/dist/commands/update/settings.js.map +1 -0
  88. package/dist/lib/analytics.js +135 -0
  89. package/dist/lib/analytics.js.map +1 -0
  90. package/dist/lib/api-naming.js +435 -0
  91. package/dist/lib/api-naming.js.map +1 -0
  92. package/dist/lib/base-command.js +318 -0
  93. package/dist/lib/base-command.js.map +1 -0
  94. package/dist/lib/clients/analytics.js +24 -0
  95. package/dist/lib/clients/analytics.js.map +1 -0
  96. package/dist/lib/clients/management/generated/client/client.gen.js +217 -0
  97. package/dist/lib/clients/management/generated/client/client.gen.js.map +1 -0
  98. package/dist/lib/clients/management/generated/client/index.js +7 -0
  99. package/dist/lib/clients/management/generated/client/index.js.map +1 -0
  100. package/dist/lib/clients/management/generated/client/types.gen.js +3 -0
  101. package/dist/lib/clients/management/generated/client/types.gen.js.map +1 -0
  102. package/dist/lib/clients/management/generated/client/utils.gen.js +229 -0
  103. package/dist/lib/clients/management/generated/client/utils.gen.js.map +1 -0
  104. package/dist/lib/clients/management/generated/client.gen.js +4 -0
  105. package/dist/lib/clients/management/generated/client.gen.js.map +1 -0
  106. package/dist/lib/clients/management/generated/core/auth.gen.js +15 -0
  107. package/dist/lib/clients/management/generated/core/auth.gen.js.map +1 -0
  108. package/dist/lib/clients/management/generated/core/bodySerializer.gen.js +58 -0
  109. package/dist/lib/clients/management/generated/core/bodySerializer.gen.js.map +1 -0
  110. package/dist/lib/clients/management/generated/core/params.gen.js +110 -0
  111. package/dist/lib/clients/management/generated/core/params.gen.js.map +1 -0
  112. package/dist/lib/clients/management/generated/core/pathSerializer.gen.js +107 -0
  113. package/dist/lib/clients/management/generated/core/pathSerializer.gen.js.map +1 -0
  114. package/dist/lib/clients/management/generated/core/queryKeySerializer.gen.js +93 -0
  115. package/dist/lib/clients/management/generated/core/queryKeySerializer.gen.js.map +1 -0
  116. package/dist/lib/clients/management/generated/core/serverSentEvents.gen.js +133 -0
  117. package/dist/lib/clients/management/generated/core/serverSentEvents.gen.js.map +1 -0
  118. package/dist/lib/clients/management/generated/core/types.gen.js +3 -0
  119. package/dist/lib/clients/management/generated/core/types.gen.js.map +1 -0
  120. package/dist/lib/clients/management/generated/core/utils.gen.js +88 -0
  121. package/dist/lib/clients/management/generated/core/utils.gen.js.map +1 -0
  122. package/dist/lib/clients/management/generated/index.js +3 -0
  123. package/dist/lib/clients/management/generated/index.js.map +1 -0
  124. package/dist/lib/clients/management/generated/sdk.gen.js +398 -0
  125. package/dist/lib/clients/management/generated/sdk.gen.js.map +1 -0
  126. package/dist/lib/clients/management/generated/types.gen.js +3 -0
  127. package/dist/lib/clients/management/generated/types.gen.js.map +1 -0
  128. package/dist/lib/clients/management.js +21 -0
  129. package/dist/lib/clients/management.js.map +1 -0
  130. package/dist/lib/clients/meilisearch.js +69 -0
  131. package/dist/lib/clients/meilisearch.js.map +1 -0
  132. package/dist/lib/clients/oauth.js +225 -0
  133. package/dist/lib/clients/oauth.js.map +1 -0
  134. package/dist/lib/clients/ping.js +26 -0
  135. package/dist/lib/clients/ping.js.map +1 -0
  136. package/dist/lib/clients/trace.js +69 -0
  137. package/dist/lib/clients/trace.js.map +1 -0
  138. package/dist/lib/cloud-sync.js +113 -0
  139. package/dist/lib/cloud-sync.js.map +1 -0
  140. package/dist/lib/config.js +322 -0
  141. package/dist/lib/config.js.map +1 -0
  142. package/dist/lib/errors.js +302 -0
  143. package/dist/lib/errors.js.map +1 -0
  144. package/dist/lib/help.js +37 -0
  145. package/dist/lib/help.js.map +1 -0
  146. package/dist/lib/input.js +76 -0
  147. package/dist/lib/input.js.map +1 -0
  148. package/dist/lib/login.js +57 -0
  149. package/dist/lib/login.js.map +1 -0
  150. package/dist/lib/output.js +39 -0
  151. package/dist/lib/output.js.map +1 -0
  152. package/dist/lib/pagination.js +52 -0
  153. package/dist/lib/pagination.js.map +1 -0
  154. package/dist/lib/session.js +149 -0
  155. package/dist/lib/session.js.map +1 -0
  156. package/dist/lib/task-filters.js +118 -0
  157. package/dist/lib/task-filters.js.map +1 -0
  158. package/dist/lib/tasks.js +64 -0
  159. package/dist/lib/tasks.js.map +1 -0
  160. package/dist/lib/terminal.js +168 -0
  161. package/dist/lib/terminal.js.map +1 -0
  162. package/dist/lib/values.js +48 -0
  163. package/dist/lib/values.js.map +1 -0
  164. package/oclif.manifest.json +10470 -0
  165. package/package.json +81 -3
@@ -0,0 +1,48 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { cloudEntry, findProjectByUrl } from "../../lib/cloud-sync.js";
4
+ import { assertNoProject, assertProjectUrl, CONFIG_FILE_WARNING, writeConfigFile, } from "../../lib/config.js";
5
+ import { readStdin } from "../../lib/input.js";
6
+ export default class ConfigSet extends BaseCommand {
7
+ static api = "none";
8
+ static description = `Set a project in the config file, creating the file owner-only; refuses a name that exists. Talks to the Management API only with --sync-with-cloud.
9
+
10
+ ${CONFIG_FILE_WARNING}`;
11
+ static examples = [
12
+ "<%= config.bin %> <%= command.id %> --project local --project-url http://localhost:7700",
13
+ "<%= config.bin %> <%= command.id %> --project prod --project-url https://ms-abc.sfo.meilisearch.io --project-api-key - < key.txt",
14
+ "<%= config.bin %> <%= command.id %> --project prod --project-url https://ms-abc.sfo.meilisearch.io --sync-with-cloud",
15
+ "<%= config.bin %> <%= command.id %> --project local --project-url http://localhost:7700 --output json",
16
+ ];
17
+ static flags = {
18
+ project: Flags.string({
19
+ required: true,
20
+ description: "Name of the project to set.",
21
+ helpValue: "<name>",
22
+ }),
23
+ "project-url": Flags.string({
24
+ required: true,
25
+ description: "URL of the project.",
26
+ helpValue: "<url>",
27
+ }),
28
+ "project-api-key": Flags.string({
29
+ description: "API key of the project. `-` reads it from stdin, out of the shell history.",
30
+ helpValue: "<key>",
31
+ parse: async (value) => (value === "-" ? readStdin() : value),
32
+ }),
33
+ ...BaseCommand.syncWithCloudFlags,
34
+ };
35
+ async run() {
36
+ const { flags } = await this.parse(ConfigSet);
37
+ const url = flags["project-url"];
38
+ assertProjectUrl(url);
39
+ const file = this.configFile();
40
+ assertNoProject(file, flags.project, ".");
41
+ const apiKey = flags["project-api-key"];
42
+ const entry = flags["sync-with-cloud"]
43
+ ? await cloudEntry(this.managementClient, await findProjectByUrl(this.managementClient, url), flags.project, url, apiKey)
44
+ : { url, apiKey };
45
+ writeConfigFile({ path: file.path, projects: { ...file.projects, [flags.project]: entry } });
46
+ }
47
+ }
48
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/config/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EAEnB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,GAAG,GAAQ,MAAM,CAAC;IAEzB,MAAM,CAAU,WAAW,GACzB;;EAEF,mBAAmB,EAAE,CAAC;IAEtB,MAAM,CAAU,QAAQ,GAAG;QACzB,yFAAyF;QACzF,kIAAkI;QAClI,sHAAsH;QACtH,uGAAuG;KACxG,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,6BAA6B;YAC1C,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;YAClC,SAAS,EAAE,OAAO;SACnB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC9B,WAAW,EAAE,4EAA4E;YACzF,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC9D,CAAC;QACF,GAAG,WAAW,CAAC,kBAAkB;KAClC,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxC,MAAM,KAAK,GAAiB,KAAK,CAAC,iBAAiB,CAAC;YAClD,CAAC,CAAC,MAAM,UAAU,CACd,IAAI,CAAC,gBAAgB,EACrB,MAAM,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAClD,KAAK,CAAC,OAAO,EACb,GAAG,EACH,MAAM,CACP;YACH,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;CACF"}
@@ -0,0 +1,144 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { cloudOf, findProjectByUrl, listCloudProjects, readMasterKey, readTeamNames, sameOrigin, warnUrlAnomaly, } from "../../lib/cloud-sync.js";
4
+ import { assertProjectUrl, CONFIG_FILE_WARNING, entriesOfCloudId, writeConfigFile, } from "../../lib/config.js";
5
+ import { MeiliCliError, writeWarning } from "../../lib/errors.js";
6
+ const SCOPES = ["all", "team-ids", "project-name", "project-url"];
7
+ export default class ConfigSyncWithCloud extends BaseCommand {
8
+ static api = "management";
9
+ static description = `Give every Meilisearch Cloud project of the scope an entry of the config file, with its cloud identifiers, and its master key when the entry has no key. Never replaces a key, never removes an entry. Prints one item per project.
10
+
11
+ ${CONFIG_FILE_WARNING}`;
12
+ static examples = [
13
+ "<%= config.bin %> <%= command.id %> --all",
14
+ "<%= config.bin %> <%= command.id %> --team-ids 12,13",
15
+ "<%= config.bin %> <%= command.id %> --project-name prod",
16
+ "<%= config.bin %> <%= command.id %> --project-url https://ms-abc.sfo.meilisearch.io --output json",
17
+ ];
18
+ static flags = {
19
+ all: Flags.boolean({ description: "Every project the token sees.", exactlyOne: SCOPES }),
20
+ "team-ids": Flags.string({
21
+ description: "The projects of these teams, comma-separated.",
22
+ helpValue: "<ids>",
23
+ exactlyOne: SCOPES,
24
+ }),
25
+ "project-name": Flags.string({
26
+ description: "The projects with exactly this name, in any team.",
27
+ helpValue: "<name>",
28
+ exactlyOne: SCOPES,
29
+ }),
30
+ "project-url": Flags.string({
31
+ description: "The project with this URL, same scheme and host.",
32
+ helpValue: "<url>",
33
+ exactlyOne: SCOPES,
34
+ }),
35
+ };
36
+ async run() {
37
+ const { flags } = await this.parse(ConfigSyncWithCloud);
38
+ const url = flags["project-url"];
39
+ if (url !== undefined)
40
+ assertProjectUrl(url);
41
+ const teamIds = flags["team-ids"]?.split(",").map((id) => {
42
+ if (!/^\d+$/.test(id)) {
43
+ throw new MeiliCliError("cli_usage", `Invalid team id \`${id}\` in \`--team-ids\`.`);
44
+ }
45
+ return Number(id);
46
+ });
47
+ const file = this.configFile();
48
+ let projects;
49
+ if (teamIds !== undefined) {
50
+ const lists = await Promise.all([...new Set(teamIds)].map((id) => listCloudProjects(this.managementClient, id)));
51
+ projects = lists.flat();
52
+ }
53
+ else if (url !== undefined) {
54
+ projects = [await findProjectByUrl(this.managementClient, url)];
55
+ }
56
+ else {
57
+ const name = flags["project-name"];
58
+ projects = (await listCloudProjects(this.managementClient)).filter((project) => name === undefined || project.name === name);
59
+ if (name !== undefined && projects.length === 0) {
60
+ throw new MeiliCliError("cli_config", `No Meilisearch Cloud project is named \`${name}\`: nothing was written.`);
61
+ }
62
+ }
63
+ const teams = await readTeamNames(this.managementClient);
64
+ const reachable = projects.filter((project) => {
65
+ if (project.url != null)
66
+ return true;
67
+ writeWarning(new MeiliCliError("cli_config", `Project ${project.id} (${project.name}) has no URL yet, it is still being created: it was skipped.`));
68
+ return false;
69
+ });
70
+ // The entry of each project: the one the file has, or a new one named after it.
71
+ const matched = reachable.map((project) => ({ project, entry: entryOfProject(file, project) }));
72
+ const newNames = matched.filter(({ entry }) => entry === undefined).map((m) => m.project.name);
73
+ const planned = matched.map(({ project, entry }) => ({
74
+ project,
75
+ name: entry ?? newEntryName(file, project, newNames),
76
+ }));
77
+ const entries = { ...file.projects };
78
+ const report = [];
79
+ for (const { project, name } of planned) {
80
+ const before = file.projects[name];
81
+ if (before !== undefined)
82
+ warnUrlAnomaly(name, before.url, project);
83
+ const kept = before?.apiKey !== undefined;
84
+ const apiKey = before?.apiKey ?? (await readMasterKey(this.managementClient, project, name));
85
+ const entry = {
86
+ url: before?.url ?? project.url,
87
+ ...(apiKey === undefined ? {} : { apiKey }),
88
+ cloud: cloudOf(project, teams),
89
+ };
90
+ entries[name] = entry;
91
+ report.push({
92
+ project: name,
93
+ cloud: entry.cloud,
94
+ action: before === undefined
95
+ ? "added"
96
+ : JSON.stringify(entry) === JSON.stringify(before)
97
+ ? "unchanged"
98
+ : "updated",
99
+ apiKey: kept ? "kept" : apiKey !== undefined ? "written" : "missing",
100
+ });
101
+ }
102
+ if (report.some((each) => each.action !== "unchanged")) {
103
+ writeConfigFile({ path: file.path, projects: entries });
104
+ }
105
+ await this.output(report, { supportsNdjson: true });
106
+ }
107
+ }
108
+ /**
109
+ * The entry the file already has for `project`: the one whose `cloud.id` is
110
+ * its id, else the one without `cloud` on its URL. Several is `cli_config`:
111
+ * the CLI does not pick one.
112
+ */
113
+ function entryOfProject(file, project) {
114
+ let names = entriesOfCloudId(file, project.id);
115
+ if (names.length === 0) {
116
+ names = Object.keys(file.projects).filter((name) => {
117
+ const entry = file.projects[name];
118
+ return entry?.cloud === undefined && sameOrigin(entry?.url ?? "", project.url);
119
+ });
120
+ }
121
+ if (names.length > 1) {
122
+ throw new MeiliCliError("cli_config", `Projects ${names.map((name) => `\`${name}\``).join(", ")} of ${file.path} are all Cloud project ${project.id}: nothing was written.`, { hint: "Keep one of them with `meili config unset --project <name>`." });
123
+ }
124
+ return names[0];
125
+ }
126
+ /**
127
+ * A new entry is named after its project, `<name>-<id>` when another new
128
+ * entry of the run or an entry of the file has that name.
129
+ */
130
+ function newEntryName(file, { name, id }, newNames) {
131
+ if (newNames.filter((other) => other === name).length === 1 &&
132
+ !Object.hasOwn(file.projects, name)) {
133
+ return name;
134
+ }
135
+ const suffixed = `${name}-${id}`;
136
+ if (Object.hasOwn(file.projects, suffixed)) {
137
+ throw new MeiliCliError("cli_config", `Project ${id} would be the entry \`${suffixed}\`, which ${file.path} already has: nothing was written.`, {
138
+ hint: `Rename that entry: \`meili config unset --project ${suffixed}\`, then \`meili config set\`.`,
139
+ });
140
+ }
141
+ writeWarning(new MeiliCliError("cli_config", `The name \`${name}\` is taken: project ${id} is the entry \`${suffixed}\`.`));
142
+ return suffixed;
143
+ }
144
+ //# sourceMappingURL=sync-with-cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-with-cloud.js","sourceRoot":"","sources":["../../../src/commands/config/sync-with-cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { CONFIG_FILE_WARNING, projectOf, writeConfigFile } from "../../lib/config.js";
4
+ export default class ConfigUnset extends BaseCommand {
5
+ static api = "none";
6
+ static description = `Remove a project from the config file.
7
+
8
+ ${CONFIG_FILE_WARNING}`;
9
+ static examples = [
10
+ "<%= config.bin %> <%= command.id %> --project prod",
11
+ "<%= config.bin %> <%= command.id %> --project prod --output json",
12
+ ];
13
+ static flags = {
14
+ project: Flags.string({
15
+ required: true,
16
+ description: "Name of the project to remove.",
17
+ helpValue: "<name>",
18
+ }),
19
+ };
20
+ async run() {
21
+ const { flags } = await this.parse(ConfigUnset);
22
+ const file = this.configFile();
23
+ projectOf(file, flags.project);
24
+ const { [flags.project]: _removed, ...projects } = file.projects;
25
+ writeConfigFile({ path: file.path, projects });
26
+ }
27
+ }
28
+ //# sourceMappingURL=unset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unset.js","sourceRoot":"","sources":["../../../src/commands/config/unset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,GAAG,GAAQ,MAAM,CAAC;IAEzB,MAAM,CAAU,WAAW,GAAG;;EAE9B,mBAAmB,EAAE,CAAC;IAEtB,MAAM,CAAU,QAAQ,GAAG;QACzB,oDAAoD;QACpD,kEAAkE;KACnE,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gCAAgC;YAC7C,SAAS,EAAE,QAAQ;SACpB,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjE,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { getApiV2ProjectsById } from "../../lib/clients/management/generated/sdk.gen.js";
4
+ import { cloudEntry, findProjectByUrl, warnUrlAnomaly } from "../../lib/cloud-sync.js";
5
+ import { assertProjectUrl, CONFIG_FILE_WARNING, projectOf, writeConfigFile, } from "../../lib/config.js";
6
+ import { readStdin } from "../../lib/input.js";
7
+ export default class ConfigUpdate extends BaseCommand {
8
+ static api = "none";
9
+ static description = `Change the fields given of a project of the config file; refuses a name that does not exist. Talks to the Management API only with --sync-with-cloud.
10
+
11
+ ${CONFIG_FILE_WARNING}`;
12
+ static examples = [
13
+ "<%= config.bin %> <%= command.id %> --project prod --sync-with-cloud",
14
+ "<%= config.bin %> <%= command.id %> --project prod --project-api-key - < key.txt",
15
+ "<%= config.bin %> <%= command.id %> --project local --project-url http://localhost:7701 --output json",
16
+ ];
17
+ static flags = {
18
+ project: Flags.string({
19
+ required: true,
20
+ description: "Name of the project to change.",
21
+ helpValue: "<name>",
22
+ }),
23
+ "project-url": Flags.string({ description: "New URL of the project.", helpValue: "<url>" }),
24
+ "project-api-key": Flags.string({
25
+ description: "New API key of the project. `-` reads it from stdin, out of the shell history.",
26
+ helpValue: "<key>",
27
+ parse: async (value) => (value === "-" ? readStdin() : value),
28
+ }),
29
+ ...BaseCommand.syncWithCloudFlags,
30
+ };
31
+ async run() {
32
+ const { flags } = await this.parse(ConfigUpdate);
33
+ if (flags["project-url"] !== undefined)
34
+ assertProjectUrl(flags["project-url"]);
35
+ const file = this.configFile();
36
+ const before = projectOf(file, flags.project);
37
+ const url = flags["project-url"] ?? before.url;
38
+ const apiKey = flags["project-api-key"] ?? before.apiKey;
39
+ let entry = { url, apiKey, cloud: before.cloud };
40
+ if (flags["sync-with-cloud"]) {
41
+ const project = before.cloud === undefined
42
+ ? await findProjectByUrl(this.managementClient, url)
43
+ : await getApiV2ProjectsById({
44
+ client: this.managementClient,
45
+ path: { id: before.cloud.id },
46
+ });
47
+ warnUrlAnomaly(flags.project, url, project);
48
+ entry = await cloudEntry(this.managementClient, project, flags.project, url, apiKey);
49
+ }
50
+ writeConfigFile({ path: file.path, projects: { ...file.projects, [flags.project]: entry } });
51
+ }
52
+ }
53
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/config/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { MeiliCliError } from "../../lib/errors.js";
4
+ import { isJsonObject, readJsonBody } from "../../lib/input.js";
5
+ export default class DeleteDocuments extends BaseCommand {
6
+ static api = "meilisearch";
7
+ static routes = [
8
+ "DELETE /indexes/{index_uid}/documents",
9
+ "POST /indexes/{index_uid}/documents/delete",
10
+ "POST /indexes/{index_uid}/documents/delete-batch",
11
+ ];
12
+ static keyActions = ["documents.delete"];
13
+ static description = "Delete the documents of an index named by --ids, matched by --filter, or every one of them with --all.";
14
+ static examples = [
15
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --ids 42,1344 --yes",
16
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --ids 42 --yes --output json",
17
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --filter 'rating < 2' --yes",
18
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --file ids.json --yes",
19
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --all --yes --wait",
20
+ ];
21
+ static flags = {
22
+ ...BaseCommand.connectionFlags,
23
+ index: Flags.string({
24
+ required: true,
25
+ description: "The index to delete the documents from.",
26
+ helpValue: "<index>",
27
+ }),
28
+ ids: Flags.string({
29
+ aliases: ["id"],
30
+ exclusive: ["filter", "all"],
31
+ description: "Document identifiers to delete, comma-separated.",
32
+ helpValue: "<ids>",
33
+ }),
34
+ filter: Flags.string({
35
+ exclusive: ["ids", "all"],
36
+ description: "Delete the documents matching this filter expression, for example `rating < 2`.",
37
+ helpValue: "<filter>",
38
+ }),
39
+ all: Flags.boolean({
40
+ exclusive: ["ids", "filter", "file", "data"],
41
+ description: "Delete every document of the index.",
42
+ }),
43
+ "custom-metadata": Flags.string({
44
+ description: "String attached to the task, returned in the task object.",
45
+ helpValue: "<string>",
46
+ }),
47
+ ...BaseCommand.bodyInputFlags,
48
+ ...BaseCommand.waitFlags,
49
+ ...BaseCommand.confirmFlags,
50
+ };
51
+ async run() {
52
+ const { flags } = await this.parse(DeleteDocuments);
53
+ const index = this.meilisearch.index(flags.index);
54
+ const options = { customMetadata: flags["custom-metadata"] };
55
+ if (flags.all) {
56
+ await this.outputTask(await index.deleteAllDocuments(options), flags);
57
+ return;
58
+ }
59
+ // The body of the two POST routes is the selector itself: an array of
60
+ // identifiers for delete-batch, `{ "filter": … }` for delete. A flag
61
+ // overrides it, as it overrides any body field.
62
+ const body = readJsonBody(flags);
63
+ const ids = flags.ids?.split(",") ?? (Array.isArray(body) ? body : undefined);
64
+ const filter = flags.filter ?? (isJsonObject(body) ? body.filter : undefined);
65
+ if (ids !== undefined && filter !== undefined) {
66
+ throw new MeiliCliError("cli_usage", "Identifiers and a filter select two different routes. Pass only one of them.");
67
+ }
68
+ if (ids !== undefined) {
69
+ await this.outputTask(await index.deleteDocuments(ids, options), flags);
70
+ return;
71
+ }
72
+ if (filter !== undefined) {
73
+ await this.outputTask(await index.deleteDocuments({ filter }, options), flags);
74
+ return;
75
+ }
76
+ throw new MeiliCliError("cli_usage", "The documents to delete are missing.", {
77
+ hint: "Name them with `--ids <ids>` or `--filter <filter>`, or delete every document with `--all`.",
78
+ });
79
+ }
80
+ }
81
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/commands/delete/documents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ export default class DeleteIndexes extends BaseCommand {
4
+ static api = "meilisearch";
5
+ static routes = ["DELETE /indexes/{index_uid}"];
6
+ static keyActions = ["indexes.delete"];
7
+ static description = "Delete an index, with its documents, its settings and its task history.";
8
+ static examples = [
9
+ "<%= config.bin %> <%= command.id %> --project prod --id movies --yes",
10
+ "<%= config.bin %> <%= command.id %> --project prod --id movies --yes --output json",
11
+ "<%= config.bin %> <%= command.id %> --project prod --id movies --yes --wait",
12
+ ];
13
+ static flags = {
14
+ ...BaseCommand.connectionFlags,
15
+ id: Flags.string({
16
+ required: true,
17
+ description: "The index to delete.",
18
+ helpValue: "<index>",
19
+ }),
20
+ ...BaseCommand.waitFlags,
21
+ ...BaseCommand.confirmFlags,
22
+ };
23
+ async run() {
24
+ const { flags } = await this.parse(DeleteIndexes);
25
+ await this.outputTask(await this.meilisearch.deleteIndex(flags.id), flags);
26
+ }
27
+ }
28
+ //# sourceMappingURL=indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../../src/commands/delete/indexes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,GAAG,GAAQ,aAAa,CAAC;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAEhD,MAAM,CAAC,UAAU,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAEvC,MAAM,CAAU,WAAW,GACzB,yEAAyE,CAAC;IAE5E,MAAM,CAAU,QAAQ,GAAG;QACzB,sEAAsE;QACtE,oFAAoF;QACpF,6EAA6E;KAC9E,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sBAAsB;YACnC,SAAS,EAAE,SAAS;SACrB,CAAC;QACF,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,WAAW,CAAC,YAAY;KAC5B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ export default class DeleteKeys extends BaseCommand {
4
+ static api = "meilisearch";
5
+ static routes = ["DELETE /keys/{key}"];
6
+ static keyActions = ["keys.delete"];
7
+ static description = "Delete an API key, which stops authenticating every request that carries it.";
8
+ static examples = [
9
+ "<%= config.bin %> <%= command.id %> --project prod --id 52787ccd-48ff-48e5-9c4b-03cd76978a60 --yes",
10
+ "<%= config.bin %> <%= command.id %> --project prod --id 52787ccd-48ff-48e5-9c4b-03cd76978a60 --yes --output json",
11
+ ];
12
+ static flags = {
13
+ ...BaseCommand.connectionFlags,
14
+ id: Flags.string({
15
+ required: true,
16
+ description: "The key to delete, by its uid or by its key value.",
17
+ helpValue: "<key>",
18
+ }),
19
+ ...BaseCommand.confirmFlags,
20
+ };
21
+ async run() {
22
+ const { flags } = await this.parse(DeleteKeys);
23
+ // The route answers 204 with no body, so nothing goes to stdout
24
+ // (docs/contract/output.md, Streams).
25
+ await this.meilisearch.deleteKey(flags.id);
26
+ }
27
+ }
28
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/commands/delete/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,MAAM,CAAC,GAAG,GAAQ,aAAa,CAAC;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEvC,MAAM,CAAC,UAAU,GAAG,CAAC,aAAa,CAAC,CAAC;IAEpC,MAAM,CAAU,WAAW,GACzB,8EAA8E,CAAC;IAEjF,MAAM,CAAU,QAAQ,GAAG;QACzB,oGAAoG;QACpG,kHAAkH;KACnH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oDAAoD;YACjE,SAAS,EAAE,OAAO;SACnB,CAAC;QACF,GAAG,WAAW,CAAC,YAAY;KAC5B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,gEAAgE;QAChE,sCAAsC;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ import { deleteApiV2ProjectsById } from "../../lib/clients/management/generated/sdk.gen.js";
4
+ import { cloudProjectEntry, writeConfigFile } from "../../lib/config.js";
5
+ export default class DeleteProjects extends BaseCommand {
6
+ static api = "management";
7
+ static routes = ["DELETE /api/v2/projects/{id}"];
8
+ static description = "Delete a Meilisearch Cloud project, with its data. Prints nothing on success.";
9
+ static examples = [
10
+ "<%= config.bin %> <%= command.id %> --id 343 --yes",
11
+ "<%= config.bin %> <%= command.id %> --id 343 --yes --output json",
12
+ "<%= config.bin %> <%= command.id %> --project staging --yes",
13
+ "<%= config.bin %> <%= command.id %> --project staging --yes --sync-config",
14
+ ];
15
+ static flags = {
16
+ ...BaseCommand.cloudProjectFlags,
17
+ id: Flags.integer({
18
+ description: "The project to delete, or give --project <name> and its cloud.id from the config file.",
19
+ helpValue: "<id>",
20
+ }),
21
+ "sync-config": Flags.boolean({
22
+ description: "Remove the project's entry from the config file: the entry --project names, or the one whose cloud.id is --id.",
23
+ }),
24
+ ...BaseCommand.confirmFlags,
25
+ };
26
+ async run() {
27
+ const { flags } = await this.parse(DeleteProjects);
28
+ const id = this.cloudProjectId(flags.id);
29
+ const file = flags["sync-config"] ? this.configFile() : undefined;
30
+ const entry = file === undefined
31
+ ? undefined
32
+ : cloudProjectEntry(file, flags.project, id, ": nothing was deleted.");
33
+ await deleteApiV2ProjectsById({ client: this.managementClient, path: { id } });
34
+ if (file === undefined || entry === undefined)
35
+ return;
36
+ const { [entry]: _removed, ...projects } = file.projects;
37
+ writeConfigFile({ path: file.path, projects });
38
+ }
39
+ }
40
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/commands/delete/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,GAAG,GAAQ,YAAY,CAAC;IAE/B,MAAM,CAAC,MAAM,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAEjD,MAAM,CAAU,WAAW,GACzB,+EAA+E,CAAC;IAElF,MAAM,CAAU,QAAQ,GAAG;QACzB,oDAAoD;QACpD,kEAAkE;QAClE,6DAA6D;QAC7D,2EAA2E;KAC5E,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,iBAAiB;QAChC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;YAChB,WAAW,EACT,wFAAwF;YAC1F,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;YAC3B,WAAW,EACT,gHAAgH;SACnH,CAAC;QACF,GAAG,WAAW,CAAC,YAAY;KAC5B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,MAAM,KAAK,GACT,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC3E,MAAM,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QACtD,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzD,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { BaseCommand } from "../../lib/base-command.js";
3
+ export default class DeleteSettings extends BaseCommand {
4
+ static api = "meilisearch";
5
+ static routes = ["DELETE /indexes/{index_uid}/settings"];
6
+ static keyActions = ["settings.update"];
7
+ static description = "Reset every setting of an index to its default value, which reindexes the documents.";
8
+ static examples = [
9
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --yes",
10
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --yes --output json",
11
+ "<%= config.bin %> <%= command.id %> --project prod --index movies --yes --wait",
12
+ ];
13
+ static flags = {
14
+ ...BaseCommand.connectionFlags,
15
+ index: Flags.string({
16
+ required: true,
17
+ description: "The index to reset the settings of. `update settings --<setting> null` resets one of them.",
18
+ helpValue: "<index>",
19
+ }),
20
+ ...BaseCommand.waitFlags,
21
+ ...BaseCommand.confirmFlags,
22
+ };
23
+ async run() {
24
+ const { flags } = await this.parse(DeleteSettings);
25
+ await this.outputTask(await this.meilisearch.index(flags.index).resetSettings(), flags);
26
+ }
27
+ }
28
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/commands/delete/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,WAAW;IACrD,MAAM,CAAC,GAAG,GAAQ,aAAa,CAAC;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEzD,MAAM,CAAC,UAAU,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAExC,MAAM,CAAU,WAAW,GACzB,sFAAsF,CAAC;IAEzF,MAAM,CAAU,QAAQ,GAAG;QACzB,yEAAyE;QACzE,uFAAuF;QACvF,gFAAgF;KACjF,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,4FAA4F;YAC9F,SAAS,EAAE,SAAS;SACrB,CAAC;QACF,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,WAAW,CAAC,YAAY;KAC5B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1F,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import { BaseCommand } from "../../lib/base-command.js";
2
+ import { MeiliCliError } from "../../lib/errors.js";
3
+ import { taskFilterFlags, taskFilterQuery } from "../../lib/task-filters.js";
4
+ export default class DeleteTasks extends BaseCommand {
5
+ static api = "meilisearch";
6
+ static routes = ["DELETE /tasks"];
7
+ static keyActions = ["tasks.delete"];
8
+ static description = "Delete the finished tasks matched by --ids, --statuses, --types and the other filters of the route.";
9
+ static examples = [
10
+ "<%= config.bin %> <%= command.id %> --project prod --ids 42,1344 --yes",
11
+ "<%= config.bin %> <%= command.id %> --project prod --ids 42 --yes --output json",
12
+ "<%= config.bin %> <%= command.id %> --project prod --statuses succeeded --before-enqueued-at 2026-01-01T00:00:00Z --yes",
13
+ "<%= config.bin %> <%= command.id %> --project prod --index-ids movies --yes --wait",
14
+ ];
15
+ static flags = {
16
+ ...BaseCommand.connectionFlags,
17
+ ...taskFilterFlags,
18
+ ...BaseCommand.waitFlags,
19
+ ...BaseCommand.confirmFlags,
20
+ };
21
+ async run() {
22
+ const { flags } = await this.parse(DeleteTasks);
23
+ const query = taskFilterQuery(flags);
24
+ // docs/contract/output.md, Destructive commands. There is no --all here:
25
+ // the route has no form that deletes every task.
26
+ if (Object.values(query).every((filter) => filter === undefined)) {
27
+ throw new MeiliCliError("cli_usage", "The tasks to delete are missing.", {
28
+ hint: "Name them with `--ids <uids>`, or match them with `--statuses <statuses>`, `--types <types>`, `--index-ids <indexes>` or a date filter such as `--before-enqueued-at <date>`.",
29
+ });
30
+ }
31
+ await this.outputTask(await this.meilisearch.tasks.deleteTasks(query), flags);
32
+ }
33
+ }
34
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/commands/delete/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,GAAG,GAAQ,aAAa,CAAC;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC;IAElC,MAAM,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;IAErC,MAAM,CAAU,WAAW,GACzB,qGAAqG,CAAC;IAExG,MAAM,CAAU,QAAQ,GAAG;QACzB,wEAAwE;QACxE,iFAAiF;QACjF,yHAAyH;QACzH,oFAAoF;KACrF,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,GAAG,eAAe;QAClB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,WAAW,CAAC,YAAY;KAC5B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,yEAAyE;QACzE,iDAAiD;QACjD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,kCAAkC,EAAE;gBACvE,IAAI,EAAE,+KAA+K;aACtL,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;CACF"}