@notambourine/metafields 0.0.5 → 0.0.7
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 +72 -5
- package/dist/admin.d.ts +10 -2
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +169 -27
- package/dist/admin.js.map +1 -1
- package/dist/auth.d.ts +15 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +58 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli.js +110 -30
- package/dist/cli.js.map +1 -1
- package/dist/fleet.d.ts +30 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/fleet.js +69 -0
- package/dist/fleet.js.map +1 -0
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +5 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +27 -0
- package/dist/limits.js.map +1 -0
- package/dist/planner.d.ts +4 -1
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +11 -3
- package/dist/planner.js.map +1 -1
- package/dist/repair.d.ts +16 -0
- package/dist/repair.d.ts.map +1 -0
- package/dist/repair.js +53 -0
- package/dist/repair.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# @notambourine/metafields
|
|
2
2
|
|
|
3
3
|
Declare merchant-owned Shopify metafield and metaobject definitions in TypeScript, inspect drift,
|
|
4
|
-
and create only what is missing.
|
|
4
|
+
and create only what is missing. Schema sync creates and never updates; `--repair` is the one
|
|
5
|
+
opt-in that rewrites a definition, and nothing deletes one.
|
|
5
6
|
|
|
6
7
|
```ts
|
|
7
8
|
import { defineSchema, field, metaobject } from '@notambourine/metafields';
|
|
@@ -35,14 +36,76 @@ npx @notambourine/metafields ./schema.ts --store example.myshopify.com --apply
|
|
|
35
36
|
npx @notambourine/metafields ./schema.ts --store example.myshopify.com --check
|
|
36
37
|
```
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
The default command is a dry run. Importing a TypeScript schema executes trusted local code, so
|
|
40
|
+
compile declarations to canonical JSON before a secret-bearing workflow consumes pull-request
|
|
41
|
+
output.
|
|
41
42
|
|
|
42
43
|
Schema modules use Node's built-in type stripping and must use erasable TypeScript syntax.
|
|
43
44
|
|
|
44
45
|
See `metafields --help` for `pull`, `compile`, `emit`, and migration commands.
|
|
45
46
|
|
|
47
|
+
## Auth
|
|
48
|
+
|
|
49
|
+
Set `SHOPIFY_APP_CLIENT_ID` (or pass `--client-id`) and `SHOPIFY_APP_SECRET`, and the CLI mints a
|
|
50
|
+
short-lived Admin token per store with the `client_credentials` grant. Two grant errors stay
|
|
51
|
+
distinct in the output because a fleet treats them differently: `app_not_installed` means the store
|
|
52
|
+
has not installed the app, `shop_not_permitted` means the app and the store are in different
|
|
53
|
+
organizations.
|
|
54
|
+
|
|
55
|
+
`SHOPIFY_ADMIN_ACCESS_TOKEN` still works and reaches one store; app auth is an option, not a
|
|
56
|
+
requirement. Complete app credentials win when both are set, and half-set ones fall back to the
|
|
57
|
+
token rather than failing. Only a fleet, which one token cannot reach, requires the app.
|
|
58
|
+
|
|
59
|
+
Minted tokens are never logged, and Shopify credential prefixes are redacted from errors.
|
|
60
|
+
|
|
61
|
+
## Repair
|
|
62
|
+
|
|
63
|
+
`--repair` issues the update mutations that resolve drift a plan reported as `CONFLICT`. It is
|
|
64
|
+
never implied by `--apply`, so the only way a definition is rewritten is a human typing the flag.
|
|
65
|
+
Without `--apply` it is a dry run that reports exactly what it would change.
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
metafields ./schema.ts --store example.myshopify.com --repair
|
|
69
|
+
metafields ./schema.ts --store example.myshopify.com --repair --apply
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Repairable: `required`, storefront `access`, `capabilities`, `validations`, `constraints`,
|
|
73
|
+
metaobject `displayNameKey`, and a field missing from an existing metaobject.
|
|
74
|
+
|
|
75
|
+
Reported and skipped, never attempted:
|
|
76
|
+
|
|
77
|
+
- A `type` that differs. Shopify will not retype a definition that has stored values; that is what
|
|
78
|
+
the migration commands are for.
|
|
79
|
+
- Invalid stored values (`validationStatus: SOME_INVALID`). That is data, not shape.
|
|
80
|
+
- Anything `INDETERMINATE`, meaning validation is still in progress. Wait, do not write.
|
|
81
|
+
|
|
82
|
+
A definition with any of those is skipped whole, so a partial update never reads like progress. It
|
|
83
|
+
also keeps blocking writes to the fleet, the same as a conflict without `--repair`.
|
|
84
|
+
|
|
85
|
+
Shopify refuses `required: true` on a field whose existing entries are blank. That `userErrors`
|
|
86
|
+
message is surfaced intact, because the operator needs to know which entries to fill.
|
|
87
|
+
|
|
88
|
+
## Fleets
|
|
89
|
+
|
|
90
|
+
`--store` repeats, and `--stores-from <file>` sweeps a list of stores, one per line, with `#`
|
|
91
|
+
comments:
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
metafields ./schema.ts --store flagship.myshopify.com --stores-from ./stores.txt --apply
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- Every store is planned before any store is written to. Drift on one store that a repair cannot
|
|
98
|
+
resolve exits nonzero having written nothing, because writing to the others first half-applies
|
|
99
|
+
the fleet.
|
|
100
|
+
- A swept store that cannot be reached is reported and does not abort the run, as long as one store
|
|
101
|
+
could be planned. A swept store that has not installed the app is reported as `NOT-INSTALLED` and
|
|
102
|
+
keeps the run green.
|
|
103
|
+
- A store named on the command line never fails quietly; only a swept store is downgraded.
|
|
104
|
+
- Writes run per store, so one store refusing does not stop the next, and every refusal is
|
|
105
|
+
reported together.
|
|
106
|
+
- Exit is `2` if any store was unreachable or refused a write, even when every reached store came
|
|
107
|
+
back clean.
|
|
108
|
+
|
|
46
109
|
## Types
|
|
47
110
|
|
|
48
111
|
The schema is the single declaration. Value types come back out of it with `InferMetafields` and
|
|
@@ -80,7 +143,11 @@ replaces an existing one and refuses to overwrite a file it did not generate. Sh
|
|
|
80
143
|
- `--apply` creates missing metaobject definitions in dependency order, then metafield definitions.
|
|
81
144
|
- `--check` exits nonzero for missing or incompatible operational shape.
|
|
82
145
|
- Cosmetic name and description drift is reported but never changed.
|
|
83
|
-
- Existing definitions, values, and entries are never updated or deleted by schema sync.
|
|
146
|
+
- Existing definitions, values, and entries are never updated or deleted by schema sync. Only
|
|
147
|
+
`--repair` updates one, and nothing deletes a definition or a field under any flag.
|
|
148
|
+
- A description over 255 characters fails `--validate` and fails sync before the first request,
|
|
149
|
+
listing every offender at once. The Admin API answers `TOO_LONG`, and one create rejected
|
|
150
|
+
mid-run leaves a store half-applied behind an error that reads transient.
|
|
84
151
|
|
|
85
152
|
Exit `0` means the selected condition is satisfied, exit `1` means schema or migration drift, and
|
|
86
153
|
exit `2` means invalid input, indeterminate Shopify state, or an API failure.
|
package/dist/admin.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { CanonicalMetafield, CanonicalMetaobject, CompiledSchema } from './schema.js';
|
|
2
|
-
import type { ExistingMetafield, ExistingMetaobject, ExistingSchema, Plan } from './planner.js';
|
|
2
|
+
import type { ExistingMetafield, ExistingMetaobject, ExistingSchema, Plan, SyncMode } from './planner.js';
|
|
3
|
+
import { type RepairItem, type RepairPlan } from './repair.js';
|
|
3
4
|
export declare const DEFAULT_API_VERSION = "2026-07";
|
|
4
5
|
export declare class AdminError extends Error {
|
|
5
6
|
readonly requestId?: string;
|
|
6
7
|
constructor(message: string, requestId?: string);
|
|
7
8
|
}
|
|
9
|
+
export declare function normalizeStore(store: string): string;
|
|
10
|
+
export declare function redactSecrets(message: string): string;
|
|
8
11
|
export interface AdminClientOptions {
|
|
9
12
|
store: string;
|
|
10
13
|
token: string;
|
|
@@ -25,10 +28,15 @@ export declare class AdminClient {
|
|
|
25
28
|
readMetafield(definition: Pick<CanonicalMetafield, 'ownerType' | 'namespace' | 'key'>): Promise<ExistingMetafield | null>;
|
|
26
29
|
createMetaobject(definition: CanonicalMetaobject): Promise<void>;
|
|
27
30
|
createMetafield(definition: CanonicalMetafield): Promise<void>;
|
|
31
|
+
repairMetaobject(entry: RepairItem): Promise<void>;
|
|
32
|
+
repairMetafield(entry: RepairItem): Promise<void>;
|
|
28
33
|
}
|
|
29
34
|
export interface ApplyResult {
|
|
30
35
|
plan: Plan;
|
|
31
36
|
applied: string[];
|
|
37
|
+
repaired: string[];
|
|
32
38
|
}
|
|
33
|
-
export declare function
|
|
39
|
+
export declare function planStore(client: AdminClient, schema: CompiledSchema): Promise<Plan>;
|
|
40
|
+
export declare function applyPlan(client: AdminClient, schema: CompiledSchema, plan: Plan, repair?: RepairPlan): Promise<ApplyResult>;
|
|
41
|
+
export declare function synchronize(client: AdminClient, schema: CompiledSchema, mode: SyncMode): Promise<ApplyResult>;
|
|
34
42
|
//# sourceMappingURL=admin.d.ts.map
|
package/dist/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,KAAK,EACK,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EACrF,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAiC,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9F,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,YAAY,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAI9C;CACF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAQD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,WAAW;;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAM1B,YAAY,OAAO,EAAE,kBAAkB,EActC;IAEK,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAyCrG;IAEK,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAYhE;IAEK,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAMrE;IAEK,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAS9H;IAEK,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrE;IAEK,eAAe,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnE;IAEK,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvD;IAEK,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtD;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1F;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,WAAW,CAAC,CAOtB"}
|
package/dist/admin.js
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
+
import { assertDescriptionLengths } from './limits.js';
|
|
1
2
|
import { exitCodeForPlan, planSchema } from './planner.js';
|
|
3
|
+
import { attribute, repairedIdentities } from './repair.js';
|
|
2
4
|
export const DEFAULT_API_VERSION = '2026-07';
|
|
3
5
|
export class AdminError extends Error {
|
|
4
6
|
requestId;
|
|
5
7
|
constructor(message, requestId) {
|
|
6
|
-
super(message);
|
|
8
|
+
super(redactSecrets(message));
|
|
7
9
|
this.name = 'AdminError';
|
|
8
10
|
if (requestId !== undefined)
|
|
9
11
|
this.requestId = requestId;
|
|
10
12
|
}
|
|
11
13
|
}
|
|
14
|
+
export function normalizeStore(store) {
|
|
15
|
+
const value = store.toLowerCase();
|
|
16
|
+
if (!/^[a-z0-9][a-z0-9-]*\.myshopify\.com$/.test(value)) {
|
|
17
|
+
throw new AdminError('store must be a *.myshopify.com host');
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
// Every Shopify credential prefix, not just the legacy shpat_ one, because a minted
|
|
22
|
+
// client-credentials token is the value most likely to reach a fleet CI log.
|
|
23
|
+
export function redactSecrets(message) {
|
|
24
|
+
return message.replace(/shp(at|ca|pa|ss|us)_[A-Za-z0-9_-]+/g, '[REDACTED]');
|
|
25
|
+
}
|
|
12
26
|
export class AdminClient {
|
|
13
27
|
store;
|
|
14
28
|
apiVersion;
|
|
@@ -18,16 +32,13 @@ export class AdminClient {
|
|
|
18
32
|
#retries;
|
|
19
33
|
#fetch;
|
|
20
34
|
constructor(options) {
|
|
21
|
-
const store = options.store
|
|
22
|
-
if (!/^[a-z0-9][a-z0-9-]*\.myshopify\.com$/.test(store)) {
|
|
23
|
-
throw new AdminError('store must be a *.myshopify.com host');
|
|
24
|
-
}
|
|
35
|
+
const store = normalizeStore(options.store);
|
|
25
36
|
const apiVersion = options.apiVersion ?? DEFAULT_API_VERSION;
|
|
26
37
|
if (!/^20\d{2}-(01|04|07|10)$/.test(apiVersion)) {
|
|
27
38
|
throw new AdminError('API version must use YYYY-01, YYYY-04, YYYY-07, or YYYY-10');
|
|
28
39
|
}
|
|
29
40
|
if (options.token.length === 0)
|
|
30
|
-
throw new AdminError('
|
|
41
|
+
throw new AdminError('an Admin access token is required');
|
|
31
42
|
this.store = store;
|
|
32
43
|
this.apiVersion = apiVersion;
|
|
33
44
|
this.endpoint = `https://${store}/admin/api/${apiVersion}/graphql.json`;
|
|
@@ -121,31 +132,66 @@ export class AdminClient {
|
|
|
121
132
|
userErrors: data.metafieldDefinitionCreate.userErrors,
|
|
122
133
|
}, `metafield:${definition.ownerType}:${definition.namespace}.${definition.key}`);
|
|
123
134
|
}
|
|
135
|
+
async repairMetaobject(entry) {
|
|
136
|
+
const data = await this.request(METAOBJECT_UPDATE, {
|
|
137
|
+
id: entry.item.existing?.id,
|
|
138
|
+
definition: metaobjectUpdateInput(entry),
|
|
139
|
+
}, true);
|
|
140
|
+
assertMutation(data.metaobjectDefinitionUpdate, entry.item.identity);
|
|
141
|
+
}
|
|
142
|
+
async repairMetafield(entry) {
|
|
143
|
+
const data = await this.request(METAFIELD_UPDATE, { definition: metafieldUpdateInput(entry) }, true);
|
|
144
|
+
assertMutation({
|
|
145
|
+
created: data.metafieldDefinitionUpdate.updatedDefinition,
|
|
146
|
+
userErrors: data.metafieldDefinitionUpdate.userErrors,
|
|
147
|
+
}, entry.item.identity);
|
|
148
|
+
}
|
|
124
149
|
}
|
|
125
|
-
export async function
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
150
|
+
export async function planStore(client, schema) {
|
|
151
|
+
return planSchema(schema, await client.readSchema(schema));
|
|
152
|
+
}
|
|
153
|
+
export async function applyPlan(client, schema, plan, repair) {
|
|
129
154
|
const applied = [];
|
|
155
|
+
const repaired = [];
|
|
130
156
|
try {
|
|
131
|
-
|
|
157
|
+
// Repairs run before creates so a metaobject a new metafield references is already correct.
|
|
158
|
+
for (const entry of repair ? repairedIdentities(repair) : []) {
|
|
159
|
+
if (entry.item.kind === 'metaobject')
|
|
160
|
+
await client.repairMetaobject(entry);
|
|
161
|
+
else
|
|
162
|
+
await client.repairMetafield(entry);
|
|
163
|
+
repaired.push(entry.item.identity);
|
|
164
|
+
}
|
|
165
|
+
for (const item of plan.items.filter((value) => value.kind === 'metaobject' && value.status === 'CREATE')) {
|
|
132
166
|
await client.createMetaobject(item.desired);
|
|
133
167
|
applied.push(item.identity);
|
|
134
168
|
}
|
|
135
|
-
for (const item of
|
|
169
|
+
for (const item of plan.items.filter((value) => value.kind === 'metafield' && value.status === 'CREATE')) {
|
|
136
170
|
await client.createMetafield(item.desired);
|
|
137
171
|
applied.push(item.identity);
|
|
138
172
|
}
|
|
139
173
|
}
|
|
140
174
|
catch (error) {
|
|
141
|
-
const landed =
|
|
142
|
-
|
|
175
|
+
const landed = [
|
|
176
|
+
...repaired.map((identity) => `repaired ${identity}`),
|
|
177
|
+
...applied.map((identity) => `created ${identity}`),
|
|
178
|
+
];
|
|
179
|
+
const trail = landed.length > 0 ? `; before failure: ${landed.join(', ')}` : '';
|
|
180
|
+
throw new AdminError(`${error instanceof Error ? error.message : String(error)}${trail}`);
|
|
143
181
|
}
|
|
144
182
|
const after = planSchema(schema, await client.readSchema(schema));
|
|
145
183
|
if (exitCodeForPlan(after, 'check') !== 0) {
|
|
146
184
|
throw new AdminError(`post-apply verification failed; created: ${applied.join(', ') || 'none'}`);
|
|
147
185
|
}
|
|
148
|
-
return { plan: after, applied };
|
|
186
|
+
return { plan: after, applied, repaired };
|
|
187
|
+
}
|
|
188
|
+
export async function synchronize(client, schema, mode) {
|
|
189
|
+
assertDescriptionLengths(schema);
|
|
190
|
+
const before = await planStore(client, schema);
|
|
191
|
+
if (mode !== 'apply' || exitCodeForPlan(before, mode) !== 0) {
|
|
192
|
+
return { plan: before, applied: [], repaired: [] };
|
|
193
|
+
}
|
|
194
|
+
return applyPlan(client, schema, before);
|
|
149
195
|
}
|
|
150
196
|
function assertMutation(payload, identity) {
|
|
151
197
|
if (payload.userErrors.length > 0) {
|
|
@@ -175,20 +221,101 @@ function metafieldCreateInput(definition) {
|
|
|
175
221
|
input.constraints = definition.constraints;
|
|
176
222
|
return input;
|
|
177
223
|
}
|
|
224
|
+
// `--repair` only ever sends the attributes the plan reported as drifted, so an update never
|
|
225
|
+
// carries an opinion about something the operator did not declare.
|
|
226
|
+
function metafieldUpdateInput(entry) {
|
|
227
|
+
const definition = entry.item.desired;
|
|
228
|
+
const paths = entry.repairs.map((reason) => attribute(entry.item, reason));
|
|
229
|
+
const input = {
|
|
230
|
+
ownerType: definition.ownerType,
|
|
231
|
+
namespace: definition.namespace,
|
|
232
|
+
key: definition.key,
|
|
233
|
+
name: definition.name,
|
|
234
|
+
};
|
|
235
|
+
if (definition.description !== undefined)
|
|
236
|
+
input.description = definition.description;
|
|
237
|
+
if (paths.includes('validations differ'))
|
|
238
|
+
input.validations = definition.validations;
|
|
239
|
+
if (paths.some((path) => path.startsWith('access.')) && definition.access)
|
|
240
|
+
input.access = definition.access;
|
|
241
|
+
if (paths.some((path) => path.startsWith('capabilities.')) && definition.capabilities) {
|
|
242
|
+
input.capabilities = capabilityInput(definition.capabilities);
|
|
243
|
+
}
|
|
244
|
+
if (paths.includes('constraints differ')) {
|
|
245
|
+
input.constraintsUpdates = constraintsUpdateInput(definition, entry.item.existing);
|
|
246
|
+
}
|
|
247
|
+
return input;
|
|
248
|
+
}
|
|
249
|
+
// Constraint values are created and deleted one by one, so the stored set has to be diffed
|
|
250
|
+
// against the declared one rather than replaced.
|
|
251
|
+
function constraintsUpdateInput(definition, existing) {
|
|
252
|
+
const stored = new Set(existing?.constraints?.values ?? []);
|
|
253
|
+
const declared = new Set(definition.constraints?.values ?? []);
|
|
254
|
+
const values = [
|
|
255
|
+
...[...declared].filter((value) => !stored.has(value)).sort().map((value) => ({ create: value })),
|
|
256
|
+
...[...stored].filter((value) => !declared.has(value)).sort().map((value) => ({ delete: value })),
|
|
257
|
+
];
|
|
258
|
+
return definition.constraints ? { key: definition.constraints.key, values } : { key: null, values };
|
|
259
|
+
}
|
|
260
|
+
function metaobjectUpdateInput(entry) {
|
|
261
|
+
const definition = entry.item.desired;
|
|
262
|
+
const paths = entry.repairs.map((reason) => attribute(entry.item, reason));
|
|
263
|
+
const input = {};
|
|
264
|
+
if (paths.some((path) => path.startsWith('displayNameKey')) && definition.displayNameKey !== undefined) {
|
|
265
|
+
input.displayNameKey = definition.displayNameKey;
|
|
266
|
+
}
|
|
267
|
+
if (paths.some((path) => path.startsWith('access.')) && definition.access)
|
|
268
|
+
input.access = definition.access;
|
|
269
|
+
if (paths.some((path) => path.startsWith('capabilities.')) && definition.capabilities) {
|
|
270
|
+
input.capabilities = capabilityInput(definition.capabilities);
|
|
271
|
+
}
|
|
272
|
+
const missing = new Set();
|
|
273
|
+
const drifted = new Set();
|
|
274
|
+
for (const path of paths) {
|
|
275
|
+
const added = /^fields\.([^.]+): missing$/.exec(path);
|
|
276
|
+
if (added?.[1] !== undefined)
|
|
277
|
+
missing.add(added[1]);
|
|
278
|
+
else {
|
|
279
|
+
const changed = /^fields\.([^.]+)\./.exec(path);
|
|
280
|
+
if (changed?.[1] !== undefined)
|
|
281
|
+
drifted.add(changed[1]);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
const declared = new Map(definition.fields.map((field) => [field.key, field]));
|
|
285
|
+
const operations = [];
|
|
286
|
+
for (const key of [...missing].sort()) {
|
|
287
|
+
const field = declared.get(key);
|
|
288
|
+
if (field)
|
|
289
|
+
operations.push({ create: fieldCreateInput(field) });
|
|
290
|
+
}
|
|
291
|
+
for (const key of [...drifted].sort()) {
|
|
292
|
+
const field = missing.has(key) ? undefined : declared.get(key);
|
|
293
|
+
if (field)
|
|
294
|
+
operations.push({ update: fieldUpdateInput(field) });
|
|
295
|
+
}
|
|
296
|
+
if (operations.length > 0)
|
|
297
|
+
input.fieldDefinitions = operations;
|
|
298
|
+
return input;
|
|
299
|
+
}
|
|
300
|
+
function fieldCreateInput(field) {
|
|
301
|
+
return { key: field.key, type: field.type, ...fieldUpdateInput(field) };
|
|
302
|
+
}
|
|
303
|
+
// No `type`: Shopify will not retype a field, and no `delete` operation is ever emitted.
|
|
304
|
+
function fieldUpdateInput(field) {
|
|
305
|
+
const result = { key: field.key, name: field.name };
|
|
306
|
+
if (field.description !== undefined)
|
|
307
|
+
result.description = field.description;
|
|
308
|
+
if (field.required !== undefined)
|
|
309
|
+
result.required = field.required;
|
|
310
|
+
if (field.validations.length > 0)
|
|
311
|
+
result.validations = field.validations;
|
|
312
|
+
return result;
|
|
313
|
+
}
|
|
178
314
|
function metaobjectCreateInput(definition) {
|
|
179
315
|
const input = {
|
|
180
316
|
type: definition.type,
|
|
181
317
|
name: definition.name,
|
|
182
|
-
fieldDefinitions: definition.fields.map(
|
|
183
|
-
const result = { key: field.key, name: field.name, type: field.type };
|
|
184
|
-
if (field.description !== undefined)
|
|
185
|
-
result.description = field.description;
|
|
186
|
-
if (field.required !== undefined)
|
|
187
|
-
result.required = field.required;
|
|
188
|
-
if (field.validations.length > 0)
|
|
189
|
-
result.validations = field.validations;
|
|
190
|
-
return result;
|
|
191
|
-
}),
|
|
318
|
+
fieldDefinitions: definition.fields.map(fieldCreateInput),
|
|
192
319
|
};
|
|
193
320
|
if (definition.description !== undefined)
|
|
194
321
|
input.description = definition.description;
|
|
@@ -246,8 +373,7 @@ function mapMetafield(value) {
|
|
|
246
373
|
function redactError(error) {
|
|
247
374
|
if (error instanceof AdminError)
|
|
248
375
|
return error;
|
|
249
|
-
|
|
250
|
-
return new AdminError(message.replace(/shpat_[A-Za-z0-9_-]+/g, '[REDACTED]'));
|
|
376
|
+
return new AdminError(error instanceof Error ? error.message : String(error));
|
|
251
377
|
}
|
|
252
378
|
function backoff(attempt, retryAfter) {
|
|
253
379
|
const seconds = retryAfter === undefined || retryAfter === null ? Number.NaN : Number(retryAfter);
|
|
@@ -304,4 +430,20 @@ mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {
|
|
|
304
430
|
userErrors { field message code }
|
|
305
431
|
}
|
|
306
432
|
}`;
|
|
433
|
+
// Neither update carries a `delete` field operation or a `type`: a repair rewrites shape the
|
|
434
|
+
// operator declared and nothing else.
|
|
435
|
+
const METAOBJECT_UPDATE = `
|
|
436
|
+
mutation UpdateMetaobjectDefinition($id: ID!, $definition: MetaobjectDefinitionUpdateInput!) {
|
|
437
|
+
metaobjectDefinitionUpdate(id: $id, definition: $definition) {
|
|
438
|
+
metaobjectDefinition { id }
|
|
439
|
+
userErrors { field message code }
|
|
440
|
+
}
|
|
441
|
+
}`;
|
|
442
|
+
const METAFIELD_UPDATE = `
|
|
443
|
+
mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {
|
|
444
|
+
metafieldDefinitionUpdate(definition: $definition) {
|
|
445
|
+
updatedDefinition { id }
|
|
446
|
+
userErrors { field message code }
|
|
447
|
+
}
|
|
448
|
+
}`;
|
|
307
449
|
//# sourceMappingURL=admin.js.map
|
package/dist/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AdminError } from './admin.js';
|
|
2
|
+
export declare class GrantError extends AdminError {
|
|
3
|
+
readonly store: string;
|
|
4
|
+
readonly code: string;
|
|
5
|
+
constructor(store: string, code: string, message: string);
|
|
6
|
+
}
|
|
7
|
+
export interface MintOptions {
|
|
8
|
+
store: string;
|
|
9
|
+
clientId: string;
|
|
10
|
+
clientSecret: string;
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
fetch?: typeof globalThis.fetch;
|
|
13
|
+
}
|
|
14
|
+
export declare function mintAccessToken(options: MintOptions): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,YAAY,CAAC;AAIvE,qBAAa,UAAW,SAAQ,UAAU;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKvD;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B3E"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { AdminError, normalizeStore, redactSecrets } from './admin.js';
|
|
2
|
+
// The two codes a fleet caller treats differently: `app_not_installed` means the store has
|
|
3
|
+
// not enrolled yet, `shop_not_permitted` means the app and the store are in different orgs.
|
|
4
|
+
export class GrantError extends AdminError {
|
|
5
|
+
store;
|
|
6
|
+
code;
|
|
7
|
+
constructor(store, code, message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'GrantError';
|
|
10
|
+
this.store = store;
|
|
11
|
+
this.code = code;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export async function mintAccessToken(options) {
|
|
15
|
+
const store = normalizeStore(options.store);
|
|
16
|
+
if (options.clientId.length === 0 || options.clientSecret.length === 0) {
|
|
17
|
+
throw new GrantError(store, 'invalid_client', 'an app client id and secret are required');
|
|
18
|
+
}
|
|
19
|
+
const send = options.fetch ?? globalThis.fetch;
|
|
20
|
+
let response;
|
|
21
|
+
try {
|
|
22
|
+
response = await send(`https://${store}/admin/oauth/access_token`, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded', accept: 'application/json' },
|
|
25
|
+
body: new URLSearchParams({
|
|
26
|
+
client_id: options.clientId,
|
|
27
|
+
client_secret: options.clientSecret,
|
|
28
|
+
grant_type: 'client_credentials',
|
|
29
|
+
}).toString(),
|
|
30
|
+
signal: AbortSignal.timeout(options.timeoutMs ?? 20_000),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
+
throw new GrantError(store, 'unreachable', redactSecrets(message));
|
|
36
|
+
}
|
|
37
|
+
const payload = await grantPayload(response);
|
|
38
|
+
if (response.ok && typeof payload.access_token === 'string' && payload.access_token.length > 0) {
|
|
39
|
+
return payload.access_token;
|
|
40
|
+
}
|
|
41
|
+
const code = typeof payload.error === 'string' ? payload.error : `http_${response.status}`;
|
|
42
|
+
const detail = typeof payload.error_description === 'string' ? payload.error_description : undefined;
|
|
43
|
+
throw new GrantError(store, code, detail ?? `token grant returned HTTP ${response.status}`);
|
|
44
|
+
}
|
|
45
|
+
// Nothing from the body other than an error string is ever surfaced, so a token in an
|
|
46
|
+
// unexpected shape cannot reach a message.
|
|
47
|
+
async function grantPayload(response) {
|
|
48
|
+
try {
|
|
49
|
+
const parsed = await response.json();
|
|
50
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
|
|
51
|
+
? parsed
|
|
52
|
+
: {};
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|