@atlasauth/cli 0.4.0 → 0.6.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.
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REFERALLY_VERSION = void 0;
3
+ exports.REFERALLY_SYNC_TOPICS = exports.REFERALLY_VERSION = void 0;
4
4
  exports.pingSkewMs = pingSkewMs;
5
5
  exports.describeTestLines = describeTestLines;
6
6
  exports.parseCodeCsv = parseCodeCsv;
7
+ exports.referallyKeyMode = referallyKeyMode;
7
8
  exports.referrals = referrals;
8
9
  const node_crypto_1 = require("node:crypto");
9
10
  const backend_1 = require("@atlasauth/backend");
@@ -18,12 +19,12 @@ const shared_1 = require("./shared");
18
19
  * `atlas referrals connect | backfill | status`: referral attribution from the
19
20
  * terminal.
20
21
  *
21
- * `connect --provider referally` is bring-your-own-key: the Referally merchant
22
- * key is used for one call (it creates the Atlas connection on Referally) and
23
- * is never stored or printed. The connection id and secret Referally returns
22
+ * `connect --provider referally` is bring-your-own-key: the Referalli merchant
23
+ * key is used for one call (it creates the Atlas connection on Referalli) and
24
+ * is never stored or printed. The connection id and secret Referalli returns
24
25
  * go straight onto the instance; the secret is never printed either.
25
26
  */
26
- /** The Referally API version pinned on every call. */
27
+ /** The Referalli API version pinned on every call. */
27
28
  exports.REFERALLY_VERSION = '2026-10-21';
28
29
  const PROVIDERS = ['referally', 'webhook'];
29
30
  /** Read a key from a file, or stdin with '-'. A bare key or a dotenv line. Never printed. */
@@ -112,23 +113,24 @@ function parseCodeCsv(text) {
112
113
  });
113
114
  return out;
114
115
  }
115
- async function referallyCreateConnection(ctx, input) {
116
+ /** One call to the Referalli merchant API with the merchant key. Throws a CliError naming `what` on failure. */
117
+ async function referallyRequest(ctx, input) {
116
118
  const fetchImpl = ctx.fetch ?? globalThis.fetch;
117
119
  let res;
118
120
  try {
119
- res = await fetchImpl(`${input.baseUrl}/v1/auth/connections`, {
120
- method: 'POST',
121
+ res = await fetchImpl(`${input.baseUrl}${input.path}`, {
122
+ method: input.method,
121
123
  headers: {
122
124
  authorization: `Bearer ${input.key}`,
123
- 'content-type': 'application/json',
124
125
  accept: 'application/json',
125
126
  'referally-version': exports.REFERALLY_VERSION,
127
+ ...(input.body ? { 'content-type': 'application/json' } : {}),
126
128
  },
127
- body: JSON.stringify(input.body),
129
+ ...(input.body ? { body: JSON.stringify(input.body) } : {}),
128
130
  });
129
131
  }
130
132
  catch (err) {
131
- throw new errors_1.CliError(`Could not reach Referally at ${input.baseUrl}: ${err instanceof Error ? err.message : String(err)}`);
133
+ throw new errors_1.CliError(`Could not reach Referalli at ${input.baseUrl}: ${err instanceof Error ? err.message : String(err)}`);
132
134
  }
133
135
  const text = await res.text();
134
136
  let json = {};
@@ -144,13 +146,47 @@ async function referallyCreateConnection(ctx, input) {
144
146
  (Array.isArray(err) && err[0] && typeof err[0] === 'object' && 'message' in err[0] ? String(err[0].message) : null) ??
145
147
  (typeof json.message === 'string' ? json.message : null);
146
148
  const hint = res.status === 401 || res.status === 403 ? ' Check the merchant key.' : '';
147
- throw new errors_1.CliError(`Referally refused to create the connection (HTTP ${res.status})${msg ? `: ${msg}` : ''}.${hint}`);
149
+ throw new errors_1.CliError(`Referalli refused to ${input.what} (HTTP ${res.status})${msg ? `: ${msg}` : ''}.${hint}`);
148
150
  }
151
+ return json;
152
+ }
153
+ async function referallyCreateConnection(ctx, input) {
154
+ const json = await referallyRequest(ctx, { ...input, method: 'POST', path: '/v1/auth/connections', what: 'create the connection' });
149
155
  if (typeof json.id !== 'string' || typeof json.secret !== 'string') {
150
- throw new errors_1.CliError('Referally answered without a connection id and secret.');
156
+ throw new errors_1.CliError('Referalli answered without a connection id and secret.');
151
157
  }
152
158
  return json;
153
159
  }
160
+ /** The Referalli topics two-way sync subscribes to (changes to a referral after sign-up). */
161
+ exports.REFERALLY_SYNC_TOPICS = [
162
+ 'referral.created',
163
+ 'referral.held',
164
+ 'referral.paused',
165
+ 'referral.resumed',
166
+ 'referral.approved',
167
+ 'referral.voided',
168
+ 'referral.reassigned',
169
+ ];
170
+ /**
171
+ * Whether the merchant key reaches live or test data: the org's `livemode`,
172
+ * else the key prefix (rk_test_ = test; rk_live_ and older rk_ keys = live).
173
+ * `known` is false when Referalli reports no mode (no test mode there).
174
+ */
175
+ async function referallyKeyMode(ctx, input) {
176
+ try {
177
+ const org = await referallyRequest(ctx, { ...input, method: 'GET', path: '/v1/org', what: 'read the organization' });
178
+ if (typeof org.livemode === 'boolean')
179
+ return { live: org.livemode, known: true };
180
+ }
181
+ catch {
182
+ /* fall back to the key prefix */
183
+ }
184
+ if (input.key.startsWith('rk_test_'))
185
+ return { live: false, known: true };
186
+ if (input.key.startsWith('rk_live_'))
187
+ return { live: true, known: true };
188
+ return { live: true, known: false };
189
+ }
154
190
  async function connect(ctx, args) {
155
191
  const v = args.values;
156
192
  const json = (0, shared_1.wantsJson)(v);
@@ -170,17 +206,32 @@ async function connect(ctx, args) {
170
206
  throw new errors_1.CliError('referrals connect --provider referally needs --program <prg_…>.');
171
207
  const baseRaw = (0, args_1.str)(v, 'base-url') ?? ctx.env.REFERALLY_BASE_URL?.trim();
172
208
  if (!baseRaw)
173
- throw new errors_1.CliError('Pass --base-url <your Referally base URL> (or set REFERALLY_BASE_URL).');
209
+ throw new errors_1.CliError('Pass --base-url <your Referalli base URL> (or set REFERALLY_BASE_URL).');
174
210
  const baseUrl = httpsUrl(baseRaw, '--base-url');
175
211
  const keyFile = (0, args_1.str)(v, 'referally-key-file');
176
- const key = (0, args_1.str)(v, 'referally-key') ?? (keyFile ? readKeyFile(ctx, keyFile, 'the Referally key') : ctx.env.REFERALLY_API_KEY?.trim());
212
+ const key = (0, args_1.str)(v, 'referally-key') ?? (keyFile ? readKeyFile(ctx, keyFile, 'the Referalli key') : ctx.env.REFERALLY_API_KEY?.trim());
177
213
  if (!key) {
178
- throw new errors_1.CliError('Pass your Referally merchant key with --referally-key-file <path|-> (or --referally-key, or REFERALLY_API_KEY). It is used once and never stored.');
214
+ throw new errors_1.CliError('Pass your Referalli merchant key with --referally-key-file <path|-> (or --referally-key, or REFERALLY_API_KEY). It is used once and never stored.');
179
215
  }
180
216
  const destination = (0, args_1.str)(v, 'destination');
181
217
  if (destination)
182
218
  httpsUrl(destination, '--destination');
183
219
  const instance = await http.get('/v1/instance');
220
+ // Test data for development instances, live data for production: a mix-up
221
+ // would pay real partners for test sign-ups, or lose real ones.
222
+ const instanceLive = instance.environment === 'production';
223
+ const mode = await referallyKeyMode(ctx, { baseUrl, key });
224
+ if (mode.known && mode.live !== instanceLive) {
225
+ const message = `the Referalli key reaches ${mode.live ? 'live' : 'test'} data but instance ${instance.id} is ` +
226
+ `${instance.environment ?? 'not production'}. Use ${instanceLive ? 'a live (rk_live_…)' : 'a test (rk_test_…)'} key` +
227
+ ` for it, or pass --allow-mode-mismatch.`;
228
+ if (v['allow-mode-mismatch'] !== true)
229
+ throw new errors_1.CliError(message.charAt(0).toUpperCase() + message.slice(1));
230
+ ctx.io.err(`atlas: warning: ${message.replace(/, or pass --allow-mode-mismatch\.$/, '.')}`);
231
+ }
232
+ else if (!mode.known && !instanceLive) {
233
+ ctx.io.err(`atlas: warning: Referalli did not say whether this key reaches test data; instance ${instance.id} is ${instance.environment ?? 'not production'}.`);
234
+ }
184
235
  const created = await referallyCreateConnection(ctx, {
185
236
  baseUrl,
186
237
  key,
@@ -192,6 +243,22 @@ async function connect(ctx, args) {
192
243
  ...(destination ? { destinationUrl: destination } : {}),
193
244
  },
194
245
  });
246
+ // Atlas always signs with v2: require it from the first call, so v1 is never accepted on this connection.
247
+ let signatureV2 = true;
248
+ try {
249
+ await referallyRequest(ctx, {
250
+ baseUrl,
251
+ key,
252
+ method: 'PATCH',
253
+ path: `/v1/auth/connections/${encodeURIComponent(created.id)}`,
254
+ body: { signatureVersion: 'v2' },
255
+ what: 'require v2 signatures on the connection',
256
+ });
257
+ }
258
+ catch (err) {
259
+ signatureV2 = false;
260
+ ctx.io.err(`atlas: warning: ${err instanceof Error ? err.message : String(err)} It switches to v2 on Atlas's first call anyway.`);
261
+ }
195
262
  const trackingToken = (0, args_1.str)(v, 'tracking-token') ?? (typeof created.trackingToken === 'string' ? created.trackingToken : null);
196
263
  patch = {
197
264
  provider: 'referally',
@@ -202,27 +269,81 @@ async function connect(ctx, args) {
202
269
  ...(v['auto-enroll'] === true ? { auto_enroll_users: true } : {}),
203
270
  ...(trackingToken ? { tracking_token: trackingToken } : {}),
204
271
  };
272
+ let saved;
205
273
  try {
206
- await http.patch('/v1/instance/referrals', patch);
274
+ saved = await http.patch('/v1/instance/referrals', patch);
207
275
  }
208
276
  catch (err) {
209
- // The secret is shown once by Referally: keep it so the merchant can finish by hand.
277
+ // The secret is shown once by Referalli: keep it so the merchant can finish by hand.
210
278
  const saved = (0, secrets_1.deliverSecret)({
211
279
  io: out,
212
280
  env: ctx.env,
213
281
  product,
214
282
  fileName: `referally-connection-${created.id}.env`,
215
283
  entries: { REFERALLY_CONNECTION_ID: created.id, REFERALLY_CONNECTION_SECRET: created.secret },
216
- label: 'The Referally connection secret (not saved on Atlas)',
284
+ label: 'The Referalli connection secret (not saved on Atlas)',
217
285
  force: v.force === true,
218
- comment: `Referally connection ${created.id}: saving it on the Atlas instance failed. Paste it in Users → Referrals.`,
286
+ comment: `Referalli connection ${created.id}: saving it on the Atlas instance failed. Paste it in Users → Referrals.`,
219
287
  });
220
- ctx.io.err(`atlas: the connection ${created.id} was created on Referally, but saving it on the instance failed.${saved.path ? ` Its secret is in ${saved.path}.` : ''}`);
288
+ ctx.io.err(`atlas: the connection ${created.id} was created on Referalli, but saving it on the instance failed.${saved.path ? ` Its secret is in ${saved.path}.` : ''}`);
221
289
  throw err;
222
290
  }
223
- summary = { provider: 'referally', instance_id: instance.id, endpoint_url: baseUrl, connection_id: created.id, program_id: program, tracking_token: trackingToken };
224
- if (!json)
225
- out.out(`Created Referally connection ${created.id} for instance ${instance.id} and saved it (the secret was not printed).`);
291
+ // Two-way sync: Referalli's referral events go to the instance's inbound URL.
292
+ let syncEndpoint = null;
293
+ const inboundUrl = saved?.inbound?.url ?? null;
294
+ if (v['no-sync'] !== true && inboundUrl) {
295
+ try {
296
+ const endpoint = await referallyRequest(ctx, {
297
+ baseUrl,
298
+ key,
299
+ method: 'POST',
300
+ path: '/v1/webhook-endpoints',
301
+ body: { url: inboundUrl, topics: [...exports.REFERALLY_SYNC_TOPICS], legacySignature: false },
302
+ what: 'register the referral event webhook',
303
+ });
304
+ if (typeof endpoint.id !== 'string' || typeof endpoint.secret !== 'string') {
305
+ throw new errors_1.CliError('Referalli answered without a webhook endpoint id and secret.');
306
+ }
307
+ try {
308
+ await http.patch('/v1/instance/referrals', { inbound_secret: endpoint.secret, inbound_endpoint_id: endpoint.id });
309
+ syncEndpoint = endpoint.id;
310
+ }
311
+ catch (err) {
312
+ const kept = (0, secrets_1.deliverSecret)({
313
+ io: out,
314
+ env: ctx.env,
315
+ product,
316
+ fileName: `referally-webhook-${endpoint.id}.env`,
317
+ entries: { REFERALLY_WEBHOOK_ENDPOINT_ID: endpoint.id, REFERALLY_WEBHOOK_SECRET: endpoint.secret },
318
+ label: 'The Referalli webhook secret (not saved on Atlas)',
319
+ force: v.force === true,
320
+ comment: `Referalli webhook ${endpoint.id}: saving it on the Atlas instance failed. Paste it as the inbound secret in Users → Referrals.`,
321
+ });
322
+ ctx.io.err(`atlas: warning: the webhook ${endpoint.id} was registered on Referalli, but saving its secret failed (${err instanceof Error ? err.message : String(err)}).${kept.path ? ` It is in ${kept.path}.` : ''}`);
323
+ }
324
+ }
325
+ catch (err) {
326
+ if (!(err instanceof errors_1.CliError))
327
+ throw err;
328
+ ctx.io.err(`atlas: warning: ${err.message} Referral changes on Referalli won't reach Atlas until it is registered (see the docs).`);
329
+ }
330
+ }
331
+ summary = {
332
+ provider: 'referally',
333
+ instance_id: instance.id,
334
+ endpoint_url: baseUrl,
335
+ connection_id: created.id,
336
+ program_id: program,
337
+ tracking_token: trackingToken,
338
+ livemode: mode.known ? mode.live : null,
339
+ signature_v2_required: signatureV2,
340
+ sync_endpoint_id: syncEndpoint,
341
+ };
342
+ if (!json) {
343
+ out.out(`Created Referalli connection ${created.id} for instance ${instance.id} and saved it (the secret was not printed).`);
344
+ if (syncEndpoint)
345
+ out.out(`Referral changes on Referalli sync back to Atlas (webhook ${syncEndpoint}).`);
346
+ }
226
347
  }
227
348
  else {
228
349
  const endpoint = (0, args_1.str)(v, 'endpoint');
@@ -262,9 +383,13 @@ async function connect(ctx, args) {
262
383
  comment: `Signing secret for Atlas referral calls to ${endpointUrl}.`,
263
384
  }).path;
264
385
  }
265
- summary = { provider: 'webhook', endpoint_url: endpointUrl, secret_file: secretPath ?? null };
266
- if (!json)
386
+ const inboundUrl = (await http.get('/v1/instance/referrals')).inbound?.url ?? null;
387
+ summary = { provider: 'webhook', endpoint_url: endpointUrl, secret_file: secretPath ?? null, inbound_url: inboundUrl };
388
+ if (!json) {
267
389
  out.out(`Saved the referral protocol connection to ${endpointUrl}.`);
390
+ if (inboundUrl)
391
+ out.out(`For two-way sync, have the platform send referral changes to ${inboundUrl}, signed with the same secret.`);
392
+ }
268
393
  }
269
394
  const test = await http.post('/v1/instance/referrals/test', {});
270
395
  const receivedAt = Date.now();
@@ -389,6 +514,16 @@ async function status(ctx, args) {
389
514
  }
390
515
  if (c)
391
516
  lines.push(`Failed (7 days): ${c.failed_calls_7d ?? 0} Retrying: ${c.retrying_calls ?? 0}`);
517
+ const inbound = settings.inbound;
518
+ if (inbound?.url) {
519
+ // Referalli needs its own webhook secret; the Atlas protocol falls back to the signing secret.
520
+ const syncing = inbound.secret_set || (settings.provider === 'webhook' && settings.signing_secret_set);
521
+ lines.push(`Two-way sync: ${syncing ? 'on' : 'off (no inbound secret)'}${inbound.endpoint_id ? ` (webhook ${inbound.endpoint_id})` : ''}`);
522
+ lines.push(`Inbound URL: ${inbound.url}`);
523
+ if (inbound.last_event) {
524
+ lines.push(`Last event: ${inbound.last_event.type} → ${inbound.last_event.outcome} at ${new Date(inbound.last_event.at).toISOString()}`);
525
+ }
526
+ }
392
527
  for (const l of lines)
393
528
  ctx.io.out(l);
394
529
  if (c?.alert)
@@ -1 +1 @@
1
- {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../src/commands/referrals.ts"],"names":[],"mappings":";;;AAiHA,gCAMC;AAGD,8CAqBC;AAGD,oCAaC;AAuRD,8BAgBC;AAtcD,6CAA0C;AAC1C,gDAAmD;AACnD,kCAA+C;AAE/C,sCAAqC;AACrC,sCAAgE;AAChE,wCAAqC;AACrC,wCAA2C;AAC3C,yDAAwD;AACxD,qCAAqC;AAErC;;;;;;;;GAQG;AAEH,sDAAsD;AACzC,QAAA,iBAAiB,GAAG,YAAY,CAAC;AAE9C,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AA2DpD,6FAA6F;AAC7F,SAAS,WAAW,CAAC,GAAe,EAAE,IAAY,EAAE,IAAY;IAC9D,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAAC,kBAAkB,IAAI,SAAS,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAQ,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACxG,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,IAAI,CAAM,CAAC;IACX,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAAC,GAAG,IAAI,kCAAkC,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5G,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,iBAAQ,CAAC,GAAG,IAAI,mDAAmD,GAAG,IAAI,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,qDAAqD;AACrD,SAAgB,UAAU,CAAC,IAAc,EAAE,UAAkB,EAAE,SAAyB;IACtF,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,aAAa,CAAC;IACtE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,kFAAkF;AAClF,SAAgB,iBAAiB,CAAC,IAAc,EAAE,UAAkB;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9I,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC;IAChK,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5I,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9H,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QACpC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,KAAK,CAAC,IAAI,+CAA+C,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAAE,OAAO;QACvF,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,iBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACzF,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,iBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,IAAI,wBAAwB,CAAC,CAAC;QACnH,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,GAAe,EACf,KAAsE;IAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAChD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,OAAO,sBAAsB,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,CAAC,GAAG,EAAE;gBACpC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,mBAAmB,EAAE,yBAAiB;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAQ,CAAC,gCAAgC,KAAK,CAAC,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3H,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAY,CAAC;QACnD,MAAM,GAAG,GACP,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3G,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnH,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,iBAAQ,CAAC,oDAAoD,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnE,MAAM,IAAI,iBAAQ,CAAC,wDAAwD,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAqE,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,IAAgB;IACtD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC;IACnD,IAAI,CAAE,SAA+B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,iBAAQ,CAAC,6BAA6B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,qCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAEtE,IAAI,KAA8B,CAAC;IACnC,IAAI,OAAgC,CAAC;IAErC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,iBAAQ,CAAC,iEAAiE,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACzE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,iBAAQ,CAAC,wEAAwE,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtI,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,iBAAQ,CAAC,mJAAmJ,CAAC,CAAC;QAC1K,CAAC;QACD,MAAM,WAAW,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAC1C,IAAI,WAAW;YAAE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAuC,cAAc,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,GAAG,EAAE;YACnD,OAAO;YACP,GAAG;YACH,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,SAAS,EAAE,OAAO;gBAClB,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;SACF,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7H,KAAK,GAAG;YACN,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,OAAO;YACrB,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,UAAU,EAAE,OAAO;YACnB,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qFAAqF;YACrF,MAAM,KAAK,GAAG,IAAA,uBAAa,EAAC;gBAC1B,EAAE,EAAE,GAAG;gBACP,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO;gBACP,QAAQ,EAAE,wBAAwB,OAAO,CAAC,EAAE,MAAM;gBAClD,OAAO,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,EAAE,2BAA2B,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC7F,KAAK,EAAE,sDAAsD;gBAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI;gBACvB,OAAO,EAAE,wBAAwB,OAAO,CAAC,EAAE,0EAA0E;aACtH,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,EAAE,mEAAmE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzK,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;QACpK,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,EAAE,iBAAiB,QAAQ,CAAC,EAAE,6CAA6C,CAAC,CAAC;IAC1I,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,iBAAQ,CAAC,oEAAoE,CAAC,CAAC;QACxG,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,IAAI,MAAc,CAAC;QACnB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,UAAU;YAAE,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;aACvE,CAAC;YACJ,MAAM,GAAG,OAAO,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;YAAE,MAAM,IAAI,iBAAQ,CAAC,oDAAoD,CAAC,CAAC;QACjG,KAAK,GAAG;YACN,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,MAAM;YACtB,GAAG,CAAC,IAAA,UAAG,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAA,UAAG,EAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,UAA8B,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,GAAG,IAAA,uBAAa,EAAC;gBACzB,EAAE,EAAE,GAAG;gBACP,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO;gBACP,QAAQ,EAAE,8BAA8B;gBACxC,OAAO,EAAE,EAAE,8BAA8B,EAAE,MAAM,EAAE;gBACnD,KAAK,EAAE,6DAA6D;gBACpE,WAAW,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI;gBACvC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI;gBACvB,OAAO,EAAE,8CAA8C,WAAW,GAAG;aACtE,CAAC,CAAC,IAAI,CAAC;QACV,CAAC;QACD,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,6CAA6C,WAAW,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAW,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzE,GAAG,CAAC,EAAE,CAAC,GAAG,CACR,OAAO;YACL,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI;gBACjB,CAAC,CAAC,uDAAuD;gBACzD,CAAC,CAAC,gGAAgG,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAe,EAAE,IAAgB;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,MAAM,KAAK,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,iBAAQ,CAAC,gDAAgD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAyC,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,iBAAQ,CAAC,kBAAkB,OAAO,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,UAAG,EAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAC7C,IAAI,YAAY,IAAI,CAAC,gEAAgE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,iBAAQ,CAAC,sEAAsE,YAAY,IAAI,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE,IAAA,qCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAc,iCAAiC,EAAE;QACxE,KAAK;QACL,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC;IACpF,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAc,mCAAmC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IACD,IAAI,IAAA,kBAAS,EAAC,CAAC,CAAC;QAAE,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SACpC,CAAC;QACJ,MAAM,MAAM,GAAG;YACb,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,EAAE;YACzE,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,EAAE;YAC9E,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,UAAU,CAAC,CAAC,CAAC,EAAE;YAC3E,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE;SAC3E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,KAAK;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,sBAAsB,OAAO,GAAG,CAAC,CAAC;QACpF,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QAC/H,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iDAAiD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;QACnI,CAAC;QACD,IAAI,GAAG,CAAC,KAAK;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,eAAe,GAA+B;IAClD,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;IACtC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;CAC7C,CAAC;AAEF,KAAK,UAAU,MAAM,CAAC,GAAe,EAAE,IAAgB;IACrD,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE,IAAA,qCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAuB,wBAAwB,CAAC,CAAC;IAChF,IAAI,QAAQ,GAAuB,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAoC,wBAAwB,CAAC,CAAC;QAC3F,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAa,CAAC;YAAE,MAAM,GAAG,CAAC;IACjD,CAAC;IACD,IAAI,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG;QACZ,yBAAyB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;QAC1D,yBAAyB,QAAQ,CAAC,QAAQ,EAAE;QAC5C,yBAAyB,QAAQ,CAAC,YAAY,IAAI,WAAW,EAAE;QAC/D,yBAAyB,QAAQ,CAAC,aAAa,IAAI,WAAW,EAAE;QAChE,yBAAyB,QAAQ,CAAC,UAAU,IAAI,WAAW,EAAE;QAC7D,yBAAyB,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE;KAC3E,CAAC;IACF,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/H,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjG,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5K,CAAC;IACD,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3G,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,KAAK;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;SACvE,CAAC;QACJ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,oBAAW,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAe,EAAE,IAAgB;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B;YACE,MAAM,IAAI,iBAAQ,CAChB,GAAG;gBACD,CAAC,CAAC,iCAAiC,GAAG,oCAAoC;gBAC1E,CAAC,CAAC,0DAA0D,CAC/D,CAAC;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../src/commands/referrals.ts"],"names":[],"mappings":"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"}
package/dist/help.d.ts CHANGED
@@ -3,6 +3,6 @@
3
3
  * out of the handlers so the dispatch code stays about control flow and the
4
4
  * copy can be read (and kept consistent) in one place.
5
5
  */
6
- export declare const TOP_HELP = "atlas \u2014 manage an Atlas instance from the terminal\n\nUsage: atlas <command> [subcommand] [arguments] [options]\n\nCommands:\n login Authenticate and store a profile credential\n logout Remove a stored profile credential\n whoami Show the active profile and instance\n users list|get|create|delete\n orgs list|get|members\n api-keys list|create|revoke\n webhooks list|create\n sessions revoke\n config export|import Config-as-code: round-trip the instance's config\n actions list|deploy|test|logs\n init Create or complete an app's setup (idempotent); secrets to 0600 files\n preflight Check an instance's setup; non-zero exit on errors (for CI)\n env Print deploy variables: public values + secret file paths\n client rotate Rotate an OAuth client secret straight into its file\n referrals connect|backfill|status\n Connect a referral platform, backfill, check the connection\n\nGlobal options:\n --profile <name> Use a named profile (default: active, else \"default\")\n --json Emit raw JSON instead of a human table\n --limit <n> Page size for list commands that paginate\n --starting-after <cursor> Pagination cursor (from a prior page's hint)\n -h, --help Show this help, or help for a command\n -v, --version Print the version\n\nEnvironment overrides:\n ATLAS_SECRET_KEY Secret key to use instead of the stored one\n ATLAS_API_URL API URL to use instead of the stored one\n ATLAS_PLATFORM_KEY Platform key (psk_) for atlas init\n REFERALLY_BASE_URL Referally base URL for atlas referrals connect\n REFERALLY_API_KEY Referally merchant key for atlas referrals connect (never stored)\n\nSecrets: a command that receives a secret writes it to a 0600 file under\n~/.config/<product>/ and prints only the path. --print-secret prints it instead.\n\nRun 'atlas <command> --help' for command-specific help.";
6
+ export declare const TOP_HELP = "atlas \u2014 manage an Atlas instance from the terminal\n\nUsage: atlas <command> [subcommand] [arguments] [options]\n\nCommands:\n login Authenticate and store a profile credential\n logout Remove a stored profile credential\n whoami Show the active profile and instance\n users list|get|create|delete\n orgs list|get|members\n api-keys list|create|revoke\n webhooks list|create\n sessions revoke\n config export|import Config-as-code: round-trip the instance's config\n actions list|deploy|test|logs\n init Create or complete an app's setup (idempotent); secrets to 0600 files\n preflight Check an instance's setup; non-zero exit on errors (for CI)\n env Print deploy variables: public values + secret file paths\n client rotate Rotate an OAuth client secret straight into its file\n referrals connect|backfill|status\n Connect a referral platform, backfill, check the connection\n import --from <vendor> <file>\n Move users from Auth0, Clerk, Supabase, Firebase, Cognito,\n Auth.js, WorkOS or Better Auth (resumable; --dry-run first)\n mcp install Add the Atlas MCP server (docs search) to Cursor, Claude Code,\n Codex or VS Code\n\nGlobal options:\n --profile <name> Use a named profile (default: active, else \"default\")\n --json Emit raw JSON instead of a human table\n --limit <n> Page size for list commands that paginate\n --starting-after <cursor> Pagination cursor (from a prior page's hint)\n -h, --help Show this help, or help for a command\n -v, --version Print the version\n\nEnvironment overrides:\n ATLAS_SECRET_KEY Secret key to use instead of the stored one\n ATLAS_API_URL API URL to use instead of the stored one\n ATLAS_PLATFORM_KEY Platform key (psk_) for atlas init\n REFERALLY_BASE_URL Referalli base URL for atlas referrals connect\n REFERALLY_API_KEY Referalli merchant key for atlas referrals connect (never stored)\n\nSecrets: a command that receives a secret writes it to a 0600 file under\n~/.config/<product>/ and prints only the path. --print-secret prints it instead.\n\nRun 'atlas <command> --help' for command-specific help.";
7
7
  /** Per-command help, keyed by the resource word. */
8
8
  export declare const COMMAND_HELP: Record<string, string>;
package/dist/help.js CHANGED
@@ -27,6 +27,11 @@ Commands:
27
27
  client rotate Rotate an OAuth client secret straight into its file
28
28
  referrals connect|backfill|status
29
29
  Connect a referral platform, backfill, check the connection
30
+ import --from <vendor> <file>
31
+ Move users from Auth0, Clerk, Supabase, Firebase, Cognito,
32
+ Auth.js, WorkOS or Better Auth (resumable; --dry-run first)
33
+ mcp install Add the Atlas MCP server (docs search) to Cursor, Claude Code,
34
+ Codex or VS Code
30
35
 
31
36
  Global options:
32
37
  --profile <name> Use a named profile (default: active, else "default")
@@ -40,8 +45,8 @@ Environment overrides:
40
45
  ATLAS_SECRET_KEY Secret key to use instead of the stored one
41
46
  ATLAS_API_URL API URL to use instead of the stored one
42
47
  ATLAS_PLATFORM_KEY Platform key (psk_) for atlas init
43
- REFERALLY_BASE_URL Referally base URL for atlas referrals connect
44
- REFERALLY_API_KEY Referally merchant key for atlas referrals connect (never stored)
48
+ REFERALLY_BASE_URL Referalli base URL for atlas referrals connect
49
+ REFERALLY_API_KEY Referalli merchant key for atlas referrals connect (never stored)
45
50
 
46
51
  Secrets: a command that receives a secret writes it to a 0600 file under
47
52
  ~/.config/<product>/ and prints only the path. --print-secret prints it instead.
@@ -49,23 +54,70 @@ Secrets: a command that receives a secret writes it to a 0600 file under
49
54
  Run 'atlas <command> --help' for command-specific help.`;
50
55
  /** Per-command help, keyed by the resource word. */
51
56
  exports.COMMAND_HELP = {
57
+ import: `atlas import — move users from another auth provider
58
+
59
+ Usage:
60
+ atlas import --from <vendor> <export-file> [--dry-run]
61
+
62
+ Vendors and the file each one reads:
63
+ auth0 the user export job (NDJSON/JSON); --hashes <file> merges the password export
64
+ clerk the dashboard CSV export, or users JSON from the Backend API
65
+ supabase auth.users rows as CSV or JSON (with an identities array for social links)
66
+ firebase firebase auth:export --format=json; needs --hash-config <file>
67
+ cognito aws cognito-idp list-users JSON, or the user-pool CSV
68
+ authjs the adapter's users + accounts tables as JSON
69
+ workos User Management users JSON (+ organization_memberships)
70
+ better-auth JSON of the user, account, member and organization tables
71
+
72
+ Options:
73
+ --dry-run Map and summarise only; nothing is sent
74
+ --batch-size <n> Users per request, 1-100 (default 100)
75
+ --state-file <file> Progress file (default <export-file>.atlas-import.json); re-running resumes
76
+ --hash-config <file> Firebase hash parameters: {signer_key, salt_separator, rounds, mem_cost}
77
+ --hashes <file> Password hashes keyed by email, merged onto the users
78
+ --create-orgs Create organizations that memberships name but that do not exist yet
79
+ --json Machine-readable summary
80
+
81
+ Batches are sent with upsert, so a resumed or repeated run never duplicates a
82
+ user or a membership. Exit code 2 means some rows were reported as issues.`,
83
+ mcp: `atlas mcp — connect AI coding agents to Atlas
84
+
85
+ Usage:
86
+ atlas mcp install --cursor | --claude-code | --codex | --vscode [--dir <project>] [--global]
87
+
88
+ Adds the Atlas MCP server (npx -y @atlasauth/mcp) to the client's config so the
89
+ agent can search and read the Atlas docs. Servers already in the file are kept.
90
+
91
+ --cursor .cursor/mcp.json in the project (~/.cursor/mcp.json with --global)
92
+ --claude-code .mcp.json in the project
93
+ --codex ~/.codex/config.toml (or $CODEX_HOME/config.toml)
94
+ --vscode .vscode/mcp.json in the project
95
+ --dir <path> The project directory (default: the current directory)
96
+
97
+ No key is written. To also manage your instance from the agent, add
98
+ ATLAS_SECRET_KEY to the server's env yourself.`,
52
99
  referrals: `atlas referrals — referral attribution
53
100
 
54
101
  Usage:
55
102
  atlas referrals connect --provider referally --program <prg_…> --base-url <url>
56
103
  [--referally-key-file <path|-> | --referally-key <rk_…>]
57
104
  [--auto-enroll] [--destination <url>] [--tracking-token <token>] [--enable]
105
+ [--no-sync] [--allow-mode-mismatch]
58
106
  atlas referrals connect --provider webhook --endpoint <https-url>
59
107
  [--secret-file <path|->] [--program <id>] [--auto-enroll] [--enable]
60
108
  atlas referrals backfill --since <YYYY-MM-DD> [--map <file.csv>]
61
109
  [--metadata-path public_metadata.referral_code] [--wait]
62
110
  atlas referrals status
63
111
 
64
- connect --provider referally creates the Atlas connection on Referally with
112
+ connect --provider referally creates the Atlas connection on Referalli with
65
113
  your merchant key (bring your own key: used for this one call, never stored or
66
114
  printed), saves the connection id and secret on the instance, and runs a ping.
67
- --auto-enroll and --destination are passed to Referally. --enable turns
68
- referrals on when the ping passes. Prefer --referally-key-file (or
115
+ It requires v2 signatures on the connection from the start and registers a
116
+ Referalli webhook that sends referral changes (voided, approved, reassigned…)
117
+ back to Atlas; --no-sync skips the webhook. A test key (rk_test_) belongs with a
118
+ development instance and a live key with production: a mismatch is refused
119
+ unless --allow-mode-mismatch. --auto-enroll and --destination are passed to
120
+ Referalli. --enable turns referrals on when the ping passes. Prefer --referally-key-file (or
69
121
  REFERALLY_API_KEY) to --referally-key: a key on the command line can end up in
70
122
  your shell history.
71
123
 
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAwCgC,CAAC;AAEzD,oDAAoD;AACvC,QAAA,YAAY,GAA2B;IAClD,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA8B4D;IAEvE,KAAK,EAAE;;;;;;mCAM0B;IAEjC,MAAM,EAAE;;uCAE6B;IAErC,MAAM,EAAE;;gDAEsC;IAE9C,KAAK,EAAE;;;;;;wCAM+B;IAEtC,IAAI,EAAE;;;;;uCAK+B;IAErC,UAAU,EAAE;;;;;;8CAMgC;IAE5C,QAAQ,EAAE;;;;;;0EAM8D;IAExE,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA4BiE;IAEvE,SAAS,EAAE;;;;;;oDAMuC;IAElD,GAAG,EAAE;;;;;;;qDAO8C;IAEnD,MAAM,EAAE;;;;;;;;wDAQ8C;IAEtD,QAAQ,EAAE;;;8CAGkC;IAE5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;8EAoBoE;IAC5E,OAAO,EAAE;;;;;;;;;;;gFAWqE;CAC/E,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDA6CgC,CAAC;AAEzD,oDAAoD;AACvC,QAAA,YAAY,GAA2B;IAClD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;2EAyBiE;IACzE,GAAG,EAAE;;;;;;;;;;;;;;;+CAewC;IAC7C,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAmC4D;IAEvE,KAAK,EAAE;;;;;;mCAM0B;IAEjC,MAAM,EAAE;;uCAE6B;IAErC,MAAM,EAAE;;gDAEsC;IAE9C,KAAK,EAAE;;;;;;wCAM+B;IAEtC,IAAI,EAAE;;;;;uCAK+B;IAErC,UAAU,EAAE;;;;;;8CAMgC;IAE5C,QAAQ,EAAE;;;;;;0EAM8D;IAExE,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA4BiE;IAEvE,SAAS,EAAE;;;;;;oDAMuC;IAElD,GAAG,EAAE;;;;;;;qDAO8C;IAEnD,MAAM,EAAE;;;;;;;;wDAQ8C;IAEtD,QAAQ,EAAE;;;8CAGkC;IAE5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;8EAoBoE;IAC5E,OAAO,EAAE;;;;;;;;;;;gFAWqE;CAC/E,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * A small RFC 4180 CSV reader for vendor exports: quoted fields, doubled quotes,
3
+ * embedded commas and newlines, CRLF. Returns one object per data row keyed by
4
+ * the header row. No dependency, because the CLI ships none it does not need.
5
+ */
6
+ export declare function parseCsv(text: string): Array<Record<string, string>>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCsv = parseCsv;
4
+ /**
5
+ * A small RFC 4180 CSV reader for vendor exports: quoted fields, doubled quotes,
6
+ * embedded commas and newlines, CRLF. Returns one object per data row keyed by
7
+ * the header row. No dependency, because the CLI ships none it does not need.
8
+ */
9
+ function parseCsv(text) {
10
+ const rows = [];
11
+ let row = [];
12
+ let field = '';
13
+ let quoted = false;
14
+ const src = text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;
15
+ for (let i = 0; i < src.length; i++) {
16
+ const c = src[i];
17
+ if (quoted) {
18
+ if (c === '"') {
19
+ if (src[i + 1] === '"') {
20
+ field += '"';
21
+ i++;
22
+ }
23
+ else
24
+ quoted = false;
25
+ }
26
+ else
27
+ field += c;
28
+ continue;
29
+ }
30
+ if (c === '"')
31
+ quoted = true;
32
+ else if (c === ',') {
33
+ row.push(field);
34
+ field = '';
35
+ }
36
+ else if (c === '\n' || c === '\r') {
37
+ if (c === '\r' && src[i + 1] === '\n')
38
+ i++;
39
+ row.push(field);
40
+ field = '';
41
+ if (row.some((v) => v !== ''))
42
+ rows.push(row);
43
+ row = [];
44
+ }
45
+ else
46
+ field += c;
47
+ }
48
+ row.push(field);
49
+ if (row.some((v) => v !== ''))
50
+ rows.push(row);
51
+ const [header, ...data] = rows;
52
+ if (!header)
53
+ return [];
54
+ const keys = header.map((h) => h.trim());
55
+ return data.map((cells) => {
56
+ const out = {};
57
+ keys.forEach((k, idx) => {
58
+ out[k] = cells[idx] ?? '';
59
+ });
60
+ return out;
61
+ });
62
+ }
63
+ //# sourceMappingURL=csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/import/csv.ts"],"names":[],"mappings":";;AAKA,4BA2CC;AAhDD;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAa,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACvB,KAAK,IAAI,GAAG,CAAC;oBACb,CAAC,EAAE,CAAC;gBACN,CAAC;;oBAAM,MAAM,GAAG,KAAK,CAAC;YACxB,CAAC;;gBAAM,KAAK,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC;aACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;;YAAM,KAAK,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}