@lightward/mechanic-cli 0.1.8 → 0.1.10

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 (55) hide show
  1. package/README.md +34 -7
  2. package/dist/client.d.ts +2 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +4 -0
  5. package/dist/commands/github/init.d.ts.map +1 -1
  6. package/dist/commands/github/init.js +2 -2
  7. package/dist/commands/globals/delete.d.ts +13 -0
  8. package/dist/commands/globals/delete.d.ts.map +1 -0
  9. package/dist/commands/globals/delete.js +28 -0
  10. package/dist/commands/globals/list.d.ts +10 -0
  11. package/dist/commands/globals/list.d.ts.map +1 -0
  12. package/dist/commands/globals/list.js +39 -0
  13. package/dist/commands/globals/pull.d.ts +11 -0
  14. package/dist/commands/globals/pull.d.ts.map +1 -0
  15. package/dist/commands/globals/pull.js +42 -0
  16. package/dist/commands/globals/push.d.ts +11 -0
  17. package/dist/commands/globals/push.d.ts.map +1 -0
  18. package/dist/commands/globals/push.js +57 -0
  19. package/dist/commands/globals/set.d.ts +13 -0
  20. package/dist/commands/globals/set.d.ts.map +1 -0
  21. package/dist/commands/globals/set.js +26 -0
  22. package/dist/commands/init.d.ts.map +1 -1
  23. package/dist/commands/init.js +1 -0
  24. package/dist/commands/secrets/delete.d.ts +13 -0
  25. package/dist/commands/secrets/delete.d.ts.map +1 -0
  26. package/dist/commands/secrets/delete.js +28 -0
  27. package/dist/commands/secrets/list.d.ts +10 -0
  28. package/dist/commands/secrets/list.d.ts.map +1 -0
  29. package/dist/commands/secrets/list.js +37 -0
  30. package/dist/commands/secrets/set.d.ts +25 -0
  31. package/dist/commands/secrets/set.d.ts.map +1 -0
  32. package/dist/commands/secrets/set.js +91 -0
  33. package/dist/commands/shop/deprecations.d.ts +20 -0
  34. package/dist/commands/shop/deprecations.d.ts.map +1 -0
  35. package/dist/commands/shop/deprecations.js +95 -0
  36. package/dist/commands/tasks/diff.d.ts.map +1 -1
  37. package/dist/commands/tasks/diff.js +4 -3
  38. package/dist/commands/tasks/list.d.ts.map +1 -1
  39. package/dist/commands/tasks/list.js +12 -1
  40. package/dist/commands/tasks/new.d.ts.map +1 -1
  41. package/dist/commands/tasks/new.js +10 -2
  42. package/dist/commands/tasks/push.d.ts +2 -1
  43. package/dist/commands/tasks/push.d.ts.map +1 -1
  44. package/dist/commands/tasks/push.js +43 -20
  45. package/dist/commands/tasks/status.d.ts +22 -4
  46. package/dist/commands/tasks/status.d.ts.map +1 -1
  47. package/dist/commands/tasks/status.js +66 -9
  48. package/dist/config-keys.d.ts +2 -0
  49. package/dist/config-keys.d.ts.map +1 -0
  50. package/dist/config-keys.js +8 -0
  51. package/dist/config.d.ts.map +1 -1
  52. package/dist/config.js +34 -3
  53. package/dist/types.d.ts +24 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/package.json +10 -3
@@ -1,14 +1,28 @@
1
1
  import { Args, Flags } from "@oclif/core";
2
2
  import path from "node:path";
3
3
  import { BaseCommand } from "../../base-command.js";
4
- import { linkForSlug } from "../../config.js";
4
+ import { linkForSlug, taskAdminUrl } from "../../config.js";
5
5
  import { pathExists } from "../../fs.js";
6
6
  import { stableStringify } from "../../json.js";
7
- import { displayTaskPath, helperDirForTaskFile, readRawTaskFile, remoteChangedSinceLastPull, remoteChangedSinceLastPullDetails, selectedTaskFiles, slugFromTaskFile, taskForPush, unbundledHelperDirForTaskFile, validateTaskForPush, } from "../../tasks.js";
7
+ import { displayTaskPath, helperDirForTaskFile, localChangedSinceLastSync, readRawTaskFile, remoteChangedSinceLastPull, remoteChangedSinceLastPullMessage, selectedTaskFiles, slugFromTaskFile, taskForPush, unbundledHelperDirForTaskFile, validateTaskForPush, } from "../../tasks.js";
8
8
  const IMPLICIT_REMOTE_CHECK_LIMIT = 25;
9
9
  function errorMessage(error) {
10
10
  return error instanceof Error ? error.message : String(error);
11
11
  }
12
+ function remoteTaskEnabled(envelope) {
13
+ if (typeof envelope.enabled === "boolean") {
14
+ return envelope.enabled;
15
+ }
16
+ if (typeof envelope.task.enabled === "boolean") {
17
+ return envelope.task.enabled;
18
+ }
19
+ return null;
20
+ }
21
+ function remoteTaskName(envelope) {
22
+ return typeof envelope.task.name === "string" && envelope.task.name.trim()
23
+ ? envelope.task.name
24
+ : envelope.id;
25
+ }
12
26
  export default class TasksStatus extends BaseCommand {
13
27
  static summary = "Show whether local task files are ready and in sync with Mechanic.";
14
28
  static description = `Show whether local task files are linked, ready to publish, and in sync with their remote Mechanic tasks. Repo-wide status checks remote state for up to ${IMPLICIT_REMOTE_CHECK_LIMIT} tasks; larger projects show local status only. Use --local to skip remote checks.`;
@@ -67,13 +81,13 @@ export default class TasksStatus extends BaseCommand {
67
81
  details.push(helperStatus.details);
68
82
  }
69
83
  const remote = checkRemote && task && !helperStatus.blocked
70
- ? await this.remoteStatus(link ? await getClient() : null, task, link)
84
+ ? await this.remoteStatus(project, link ? await getClient() : null, task, link, relativeFile)
71
85
  : checkRemote ? { label: "skipped", details: undefined } : null;
72
86
  if (remote?.details) {
73
87
  details.push(remote.details);
74
88
  }
75
89
  else if (!link && task && !helperStatus.blocked) {
76
- details.push("publish will create disabled task");
90
+ details.push("run publish --dry-run to check create plan");
77
91
  }
78
92
  statuses.push({
79
93
  file: relativeFile,
@@ -121,6 +135,7 @@ export default class TasksStatus extends BaseCommand {
121
135
  this.log("");
122
136
  }
123
137
  this.table(rows);
138
+ this.printSingleTaskInfo(project, statuses, checkRemote);
124
139
  }
125
140
  async helperStatus(project, file, task) {
126
141
  const helperDir = helperDirForTaskFile(file);
@@ -146,21 +161,52 @@ export default class TasksStatus extends BaseCommand {
146
161
  }
147
162
  return { label: "ready", blocked: false };
148
163
  }
149
- async remoteStatus(client, task, link) {
164
+ async remoteStatus(project, client, task, link, relativeFile) {
150
165
  if (!link) {
151
- return { label: "will create", details: "publish will create disabled task" };
166
+ return { label: "unlinked", details: "run publish --dry-run to check create plan" };
152
167
  }
153
168
  if (!client) {
154
169
  return { label: "not checked" };
155
170
  }
156
171
  const remote = await client.getTask(link.remote_id);
172
+ const taskDetails = {
173
+ task_id: remote.id,
174
+ task_name: remoteTaskName(remote),
175
+ updated_at: remote.updated_at || null,
176
+ enabled: remoteTaskEnabled(remote),
177
+ url: taskAdminUrl(project, remote.id),
178
+ };
157
179
  if (remoteChangedSinceLastPull(link, remote)) {
158
- return { label: "conflict", details: remoteChangedSinceLastPullDetails() };
180
+ return {
181
+ label: "conflict",
182
+ details: remoteChangedSinceLastPullMessage(relativeFile, link.remote_id, localChangedSinceLastSync(link, task)),
183
+ ...taskDetails,
184
+ };
159
185
  }
160
186
  if (stableStringify(taskForPush(task)) !== stableStringify(taskForPush(remote.task))) {
161
- return { label: "local changes", details: "publish would update" };
187
+ return { label: "local changes", details: "publish would update", ...taskDetails };
188
+ }
189
+ return { label: "no change", ...taskDetails };
190
+ }
191
+ printSingleTaskInfo(project, statuses, checkRemote) {
192
+ if (!checkRemote || statuses.length !== 1) {
193
+ return;
194
+ }
195
+ const status = statuses[0];
196
+ const remote = status.remote;
197
+ if (!remote?.task_id) {
198
+ return;
162
199
  }
163
- return { label: "no change" };
200
+ this.log("");
201
+ this.log(this.accent("Task details"));
202
+ this.table([
203
+ ["Field", "Value"],
204
+ ["Name", this.taskName(remote.task_name || remote.task_id)],
205
+ ["State", this.enabledLabel(remote.enabled)],
206
+ ["Updated", this.muted(remote.updated_at || "--")],
207
+ ["Task ID", this.taskId(project, remote.task_id)],
208
+ ["URL", this.taskName(remote.url || taskAdminUrl(project, remote.task_id))],
209
+ ]);
164
210
  }
165
211
  localLabel(label) {
166
212
  switch (label) {
@@ -185,6 +231,8 @@ export default class TasksStatus extends BaseCommand {
185
231
  return this.color("cyan", label);
186
232
  case "conflict":
187
233
  return this.color("red", label);
234
+ case "unlinked":
235
+ return this.color("yellow", label);
188
236
  case "skipped":
189
237
  case "not checked":
190
238
  return this.muted(label);
@@ -192,4 +240,13 @@ export default class TasksStatus extends BaseCommand {
192
240
  return label;
193
241
  }
194
242
  }
243
+ enabledLabel(enabled) {
244
+ if (enabled === true) {
245
+ return this.success("enabled");
246
+ }
247
+ if (enabled === false) {
248
+ return this.color("yellow", "disabled");
249
+ }
250
+ return this.muted("unknown");
251
+ }
195
252
  }
@@ -0,0 +1,2 @@
1
+ export declare function validateConfigKey(key: string): string;
2
+ //# sourceMappingURL=config-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-keys.d.ts","sourceRoot":"","sources":["../src/config-keys.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,8 @@
1
+ import { CliError } from "./errors.js";
2
+ const CONFIG_KEY_PATTERN = /^[a-z][a-z0-9_]*$/;
3
+ export function validateConfigKey(key) {
4
+ if (!CONFIG_KEY_PATTERN.test(key)) {
5
+ throw new CliError("Keys must use lower snake-case and match /^[a-z][a-z0-9_]*$/.", 2);
6
+ }
7
+ return key;
8
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhF,eAAO,MAAM,oBAAoB,QAAkE,CAAC;AA0BpG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBzD;AA+BD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,SAA4B,GAAG,MAAM,CAG9F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,SAAuB,EACjC,MAAM,SAA4D,GACjE,cAAc,CAOhB;AAED,wBAAgB,UAAU,IAAI,SAAS,CAEtC;AA6ED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,UAAQ,GACZ,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BhF;AAED,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCvE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjF;AAyBD,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CAmBX"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhF,eAAO,MAAM,oBAAoB,QAAkE,CAAC;AAwEpG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBzD;AA+BD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,SAA4B,GAAG,MAAM,CAG9F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,SAAuB,EACjC,MAAM,SAA4D,GACjE,cAAc,CAOhB;AAED,wBAAgB,UAAU,IAAI,SAAS,CAEtC;AA6ED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,UAAQ,GACZ,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BhF;AAED,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCvE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjF;AAyBD,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CAmBX"}
package/dist/config.js CHANGED
@@ -26,6 +26,37 @@ function parseConfigUrl(value, label) {
26
26
  throw new CliError(`${label} must be a valid URL.`);
27
27
  }
28
28
  }
29
+ function normalizeRelativeProjectPath(value, label) {
30
+ const normalizedInput = value.trim().replace(/\\/g, "/");
31
+ if (!normalizedInput
32
+ || path.posix.isAbsolute(normalizedInput)
33
+ || path.win32.isAbsolute(value)) {
34
+ throw new CliError(`${label} must be a relative path inside this Mechanic CLI project.`);
35
+ }
36
+ const normalized = path.posix.normalize(normalizedInput).replace(/\/+$/, "");
37
+ if (normalized === "."
38
+ || normalized === ".."
39
+ || normalized.startsWith("../")
40
+ || path.posix.isAbsolute(normalized)) {
41
+ throw new CliError(`${label} must be a relative path inside this Mechanic CLI project.`);
42
+ }
43
+ return normalized;
44
+ }
45
+ function normalizeTasksDirName(value) {
46
+ return normalizeRelativeProjectPath(value || DEFAULT_TASKS_DIR, "tasks_dir");
47
+ }
48
+ function normalizeLinkFile(slug, file, tasksDirName) {
49
+ const normalizedTasksDir = normalizeTasksDirName(tasksDirName);
50
+ const normalizedFile = normalizeRelativeProjectPath(file || `${normalizedTasksDir}/${slug}.json`, `.mechanic/links.json file for ${slug}`);
51
+ const relativeToTasksDir = path.posix.relative(normalizedTasksDir, normalizedFile);
52
+ if (relativeToTasksDir === ""
53
+ || relativeToTasksDir === ".."
54
+ || relativeToTasksDir.startsWith("../")
55
+ || path.posix.isAbsolute(relativeToTasksDir)) {
56
+ throw new CliError(`.mechanic/links.json file for ${slug} must be inside ${normalizedTasksDir}.`);
57
+ }
58
+ return normalizedFile;
59
+ }
29
60
  export function normalizeApiBaseUrl(value) {
30
61
  const url = parseConfigUrl(value, "api_base_url");
31
62
  const hostname = url.hostname.toLowerCase();
@@ -93,7 +124,7 @@ function normalizeLinkEntry(slug, entry, tasksDirName) {
93
124
  return null;
94
125
  }
95
126
  const normalized = {
96
- file: entry.file || `${tasksDirName}/${slug}.json`,
127
+ file: normalizeLinkFile(slug, entry.file, tasksDirName),
97
128
  remote_id: entry.remote_id,
98
129
  last_remote_content_hash: entry.last_remote_content_hash,
99
130
  };
@@ -107,7 +138,7 @@ function normalizeLegacyLinkEntry(slug, entry, tasksDirName) {
107
138
  return null;
108
139
  }
109
140
  return [slug, {
110
- file: `${tasksDirName}/${slug}.json`,
141
+ file: normalizeLinkFile(slug, undefined, tasksDirName),
111
142
  remote_id: entry.task_id,
112
143
  last_remote_content_hash: entry.last_remote_hash,
113
144
  }];
@@ -193,7 +224,7 @@ export async function loadProject(cwd = process.cwd()) {
193
224
  if (!config.api_base_url) {
194
225
  throw new CliError("mechanic.json must include api_base_url");
195
226
  }
196
- const tasksDirName = config.tasks_dir || DEFAULT_TASKS_DIR;
227
+ const tasksDirName = normalizeTasksDirName(config.tasks_dir);
197
228
  const linksPath = path.join(cwd, ".mechanic", "links.json");
198
229
  const links = normalizeLinks(await readJson(linksPath, emptyLinks()), config.shop_domain, tasksDirName);
199
230
  const apiBaseUrl = normalizeApiBaseUrl(process.env.MECHANIC_API_BASE_URL || config.api_base_url);
package/dist/types.d.ts CHANGED
@@ -29,6 +29,8 @@ export type TaskEnvelope = {
29
29
  id: string;
30
30
  updated_at?: string;
31
31
  content_hash: string;
32
+ enabled?: boolean | null;
33
+ shopify_api_version?: string | null;
32
34
  task: JsonObject;
33
35
  };
34
36
  export type TaskListResponse = {
@@ -153,4 +155,26 @@ export type ShopStatusResponse = {
153
155
  };
154
156
  checked_at: string;
155
157
  };
158
+ export type ShopDeprecationsResponse = {
159
+ shop: {
160
+ shopify_domain: string;
161
+ };
162
+ total_count?: number;
163
+ limit?: number;
164
+ truncated?: boolean;
165
+ deprecations: Array<{
166
+ id: number;
167
+ task_id: string;
168
+ task_name?: string | null;
169
+ task_shopify_api_version?: string | null;
170
+ reason: string;
171
+ shopify_api_version?: string | null;
172
+ request_method?: string | null;
173
+ request_path?: string | null;
174
+ response_code?: number | null;
175
+ occurrences_count?: number | null;
176
+ first_occurrence_at?: string | null;
177
+ last_occurrence_at?: string | null;
178
+ }>;
179
+ };
156
180
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,8BAA8B,EAAE,MAAM,EAAE,CAAC;KAC1C,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,aAAa,GAAG,+BAA+B,GAAG,gBAAgB,CAAC;QACzE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,2BAA2B,EAAE,OAAO,CAAC;KACtC,CAAC;IACF,WAAW,EAAE;QACX,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,OAAO,EAAE;YACP,GAAG,EAAE,MAAM,EAAE,CAAC;YACd,YAAY,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;QACF,OAAO,EAAE;YACP,GAAG,EAAE,MAAM,EAAE,CAAC;YACd,YAAY,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;QACF,QAAQ,EAAE;YACR,QAAQ,EAAE,OAAO,CAAC;YAClB,oBAAoB,EAAE,OAAO,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;QACjC,SAAS,EAAE,KAAK,CAAC;YACf,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;YAC7C,WAAW,EAAE,KAAK,CAAC;gBACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAC5B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;gBACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBACtB,MAAM,CAAC,EAAE,OAAO,CAAC;gBACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;aAC9C,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE;YAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAChE,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QACzE,SAAS,EAAE;YAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACxG,CAAC;IACF,GAAG,EAAE;QACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightward/mechanic-cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Develop, preview, diff, and publish Mechanic Shopify automation tasks from local files",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -18,6 +18,13 @@
18
18
  ],
19
19
  "author": "Lightward",
20
20
  "homepage": "https://learn.mechanic.dev/platform/mechanic-cli",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/lightward/mechanic-cli.git"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/lightward/mechanic-cli/issues"
27
+ },
21
28
  "bin": {
22
29
  "mechanic": "./bin/mechanic.js"
23
30
  },
@@ -40,10 +47,10 @@
40
47
  "description": "Manage the stored API token for this project."
41
48
  },
42
49
  "github": {
43
- "description": "Generate GitHub Actions workflows for Mechanic task updates."
50
+ "description": "Generate optional GitHub Actions workflows for Mechanic task updates."
44
51
  },
45
52
  "shop": {
46
- "description": "Inspect this shop's Mechanic queue and backlog."
53
+ "description": "Inspect this shop's Mechanic queue, backlog, and deprecations."
47
54
  },
48
55
  "tasks": {
49
56
  "description": "List, pull, edit, diff, and publish Mechanic tasks."