@notambourine/metafields 0.0.6 → 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.
- package/README.md +128 -73
- package/dist/admin-shapes.d.ts +57 -0
- package/dist/admin-shapes.d.ts.map +1 -0
- package/dist/admin-shapes.js +67 -0
- package/dist/admin-shapes.js.map +1 -0
- package/dist/admin.d.ts +8 -3
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +187 -102
- package/dist/admin.js.map +1 -1
- package/dist/app-config.d.ts +5 -0
- package/dist/app-config.d.ts.map +1 -0
- package/dist/app-config.js +50 -0
- package/dist/app-config.js.map +1 -0
- package/dist/builders.js +2 -2
- package/dist/builders.js.map +1 -1
- package/dist/changes.d.ts +20 -0
- package/dist/changes.d.ts.map +1 -0
- package/dist/changes.js +85 -0
- package/dist/changes.js.map +1 -0
- package/dist/cli.js +156 -73
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +16 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +61 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fleet.d.ts +10 -3
- package/dist/fleet.d.ts.map +1 -1
- package/dist/fleet.js +20 -11
- package/dist/fleet.js.map +1 -1
- package/dist/generator.js +1 -1
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/liquid.d.ts.map +1 -1
- package/dist/liquid.js +4 -19
- package/dist/liquid.js.map +1 -1
- package/dist/metafield-types.d.ts +601 -0
- package/dist/metafield-types.d.ts.map +1 -0
- package/dist/metafield-types.js +150 -0
- package/dist/metafield-types.js.map +1 -0
- package/dist/migration.d.ts +3 -2
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +4 -6
- package/dist/migration.js.map +1 -1
- package/dist/planner.d.ts +4 -2
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +10 -3
- package/dist/planner.js.map +1 -1
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +3 -62
- package/dist/pull.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -1
- package/dist/type-check.d.ts +14 -0
- package/dist/type-check.d.ts.map +1 -0
- package/dist/type-check.js +61 -0
- package/dist/type-check.js.map +1 -0
- package/dist/type-registry.d.ts +21 -0
- package/dist/type-registry.d.ts.map +1 -0
- package/dist/type-registry.js +48 -0
- package/dist/type-registry.js.map +1 -0
- package/package.json +3 -2
package/dist/changes.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function classifyDrift(plan) {
|
|
2
|
+
const items = [];
|
|
3
|
+
for (const item of plan.items) {
|
|
4
|
+
if (item.status === 'CREATE')
|
|
5
|
+
continue;
|
|
6
|
+
const buckets = { apply: [], force: [], blocked: [] };
|
|
7
|
+
// Labels are safe to rewrite but remain notices, so cosmetic-only drift still exits 0.
|
|
8
|
+
for (const reason of [...item.reasons, ...item.notices])
|
|
9
|
+
buckets[bucketFor(item, reason)].push(reason);
|
|
10
|
+
const entry = { item, applies: buckets.apply, needsForce: buckets.force, blocked: buckets.blocked };
|
|
11
|
+
if (entry.applies.length + entry.needsForce.length + entry.blocked.length > 0)
|
|
12
|
+
items.push(entry);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
items,
|
|
16
|
+
applies: items.filter((entry) => writes(entry, false)).length,
|
|
17
|
+
needsForce: items.filter((entry) => !writes(entry, false) && writes(entry, true)).length,
|
|
18
|
+
blocked: items.filter((entry) => entry.blocked.length > 0).length,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// The definitions this run rewrites. Everything else is left exactly as the store has it.
|
|
22
|
+
export function written(drift, force) {
|
|
23
|
+
return drift.items.filter((entry) => writes(entry, force));
|
|
24
|
+
}
|
|
25
|
+
// The drift still standing after this run: what force cannot reach, plus what it could have
|
|
26
|
+
// reached had it been passed. Post-apply verification ignores these; the exit code does not.
|
|
27
|
+
export function deferred(drift, force) {
|
|
28
|
+
return drift.items.filter((entry) => !writes(entry, force));
|
|
29
|
+
}
|
|
30
|
+
// The attributes an update carries, so a write never states an opinion about something the
|
|
31
|
+
// operator did not declare drifted.
|
|
32
|
+
export function changedPaths(entry, force) {
|
|
33
|
+
const reasons = force ? [...entry.applies, ...entry.needsForce] : entry.applies;
|
|
34
|
+
return reasons.map((reason) => attribute(entry.item, reason));
|
|
35
|
+
}
|
|
36
|
+
// Reasons carry the item identity for metafields but not for metaobjects, so strip it before
|
|
37
|
+
// matching an attribute path.
|
|
38
|
+
export function attribute(item, reason) {
|
|
39
|
+
return reason.startsWith(`${item.identity}.`) ? reason.slice(item.identity.length + 1) : reason;
|
|
40
|
+
}
|
|
41
|
+
// Why `--force` is the wrong reach. Someone hitting an unrelated refusal and typing `--force`
|
|
42
|
+
// is the one failure mode a generic flag name creates; saying so where they are looking closes it.
|
|
43
|
+
export function blockedAdvice(item, reason) {
|
|
44
|
+
const path = attribute(item, reason);
|
|
45
|
+
if (/(^|\.)type: expected /.test(path)) {
|
|
46
|
+
return 'Shopify will not retype a definition that holds values. --force cannot do this; use a migration.';
|
|
47
|
+
}
|
|
48
|
+
if (path.startsWith('stored values include ')) {
|
|
49
|
+
return 'Invalid stored values are data, not shape. --force cannot do this; correct the values.';
|
|
50
|
+
}
|
|
51
|
+
if (item.status === 'INDETERMINATE') {
|
|
52
|
+
return 'Shopify is still validating stored values. --force cannot do this; wait and re-run.';
|
|
53
|
+
}
|
|
54
|
+
return 'This definition cannot be read back for update. --force cannot do this.';
|
|
55
|
+
}
|
|
56
|
+
function writes(entry, force) {
|
|
57
|
+
return entry.blocked.length === 0 && (force || entry.needsForce.length === 0);
|
|
58
|
+
}
|
|
59
|
+
function bucketFor(item, reason) {
|
|
60
|
+
// IN_PROGRESS validation: wait, do not write, not even a label.
|
|
61
|
+
if (item.status === 'INDETERMINATE')
|
|
62
|
+
return 'blocked';
|
|
63
|
+
// A metaobject update needs the definition's Shopify id, which only a read supplies.
|
|
64
|
+
if (item.kind === 'metaobject' && item.existing?.id === undefined)
|
|
65
|
+
return 'blocked';
|
|
66
|
+
const path = attribute(item, reason);
|
|
67
|
+
// Shopify will not retype a definition that has stored values; that is what migrations are for.
|
|
68
|
+
if (/(^|\.)type: expected /.test(path))
|
|
69
|
+
return 'blocked';
|
|
70
|
+
// Invalid stored values are data, not shape.
|
|
71
|
+
if (path.startsWith('stored values include '))
|
|
72
|
+
return 'blocked';
|
|
73
|
+
// Risk follows the attribute, not direction; capabilities are the exception because their
|
|
74
|
+
// direction is explicit and enabling one is harmless.
|
|
75
|
+
if (/(^|\.)capabilities\.[^:]+: expected false/.test(path))
|
|
76
|
+
return 'force';
|
|
77
|
+
if (/(^|\.)access\./.test(path))
|
|
78
|
+
return 'force';
|
|
79
|
+
if (/(^|\.)(validations|constraints) differ$/.test(path))
|
|
80
|
+
return 'force';
|
|
81
|
+
if (/(^|\.)required: expected true/.test(path))
|
|
82
|
+
return 'force';
|
|
83
|
+
return 'apply';
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changes.js","sourceRoot":"","sources":["../src/changes.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { mkdir, open, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { dirname, resolve } from 'node:path';
|
|
4
4
|
import { AdminClient, DEFAULT_API_VERSION } from './admin.js';
|
|
5
|
+
import { readAppConfig } from './app-config.js';
|
|
5
6
|
import { mintAccessToken } from './auth.js';
|
|
6
7
|
import { fleetExitCode, synchronizeFleet } from './fleet.js';
|
|
7
8
|
import { generateSchemaModule } from './generator.js';
|
|
@@ -9,14 +10,16 @@ import { descriptionViolations } from './limits.js';
|
|
|
9
10
|
import { loadDefault, loadSchema } from './loader.js';
|
|
10
11
|
import { assertCompiledMigration, compileMigration, migrationExitCode, MIGRATION_MARKER, runMigration, } from './migration.js';
|
|
11
12
|
import { emitLiquidMetafields, isLiquidMetafieldsFile } from './liquid.js';
|
|
13
|
+
import { blockedAdvice } from './changes.js';
|
|
12
14
|
import { pullSchema } from './pull.js';
|
|
13
15
|
import { compileSchema, OWNER_TYPES, SCHEMA_MARKER, stringifyCanonical } from './schema.js';
|
|
16
|
+
import { doctorExitCode, runDoctor } from './doctor.js';
|
|
14
17
|
const valueOptions = new Set([
|
|
15
|
-
'store', 'stores-from', 'client-id', 'api-version', 'owner', 'namespace', 'out',
|
|
18
|
+
'store', 'stores-from', 'client-id', 'app-config', 'api-version', 'owner', 'namespace', 'out',
|
|
16
19
|
]);
|
|
17
20
|
const booleanOptions = new Set([
|
|
18
|
-
'apply', '
|
|
19
|
-
'help', 'version',
|
|
21
|
+
'apply', 'force', 'dry-run', 'json', 'validate', 'metaobjects', 'all-owners', 'all-namespaces',
|
|
22
|
+
'liquid', 'help', 'version',
|
|
20
23
|
]);
|
|
21
24
|
async function main(argv) {
|
|
22
25
|
const args = parseArguments(argv);
|
|
@@ -28,8 +31,9 @@ async function main(argv) {
|
|
|
28
31
|
process.stdout.write(`${await packageVersion()}\n`);
|
|
29
32
|
return 0;
|
|
30
33
|
}
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
// Alone it modifies nothing: there is no write for it to widen.
|
|
35
|
+
if (args.flags.has('force') && !args.flags.has('apply') && args.command !== 'emit') {
|
|
36
|
+
throw new Error('--force requires --apply');
|
|
33
37
|
}
|
|
34
38
|
if (args.command === 'compile')
|
|
35
39
|
return compileCommand(args);
|
|
@@ -39,8 +43,29 @@ async function main(argv) {
|
|
|
39
43
|
return pullCommand(args);
|
|
40
44
|
if (args.command === 'migrate')
|
|
41
45
|
return migrateCommand(args);
|
|
46
|
+
if (args.command === 'doctor')
|
|
47
|
+
return doctorCommand(args);
|
|
42
48
|
return syncCommand(args);
|
|
43
49
|
}
|
|
50
|
+
// The one command that reaches Shopify without a store: shopify.dev proxies the type list to
|
|
51
|
+
// anyone. Kept out of sync so that no store operation depends on shopify.dev being up.
|
|
52
|
+
async function doctorCommand(args) {
|
|
53
|
+
if (args.positional.length > 0)
|
|
54
|
+
throw new Error('doctor accepts no positional arguments');
|
|
55
|
+
const report = await runDoctor(oneValue(args, 'api-version', false));
|
|
56
|
+
output(args, { installed: await packageVersion(), ...report }, renderDoctor(report));
|
|
57
|
+
return doctorExitCode(report);
|
|
58
|
+
}
|
|
59
|
+
function renderDoctor(report) {
|
|
60
|
+
const lines = [];
|
|
61
|
+
for (const check of report.checks) {
|
|
62
|
+
lines.push(`${check.ok ? 'OK ' : 'FAIL'} ${check.summary}`);
|
|
63
|
+
for (const line of check.details)
|
|
64
|
+
lines.push(` ${line}`);
|
|
65
|
+
}
|
|
66
|
+
lines.push('');
|
|
67
|
+
return lines.join('\n');
|
|
68
|
+
}
|
|
44
69
|
async function syncCommand(args) {
|
|
45
70
|
const path = onlyPositional(args, 'schema module');
|
|
46
71
|
const schema = await loadSchema(path);
|
|
@@ -57,29 +82,23 @@ async function syncCommand(args) {
|
|
|
57
82
|
}
|
|
58
83
|
const mode = modeFrom(args);
|
|
59
84
|
const targets = await storeTargets(args);
|
|
60
|
-
const result = await synchronizeFleet(targets, schema, mode, connectorFrom(args, targets.length)
|
|
85
|
+
const result = await synchronizeFleet(targets, schema, mode, await connectorFrom(args, targets.length), {
|
|
86
|
+
force: args.flags.has('force'),
|
|
87
|
+
});
|
|
61
88
|
output(args, result, renderFleet(result));
|
|
62
|
-
return fleetExitCode(result
|
|
89
|
+
return fleetExitCode(result);
|
|
63
90
|
}
|
|
64
91
|
async function pullCommand(args) {
|
|
65
92
|
if (args.positional.length > 0)
|
|
66
93
|
throw new Error('pull accepts no positional arguments');
|
|
67
94
|
const allOwners = args.flags.has('all-owners');
|
|
68
|
-
const ownerValues =
|
|
69
|
-
if (allOwners && ownerValues.length > 0)
|
|
70
|
-
throw new Error('--all-owners and --owner are mutually exclusive');
|
|
71
|
-
if (!allOwners && ownerValues.length === 0)
|
|
72
|
-
throw new Error('pull requires --owner or --all-owners');
|
|
95
|
+
const ownerValues = requireExactlyOne(args, 'owner', 'all-owners');
|
|
73
96
|
const owners = (allOwners ? Object.keys(OWNER_TYPES) : ownerValues);
|
|
74
97
|
for (const owner of owners)
|
|
75
98
|
if (!(owner in OWNER_TYPES))
|
|
76
99
|
throw new Error(`unsupported owner: ${owner}`);
|
|
77
100
|
const allNamespaces = args.flags.has('all-namespaces');
|
|
78
|
-
const namespaces =
|
|
79
|
-
if (allNamespaces && namespaces.length > 0)
|
|
80
|
-
throw new Error('--all-namespaces and --namespace are mutually exclusive');
|
|
81
|
-
if (!allNamespaces && namespaces.length === 0)
|
|
82
|
-
throw new Error('pull requires --namespace or --all-namespaces');
|
|
101
|
+
const namespaces = requireExactlyOne(args, 'namespace', 'all-namespaces');
|
|
83
102
|
const pulled = await pullSchema(await clientFrom(args), {
|
|
84
103
|
owners,
|
|
85
104
|
namespaces,
|
|
@@ -87,21 +106,12 @@ async function pullCommand(args) {
|
|
|
87
106
|
metaobjects: args.flags.has('metaobjects'),
|
|
88
107
|
});
|
|
89
108
|
const generated = generateSchemaModule(pulled);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
else if (args.flags.has('json')) {
|
|
98
|
-
output(args, { schema: generated, excluded: pulled.excluded }, '');
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
process.stdout.write(generated);
|
|
102
|
-
for (const identity of pulled.excluded)
|
|
103
|
-
process.stderr.write(`EXCLUDED ${identity}\n`);
|
|
104
|
-
}
|
|
109
|
+
await deliver(args, {
|
|
110
|
+
key: 'schema',
|
|
111
|
+
value: generated,
|
|
112
|
+
text: generated,
|
|
113
|
+
notes: { key: 'excluded', identities: pulled.excluded },
|
|
114
|
+
});
|
|
105
115
|
return 0;
|
|
106
116
|
}
|
|
107
117
|
async function compileCommand(args) {
|
|
@@ -114,17 +124,7 @@ async function compileCommand(args) {
|
|
|
114
124
|
compiled = compileMigration(value);
|
|
115
125
|
else
|
|
116
126
|
throw new Error('default export is neither a schema nor a migration declaration');
|
|
117
|
-
|
|
118
|
-
const out = oneValue(args, 'out', false);
|
|
119
|
-
if (out) {
|
|
120
|
-
const handle = await open(resolve(process.cwd(), out), 'wx');
|
|
121
|
-
await handle.writeFile(text);
|
|
122
|
-
await handle.close();
|
|
123
|
-
process.stdout.write(`WROTE ${out}\n`);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
process.stdout.write(text);
|
|
127
|
-
}
|
|
127
|
+
await deliver(args, { key: 'compiled', value: compiled, text: stringifyCanonical(compiled) });
|
|
128
128
|
return 0;
|
|
129
129
|
}
|
|
130
130
|
async function emitCommand(args) {
|
|
@@ -132,24 +132,24 @@ async function emitCommand(args) {
|
|
|
132
132
|
if (!args.flags.has('liquid'))
|
|
133
133
|
throw new Error('emit requires an output format: --liquid');
|
|
134
134
|
const { definitions, skipped } = emitLiquidMetafields(await loadSchema(path));
|
|
135
|
-
const text = stringifyCanonical(definitions);
|
|
136
135
|
const out = oneValue(args, 'out', false);
|
|
137
|
-
if (
|
|
138
|
-
process.
|
|
139
|
-
for (const identity of skipped)
|
|
140
|
-
process.stderr.write(`SKIPPED ${identity}\n`);
|
|
141
|
-
return 0;
|
|
136
|
+
if (out !== undefined) {
|
|
137
|
+
await assertGeneratedTarget(resolve(process.cwd(), out), args.flags.has('force'));
|
|
142
138
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
139
|
+
await deliver(args, {
|
|
140
|
+
key: 'definitions',
|
|
141
|
+
value: definitions,
|
|
142
|
+
text: stringifyCanonical(definitions),
|
|
143
|
+
notes: { key: 'skipped', identities: skipped },
|
|
144
|
+
overwrite: true,
|
|
145
|
+
});
|
|
148
146
|
return 0;
|
|
149
147
|
}
|
|
150
148
|
// The target is a regenerated editor cache, so emit replaces it. Anything that is not
|
|
151
|
-
// already one is refused rather than overwritten.
|
|
152
|
-
async function assertGeneratedTarget(target) {
|
|
149
|
+
// already one is refused rather than overwritten, until --force says otherwise.
|
|
150
|
+
async function assertGeneratedTarget(target, force) {
|
|
151
|
+
if (force)
|
|
152
|
+
return;
|
|
153
153
|
let existing;
|
|
154
154
|
try {
|
|
155
155
|
existing = await readFile(target, 'utf8');
|
|
@@ -180,7 +180,7 @@ async function migrateCommand(args) {
|
|
|
180
180
|
`invalid=${result.invalid} conflicts=${result.conflicts} applied=${result.applied}`,
|
|
181
181
|
'',
|
|
182
182
|
].join('\n'));
|
|
183
|
-
return migrationExitCode(result
|
|
183
|
+
return migrationExitCode(result);
|
|
184
184
|
}
|
|
185
185
|
function parseArguments(argv) {
|
|
186
186
|
const values = new Map();
|
|
@@ -189,7 +189,7 @@ function parseArguments(argv) {
|
|
|
189
189
|
let command = 'sync';
|
|
190
190
|
const rest = [...argv];
|
|
191
191
|
const first = rest[0];
|
|
192
|
-
if (first && ['sync', 'pull', 'compile', 'emit', 'migrate', 'help', 'version'].includes(first)) {
|
|
192
|
+
if (first && ['sync', 'pull', 'compile', 'emit', 'migrate', 'doctor', 'help', 'version'].includes(first)) {
|
|
193
193
|
command = rest.shift();
|
|
194
194
|
}
|
|
195
195
|
while (rest.length > 0) {
|
|
@@ -220,12 +220,10 @@ function parseArguments(argv) {
|
|
|
220
220
|
}
|
|
221
221
|
return { command, positional, values, flags };
|
|
222
222
|
}
|
|
223
|
+
// --dry-run cancels whatever write was asked for, so the exact command line CI runs takes one
|
|
224
|
+
// appended flag to show what it would do.
|
|
223
225
|
function modeFrom(args) {
|
|
224
|
-
|
|
225
|
-
return 'apply';
|
|
226
|
-
if (args.flags.has('check'))
|
|
227
|
-
return 'check';
|
|
228
|
-
return 'dry-run';
|
|
226
|
+
return args.flags.has('apply') && !args.flags.has('dry-run') ? 'apply' : 'dry-run';
|
|
229
227
|
}
|
|
230
228
|
async function storeTargets(args) {
|
|
231
229
|
const targets = new Map();
|
|
@@ -244,10 +242,21 @@ async function storeTargets(args) {
|
|
|
244
242
|
throw new Error('--store or --stores-from is required');
|
|
245
243
|
return [...targets.values()];
|
|
246
244
|
}
|
|
247
|
-
|
|
245
|
+
// Most explicit source first. The app TOML the Shopify CLI already requires carries the client
|
|
246
|
+
// id, so a caller should not have to cut it out of the file to pass --client-id.
|
|
247
|
+
async function clientIdFrom(args) {
|
|
248
|
+
const explicit = oneValue(args, 'client-id', false);
|
|
249
|
+
if (explicit !== undefined)
|
|
250
|
+
return explicit;
|
|
251
|
+
const appConfig = oneValue(args, 'app-config', false);
|
|
252
|
+
if (appConfig !== undefined)
|
|
253
|
+
return (await readAppConfig(resolve(process.cwd(), appConfig))).clientId;
|
|
254
|
+
return process.env.SHOPIFY_APP_CLIENT_ID ?? '';
|
|
255
|
+
}
|
|
256
|
+
async function connectorFrom(args, storeCount) {
|
|
248
257
|
const apiVersion = oneValue(args, 'api-version', false) ?? DEFAULT_API_VERSION;
|
|
249
258
|
// guarddog: the three documented auth inputs, read here only to reach the named stores.
|
|
250
|
-
const clientId =
|
|
259
|
+
const clientId = await clientIdFrom(args);
|
|
251
260
|
const clientSecret = process.env.SHOPIFY_APP_SECRET ?? ''; // guarddog: see above
|
|
252
261
|
const token = process.env.SHOPIFY_ADMIN_ACCESS_TOKEN ?? ''; // guarddog: see above
|
|
253
262
|
if (clientId.length > 0 && clientSecret.length > 0) {
|
|
@@ -271,11 +280,49 @@ function connectorFrom(args, storeCount) {
|
|
|
271
280
|
throw new Error('SHOPIFY_ADMIN_ACCESS_TOKEN reaches one store; a fleet needs SHOPIFY_APP_CLIENT_ID and SHOPIFY_APP_SECRET');
|
|
272
281
|
}
|
|
273
282
|
async function clientFrom(args) {
|
|
274
|
-
return connectorFrom(args, 1)(oneValue(args, 'store', true));
|
|
283
|
+
return (await connectorFrom(args, 1))(oneValue(args, 'store', true));
|
|
275
284
|
}
|
|
276
285
|
function values(args, name) {
|
|
277
286
|
return args.values.get(name) ?? [];
|
|
278
287
|
}
|
|
288
|
+
// emit regenerates an editor cache in place; pull and compile refuse to clobber anything.
|
|
289
|
+
async function writeOut(out, text, overwrite = false) {
|
|
290
|
+
const path = resolve(process.cwd(), out);
|
|
291
|
+
if (!overwrite) {
|
|
292
|
+
const handle = await open(path, 'wx');
|
|
293
|
+
await handle.writeFile(text);
|
|
294
|
+
await handle.close();
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
await mkdir(dirname(path), { recursive: true });
|
|
298
|
+
await writeFile(path, text);
|
|
299
|
+
}
|
|
300
|
+
async function deliver(args, delivery) {
|
|
301
|
+
const notes = delivery.notes ? { [delivery.notes.key]: delivery.notes.identities } : {};
|
|
302
|
+
const out = oneValue(args, 'out', false);
|
|
303
|
+
if (out !== undefined) {
|
|
304
|
+
await writeOut(out, delivery.text, delivery.overwrite);
|
|
305
|
+
output(args, { status: 'written', out, ...notes }, `WROTE ${out}\n`);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (args.flags.has('json')) {
|
|
309
|
+
output(args, { [delivery.key]: delivery.value, ...notes }, '');
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
process.stdout.write(delivery.text);
|
|
313
|
+
for (const identity of delivery.notes?.identities ?? []) {
|
|
314
|
+
process.stderr.write(`${delivery.notes?.key.toUpperCase()} ${identity}\n`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function requireExactlyOne(args, name, allFlag) {
|
|
318
|
+
const selected = values(args, name);
|
|
319
|
+
const all = args.flags.has(allFlag);
|
|
320
|
+
if (all && selected.length > 0)
|
|
321
|
+
throw new Error(`--${allFlag} and --${name} are mutually exclusive`);
|
|
322
|
+
if (!all && selected.length === 0)
|
|
323
|
+
throw new Error(`${args.command} requires --${name} or --${allFlag}`);
|
|
324
|
+
return selected;
|
|
325
|
+
}
|
|
279
326
|
function oneValue(args, name, required) {
|
|
280
327
|
const found = values(args, name);
|
|
281
328
|
if (found.length > 1)
|
|
@@ -303,14 +350,43 @@ function renderFleet(result) {
|
|
|
303
350
|
lines.push(`STORE ${outcome.store}`);
|
|
304
351
|
for (const item of outcome.plan?.items ?? [])
|
|
305
352
|
lines.push(...renderItem(item));
|
|
306
|
-
|
|
307
|
-
|
|
353
|
+
const updated = new Set(outcome.updated ?? []);
|
|
354
|
+
const skipped = new Set(outcome.skipped ?? []);
|
|
355
|
+
for (const entry of outcome.drift?.items ?? []) {
|
|
356
|
+
// The reasons are already above, under the plan item; only a refusal repeats one, next to
|
|
357
|
+
// the line that says what to do about it.
|
|
358
|
+
if (updated.has(entry.item.identity))
|
|
359
|
+
lines.push(`UPDATED ${entry.item.identity}`);
|
|
360
|
+
else if (!skipped.has(entry.item.identity))
|
|
361
|
+
lines.push(`UPDATE ${entry.item.identity}`);
|
|
362
|
+
else
|
|
363
|
+
lines.push(...renderSkipped(entry));
|
|
364
|
+
}
|
|
365
|
+
for (const identity of outcome.created ?? [])
|
|
366
|
+
lines.push(`CREATED ${identity}`);
|
|
308
367
|
if (outcome.refused !== undefined)
|
|
309
368
|
lines.push(`REFUSED ${outcome.store}: ${outcome.refused}`);
|
|
310
369
|
}
|
|
311
370
|
lines.push('');
|
|
312
371
|
return lines.join('\n');
|
|
313
372
|
}
|
|
373
|
+
// The refusal carries the teaching, so the generic flag name costs nothing. BLOCKED matters
|
|
374
|
+
// most: saying "--force cannot do this" is what stops someone reaching for it here.
|
|
375
|
+
function renderSkipped(entry) {
|
|
376
|
+
if (entry.blocked.length === 0) {
|
|
377
|
+
return [
|
|
378
|
+
`SKIPPED ${entry.item.identity}`,
|
|
379
|
+
...entry.needsForce.map((reason) => ` ${reason}`),
|
|
380
|
+
' re-run with --force to apply it',
|
|
381
|
+
];
|
|
382
|
+
}
|
|
383
|
+
const advice = [...new Set(entry.blocked.map((reason) => blockedAdvice(entry.item, reason)))];
|
|
384
|
+
return [
|
|
385
|
+
`BLOCKED ${entry.item.identity}`,
|
|
386
|
+
...entry.blocked.map((reason) => ` ${reason}`),
|
|
387
|
+
...advice.map((line) => ` ${line}`),
|
|
388
|
+
];
|
|
389
|
+
}
|
|
314
390
|
function renderItem(item) {
|
|
315
391
|
return [
|
|
316
392
|
`${item.status} ${item.identity}`,
|
|
@@ -333,19 +409,25 @@ async function help() {
|
|
|
333
409
|
|
|
334
410
|
Usage:
|
|
335
411
|
metafields <schema.ts> --validate
|
|
336
|
-
metafields <schema.ts> --store <store.myshopify.com> [--
|
|
412
|
+
metafields <schema.ts> --store <store.myshopify.com> [--json]
|
|
413
|
+
metafields <schema.ts> --store <store.myshopify.com> --apply [--force] [--dry-run]
|
|
337
414
|
metafields <schema.ts> --store <a> --store <b> --stores-from <stores.txt> [--apply]
|
|
338
415
|
metafields pull --store <store.myshopify.com> --owner <owner> --namespace <namespace>
|
|
339
416
|
[--metaobjects] [--out <schema.ts>]
|
|
340
417
|
metafields compile <schema-or-migration.ts> [--out <compiled.json>]
|
|
341
|
-
metafields emit <schema.ts> --liquid [--out .shopify/metafields.json]
|
|
418
|
+
metafields emit <schema.ts> --liquid [--out .shopify/metafields.json] [--force]
|
|
342
419
|
metafields migrate <compiled-migration.json> --store <store.myshopify.com>
|
|
343
|
-
[--apply
|
|
420
|
+
[--apply] [--dry-run] [--json]
|
|
421
|
+
metafields doctor [--api-version <YYYY-MM>] [--json]
|
|
344
422
|
|
|
345
423
|
Options:
|
|
346
424
|
--store <host> Target store; repeat for a fleet
|
|
347
425
|
--stores-from <file> Sweep the stores listed one per line, '#' comments allowed
|
|
348
|
-
--client-id <id> App client id
|
|
426
|
+
--client-id <id> App client id; wins over --app-config and SHOPIFY_APP_CLIENT_ID
|
|
427
|
+
--app-config <path> Read client_id from a Shopify app TOML
|
|
428
|
+
--apply Make the store match the schema
|
|
429
|
+
--force Apply updates that can break a live storefront or strand stored values
|
|
430
|
+
--dry-run Report the writes --apply would make and make none
|
|
349
431
|
--api-version <YYYY-MM> Shopify Admin API version (default: ${DEFAULT_API_VERSION})
|
|
350
432
|
--all-owners Pull every supported owner type
|
|
351
433
|
--all-namespaces Pull every merchant-owned namespace
|
|
@@ -354,7 +436,8 @@ Options:
|
|
|
354
436
|
--version Show version
|
|
355
437
|
|
|
356
438
|
Auth reads SHOPIFY_APP_CLIENT_ID and SHOPIFY_APP_SECRET to mint a short-lived Admin token
|
|
357
|
-
per store, or SHOPIFY_ADMIN_ACCESS_TOKEN for a single store.
|
|
439
|
+
per store, or SHOPIFY_ADMIN_ACCESS_TOKEN for a single store. The client id can also come from
|
|
440
|
+
--client-id or --app-config ./shopify.app.toml; the secret is always an environment variable.
|
|
358
441
|
`;
|
|
359
442
|
}
|
|
360
443
|
main(process.argv.slice(2)).then((code) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Registry } from './type-registry.js';
|
|
2
|
+
export interface DoctorCheck {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly ok: boolean;
|
|
5
|
+
readonly summary: string;
|
|
6
|
+
readonly details: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
export interface DoctorReport {
|
|
9
|
+
readonly version: string;
|
|
10
|
+
readonly healthy: boolean;
|
|
11
|
+
readonly checks: readonly DoctorCheck[];
|
|
12
|
+
}
|
|
13
|
+
export type FetchRegistry = (version: string) => Promise<Registry>;
|
|
14
|
+
export declare function runDoctor(version?: string, fetch?: FetchRegistry): Promise<DoctorReport>;
|
|
15
|
+
export declare function doctorExitCode(report: DoctorReport): number;
|
|
16
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgC,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAMnE,wBAAsB,SAAS,CAC7B,OAAO,GAAE,MAA4B,EACrC,KAAK,GAAE,aAA6B,GACnC,OAAO,CAAC,YAAY,CAAC,CA6CvB;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE3D"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Checks whether this release describes the selected Shopify API without store credentials.
|
|
2
|
+
// Actionable differences are findings; checks that cannot run throw instead.
|
|
3
|
+
import { DEFAULT_API_VERSION } from './admin.js';
|
|
4
|
+
import { compareRegistry } from './type-check.js';
|
|
5
|
+
import { fetchRegistry, RegistryError } from './type-registry.js';
|
|
6
|
+
function report(version, checks) {
|
|
7
|
+
return { version, healthy: checks.every((check) => check.ok), checks };
|
|
8
|
+
}
|
|
9
|
+
export async function runDoctor(version = DEFAULT_API_VERSION, fetch = fetchRegistry) {
|
|
10
|
+
let registry;
|
|
11
|
+
try {
|
|
12
|
+
registry = await fetch(version);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error instanceof RegistryError && error.kind === 'unsupported-version') {
|
|
16
|
+
return report(version, [{
|
|
17
|
+
name: 'api-version',
|
|
18
|
+
ok: false,
|
|
19
|
+
summary: `api version ${version} is not one Shopify serves`,
|
|
20
|
+
details: [
|
|
21
|
+
version === DEFAULT_API_VERSION
|
|
22
|
+
? 'this release pins a version that has aged out; upgrade @notambourine/metafields'
|
|
23
|
+
: 'pass --api-version with a version Shopify still supports',
|
|
24
|
+
],
|
|
25
|
+
}]);
|
|
26
|
+
}
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
const types = compareRegistry(registry);
|
|
30
|
+
const differences = [
|
|
31
|
+
...types.types.map((difference) => detail(difference.kind, 'type', difference.name, difference.detail)),
|
|
32
|
+
...types.owners.map((difference) => detail(difference.kind, 'owner', difference.name, difference.detail)),
|
|
33
|
+
];
|
|
34
|
+
return report(version, [
|
|
35
|
+
{
|
|
36
|
+
name: 'api-version',
|
|
37
|
+
ok: true,
|
|
38
|
+
summary: `api version ${version} is supported`,
|
|
39
|
+
details: [],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'metafield-types',
|
|
43
|
+
ok: types.matches,
|
|
44
|
+
summary: types.matches
|
|
45
|
+
? `type table matches the Admin API ${version}`
|
|
46
|
+
: `type table differs from the Admin API ${version}`,
|
|
47
|
+
// No upgrade carries a table for a version this release was not generated against, so
|
|
48
|
+
// saying "upgrade" off-version would send someone after a release that cannot exist.
|
|
49
|
+
details: types.matches ? [] : [...differences, version === DEFAULT_API_VERSION
|
|
50
|
+
? 'upgrade @notambourine/metafields, or open an issue if it is already current'
|
|
51
|
+
: `this release ships the table for ${DEFAULT_API_VERSION}, not ${version}`],
|
|
52
|
+
},
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
function detail(kind, noun, name, extra) {
|
|
56
|
+
return `${kind} ${noun} ${name}${extra === undefined ? '' : `: ${extra}`}`;
|
|
57
|
+
}
|
|
58
|
+
export function doctorExitCode(report) {
|
|
59
|
+
return report.healthy ? 0 : 1;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|