@eide/foir-cli 0.1.29 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/codegen/generators/static-documents.d.ts.map +1 -1
  2. package/dist/codegen/generators/static-documents.js +4 -1
  3. package/dist/commands/api-keys.d.ts.map +1 -1
  4. package/dist/commands/api-keys.js +3 -1
  5. package/dist/commands/auth-config.d.ts.map +1 -1
  6. package/dist/commands/auth-config.js +4 -3
  7. package/dist/commands/auth-providers.d.ts.map +1 -1
  8. package/dist/commands/auth-providers.js +7 -2
  9. package/dist/commands/customer-profiles.d.ts.map +1 -1
  10. package/dist/commands/customer-profiles.js +3 -1
  11. package/dist/commands/customers.d.ts.map +1 -1
  12. package/dist/commands/customers.js +9 -3
  13. package/dist/commands/embeddings.d.ts.map +1 -1
  14. package/dist/commands/embeddings.js +9 -3
  15. package/dist/commands/experiments.d.ts.map +1 -1
  16. package/dist/commands/experiments.js +28 -9
  17. package/dist/commands/extensions.d.ts.map +1 -1
  18. package/dist/commands/extensions.js +22 -29
  19. package/dist/commands/files.d.ts.map +1 -1
  20. package/dist/commands/hooks.d.ts.map +1 -1
  21. package/dist/commands/hooks.js +14 -6
  22. package/dist/commands/locales.d.ts.map +1 -1
  23. package/dist/commands/locales.js +13 -4
  24. package/dist/commands/login.d.ts.map +1 -1
  25. package/dist/commands/login.js +0 -1
  26. package/dist/commands/models.d.ts.map +1 -1
  27. package/dist/commands/models.js +6 -2
  28. package/dist/commands/notes.d.ts.map +1 -1
  29. package/dist/commands/notes.js +4 -2
  30. package/dist/commands/notifications.d.ts.map +1 -1
  31. package/dist/commands/operations.d.ts.map +1 -1
  32. package/dist/commands/operations.js +16 -5
  33. package/dist/commands/records.d.ts.map +1 -1
  34. package/dist/commands/records.js +15 -5
  35. package/dist/commands/schedules.d.ts.map +1 -1
  36. package/dist/commands/schedules.js +7 -2
  37. package/dist/commands/search.d.ts.map +1 -1
  38. package/dist/commands/segments.d.ts.map +1 -1
  39. package/dist/commands/segments.js +17 -5
  40. package/dist/commands/select-project.js +3 -3
  41. package/dist/commands/settings.d.ts.map +1 -1
  42. package/dist/commands/settings.js +3 -1
  43. package/dist/commands/variant-catalog.d.ts.map +1 -1
  44. package/dist/commands/variant-catalog.js +10 -3
  45. package/dist/commands/whoami.js +1 -1
  46. package/dist/graphql/generated.d.ts +4 -10
  47. package/dist/graphql/generated.d.ts.map +1 -1
  48. package/dist/graphql/generated.js +2 -2
  49. package/dist/lib/errors.d.ts.map +1 -1
  50. package/dist/lib/errors.js +3 -0
  51. package/dist/lib/extension-helpers.d.ts.map +1 -1
  52. package/dist/lib/seed-helpers.d.ts.map +1 -1
  53. package/package.json +20 -23
@@ -64,7 +64,9 @@ export function registerRecordsCommands(program, globalOpts) {
64
64
  result = data.record;
65
65
  }
66
66
  else {
67
- const data = await client.request(GetRecordDocument, { id: idOrKey });
67
+ const data = await client.request(GetRecordDocument, {
68
+ id: idOrKey,
69
+ });
68
70
  result = data.record;
69
71
  }
70
72
  }
@@ -105,7 +107,9 @@ export function registerRecordsCommands(program, globalOpts) {
105
107
  const client = await createClient(opts);
106
108
  const inputData = await parseInputData(cmdOpts);
107
109
  const input = { modelKey, ...inputData };
108
- const data = await client.request(CreateRecordDocument, { input });
110
+ const data = await client.request(CreateRecordDocument, {
111
+ input,
112
+ });
109
113
  formatOutput(data.createRecord, opts);
110
114
  if (!(opts.json || opts.jsonl || opts.quiet)) {
111
115
  success(`Created record ${data.createRecord.record.id}`);
@@ -188,7 +192,9 @@ export function registerRecordsCommands(program, globalOpts) {
188
192
  const opts = globalOpts();
189
193
  const client = await createClient(opts);
190
194
  const naturalKey = cmdOpts.naturalKey ?? `${id}-copy`;
191
- const data = await client.request(DuplicateRecordDocument, { input: { recordId: id, naturalKey } });
195
+ const data = await client.request(DuplicateRecordDocument, {
196
+ input: { recordId: id, naturalKey },
197
+ });
192
198
  formatOutput(data.duplicateRecord, opts);
193
199
  if (!(opts.json || opts.jsonl || opts.quiet)) {
194
200
  success(`Duplicated → ${data.duplicateRecord.record.id}`);
@@ -262,7 +268,9 @@ export function registerRecordsCommands(program, globalOpts) {
262
268
  input.changeDescription = cmdOpts.message;
263
269
  if (cmdOpts.sourceVersion)
264
270
  input.sourceVersionId = cmdOpts.sourceVersion;
265
- const data = await client.request(CreateVersionDocument, { input });
271
+ const data = await client.request(CreateVersionDocument, {
272
+ input,
273
+ });
266
274
  formatOutput(data.createVersion, opts);
267
275
  if (!(opts.json || opts.jsonl || opts.quiet)) {
268
276
  success(`Created version ${data.createVersion.id}`);
@@ -295,7 +303,9 @@ export function registerRecordsCommands(program, globalOpts) {
295
303
  input.priority = parseInt(cmdOpts.priority, 10);
296
304
  if (cmdOpts.default)
297
305
  input.isDefault = true;
298
- const data = await client.request(CreateVariantDocument, { input });
306
+ const data = await client.request(CreateVariantDocument, {
307
+ input,
308
+ });
299
309
  formatOutput(data.createVariant, opts);
300
310
  if (!(opts.json || opts.jsonl || opts.quiet)) {
301
311
  success(`Created variant ${data.createVariant.id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CA8KN"}
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAmLN"}
@@ -64,7 +64,9 @@ export function registerSchedulesCommands(program, globalOpts) {
64
64
  const opts = globalOpts();
65
65
  const client = await createClient(opts);
66
66
  const input = await parseInputData(cmdOpts);
67
- const data = await client.request(CreateScheduleDocument, { input });
67
+ const data = await client.request(CreateScheduleDocument, {
68
+ input,
69
+ });
68
70
  formatOutput(data.createSchedule, opts);
69
71
  if (!(opts.json || opts.jsonl || opts.quiet))
70
72
  success(`Created schedule ${data.createSchedule.key}`);
@@ -79,7 +81,10 @@ export function registerSchedulesCommands(program, globalOpts) {
79
81
  const opts = globalOpts();
80
82
  const client = await createClient(opts);
81
83
  const input = await parseInputData(cmdOpts);
82
- const data = await client.request(UpdateScheduleDocument, { key, input });
84
+ const data = await client.request(UpdateScheduleDocument, {
85
+ key,
86
+ input,
87
+ });
83
88
  formatOutput(data.updateSchedule, opts);
84
89
  if (!(opts.json || opts.jsonl || opts.quiet))
85
90
  success(`Updated schedule "${key}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAwEN"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAgFN"}
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/commands/segments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAuKN"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/commands/segments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgBtD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAsLN"}
@@ -50,11 +50,15 @@ export function registerSegmentsCommands(program, globalOpts) {
50
50
  const client = await createClient(opts);
51
51
  let result;
52
52
  if (isUUID(idOrKey)) {
53
- const data = await client.request(GetSegmentDocument, { id: idOrKey });
53
+ const data = await client.request(GetSegmentDocument, {
54
+ id: idOrKey,
55
+ });
54
56
  result = data.segment;
55
57
  }
56
58
  else {
57
- const data = await client.request(GetSegmentByKeyDocument, { key: idOrKey });
59
+ const data = await client.request(GetSegmentByKeyDocument, {
60
+ key: idOrKey,
61
+ });
58
62
  result = data.segmentByKey;
59
63
  }
60
64
  if (!result)
@@ -71,7 +75,9 @@ export function registerSegmentsCommands(program, globalOpts) {
71
75
  const opts = globalOpts();
72
76
  const client = await createClient(opts);
73
77
  const input = await parseInputData(cmdOpts);
74
- const data = await client.request(CreateSegmentDocument, { input });
78
+ const data = await client.request(CreateSegmentDocument, {
79
+ input,
80
+ });
75
81
  formatOutput(data.createSegment, opts);
76
82
  if (!(opts.json || opts.jsonl || opts.quiet))
77
83
  success(`Created segment ${data.createSegment.key}`);
@@ -86,7 +92,10 @@ export function registerSegmentsCommands(program, globalOpts) {
86
92
  const opts = globalOpts();
87
93
  const client = await createClient(opts);
88
94
  const input = await parseInputData(cmdOpts);
89
- const data = await client.request(UpdateSegmentDocument, { id, input });
95
+ const data = await client.request(UpdateSegmentDocument, {
96
+ id,
97
+ input,
98
+ });
90
99
  formatOutput(data.updateSegment, opts);
91
100
  if (!(opts.json || opts.jsonl || opts.quiet))
92
101
  success(`Updated segment ${id}`);
@@ -137,7 +146,10 @@ export function registerSegmentsCommands(program, globalOpts) {
137
146
  .action(withErrorHandler(globalOpts, async (segmentId, customerId) => {
138
147
  const opts = globalOpts();
139
148
  const client = await createClient(opts);
140
- const data = await client.request(TestSegmentEvaluationDocument, { segmentId, customerId });
149
+ const data = await client.request(TestSegmentEvaluationDocument, {
150
+ segmentId,
151
+ customerId,
152
+ });
141
153
  formatOutput(data.testSegmentEvaluation, opts);
142
154
  }));
143
155
  }
@@ -79,14 +79,14 @@ export function registerSelectProjectCommand(program, globalOpts) {
79
79
  const credentials = await getCredentials();
80
80
  if (!credentials) {
81
81
  console.log('Not logged in. Run `foir login` first.');
82
- process.exit(1);
82
+ throw new Error('Not authenticated');
83
83
  }
84
84
  console.log('Fetching your projects...\n');
85
85
  const sessionContext = await fetchSessionContext(apiUrl, credentials.accessToken);
86
86
  const { availableTenants: tenants, availableProjects: projects } = sessionContext;
87
87
  if (projects.length === 0) {
88
88
  console.log('No projects found. Create one in the platform first.');
89
- process.exit(1);
89
+ throw new Error('No projects available');
90
90
  }
91
91
  const tenantNameMap = new Map(tenants.map((t) => [t.id, t.name]));
92
92
  let selectedProject;
@@ -98,7 +98,7 @@ export function registerSelectProjectCommand(program, globalOpts) {
98
98
  for (const p of projects) {
99
99
  console.log(` - ${p.name} (${p.id})`);
100
100
  }
101
- process.exit(1);
101
+ throw new Error('Project not found');
102
102
  }
103
103
  selectedProject = found;
104
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0BtD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAgHN"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0BtD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAkHN"}
@@ -30,7 +30,9 @@ export function registerSettingsCommands(program, globalOpts) {
30
30
  const client = await createClient(opts);
31
31
  let items;
32
32
  if (cmdOpts.category) {
33
- const data = await client.request(SettingsByCategoryDocument, { category: cmdOpts.category });
33
+ const data = await client.request(SettingsByCategoryDocument, {
34
+ category: cmdOpts.category,
35
+ });
34
36
  items = data.settingsByCategory;
35
37
  }
36
38
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"variant-catalog.d.ts","sourceRoot":"","sources":["../../src/commands/variant-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AActD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAsIN"}
1
+ {"version":3,"file":"variant-catalog.d.ts","sourceRoot":"","sources":["../../src/commands/variant-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AActD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,aAAa,GAC9B,IAAI,CAyJN"}
@@ -48,7 +48,9 @@ export function registerVariantCatalogCommands(program, globalOpts) {
48
48
  const client = await createClient(opts);
49
49
  let result;
50
50
  if (isUUID(idOrKey)) {
51
- const data = await client.request(GetVariantCatalogEntryDocument, { id: idOrKey });
51
+ const data = await client.request(GetVariantCatalogEntryDocument, {
52
+ id: idOrKey,
53
+ });
52
54
  result = data.variantCatalogEntry;
53
55
  }
54
56
  else {
@@ -69,7 +71,9 @@ export function registerVariantCatalogCommands(program, globalOpts) {
69
71
  const opts = globalOpts();
70
72
  const client = await createClient(opts);
71
73
  const input = await parseInputData(cmdOpts);
72
- const data = await client.request(CreateVariantCatalogEntryDocument, { input });
74
+ const data = await client.request(CreateVariantCatalogEntryDocument, {
75
+ input,
76
+ });
73
77
  formatOutput(data.createVariantCatalogEntry, opts);
74
78
  if (!(opts.json || opts.jsonl || opts.quiet))
75
79
  success(`Created variant catalog entry ${data.createVariantCatalogEntry.key}`);
@@ -84,7 +88,10 @@ export function registerVariantCatalogCommands(program, globalOpts) {
84
88
  const opts = globalOpts();
85
89
  const client = await createClient(opts);
86
90
  const input = await parseInputData(cmdOpts);
87
- const data = await client.request(UpdateVariantCatalogEntryDocument, { id, input });
91
+ const data = await client.request(UpdateVariantCatalogEntryDocument, {
92
+ id,
93
+ input,
94
+ });
88
95
  formatOutput(data.updateVariantCatalogEntry, opts);
89
96
  if (!(opts.json || opts.jsonl || opts.quiet))
90
97
  success(`Updated variant catalog entry ${data.updateVariantCatalogEntry.key}`);
@@ -16,7 +16,7 @@ export function registerWhoamiCommand(program, globalOpts) {
16
16
  console.log('Not logged in.');
17
17
  console.log('\nRun `foir login` to authenticate.');
18
18
  }
19
- process.exit(1);
19
+ throw new Error('Not authenticated');
20
20
  }
21
21
  const expired = isTokenExpired(credentials);
22
22
  const projectContext = await getProjectContext();
@@ -42,6 +42,7 @@ export type Scalars = {
42
42
  input: number;
43
43
  output: number;
44
44
  };
45
+ /** The `BigInt` scalar type represents non-fractional signed whole numeric values. */
45
46
  BigInt: {
46
47
  input: any;
47
48
  output: any;
@@ -436,7 +437,7 @@ export type BillingCustomPackage = {
436
437
  validUntil?: Maybe<Scalars['DateTime']['output']>;
437
438
  };
438
439
  export type BillingInterval = 'MONTH' | 'YEAR';
439
- export type BillingMetric = 'API_REQUESTS' | 'MEDIA_STORAGE' | 'MEDIA_TRANSFORMATIONS' | 'PROJECTS' | 'USERS';
440
+ export type BillingMetric = 'MEDIA_STORAGE' | 'MEDIA_TRANSFORMATIONS' | 'PROJECTS' | 'RECORDS' | 'USERS';
440
441
  export type BillingPackageLimit = {
441
442
  id: Scalars['ID']['output'];
442
443
  includedQuantity?: Maybe<Scalars['BigInt']['output']>;
@@ -757,7 +758,6 @@ export type CreateOperationInput = {
757
758
  models?: InputMaybe<Array<Scalars['String']['input']>>;
758
759
  name: Scalars['String']['input'];
759
760
  outputSchema?: InputMaybe<Scalars['JSON']['input']>;
760
- rateLimitWeight?: InputMaybe<Scalars['Int']['input']>;
761
761
  retryPolicy?: InputMaybe<Scalars['JSON']['input']>;
762
762
  streamConfig?: InputMaybe<OperationStreamConfigInput>;
763
763
  timeoutMs?: InputMaybe<Scalars['Int']['input']>;
@@ -1859,6 +1859,8 @@ export type InstallExtensionInput = {
1859
1859
  description?: InputMaybe<Scalars['String']['input']>;
1860
1860
  direction?: InputMaybe<Scalars['String']['input']>;
1861
1861
  extensionType?: InputMaybe<Scalars['String']['input']>;
1862
+ /** If true, delete existing extension before installing (force reinstall) */
1863
+ force?: InputMaybe<Scalars['Boolean']['input']>;
1862
1864
  key: Scalars['String']['input'];
1863
1865
  models?: InputMaybe<Array<InstallExtensionModelInput>>;
1864
1866
  name: Scalars['String']['input'];
@@ -3437,11 +3439,6 @@ export type Operation = {
3437
3439
  models?: Maybe<Array<Scalars['String']['output']>>;
3438
3440
  name: Scalars['String']['output'];
3439
3441
  outputSchema?: Maybe<Scalars['JSON']['output']>;
3440
- /**
3441
- * Rate limit weight — how many rate limit points each execution consumes (default 1).
3442
- * Expensive operations can set higher weights to throttle more aggressively.
3443
- */
3444
- rateLimitWeight: Scalars['Int']['output'];
3445
3442
  retryPolicy?: Maybe<Scalars['JSON']['output']>;
3446
3443
  /** Streaming configuration. Operations with this set support STREAM execution mode. */
3447
3444
  streamConfig?: Maybe<OperationStreamConfig>;
@@ -5708,7 +5705,6 @@ export type UpdateOperationInput = {
5708
5705
  models?: InputMaybe<Array<Scalars['String']['input']>>;
5709
5706
  name?: InputMaybe<Scalars['String']['input']>;
5710
5707
  outputSchema?: InputMaybe<Scalars['JSON']['input']>;
5711
- rateLimitWeight?: InputMaybe<Scalars['Int']['input']>;
5712
5708
  retryPolicy?: InputMaybe<Scalars['JSON']['input']>;
5713
5709
  streamConfig?: InputMaybe<OperationStreamConfigInput>;
5714
5710
  timeoutMs?: InputMaybe<Scalars['Int']['input']>;
@@ -7285,7 +7281,6 @@ export type ListOperationsQuery = {
7285
7281
  category?: string | null;
7286
7282
  endpoint: string;
7287
7283
  isActive: boolean;
7288
- rateLimitWeight: number;
7289
7284
  createdAt: string;
7290
7285
  updatedAt: string;
7291
7286
  }>;
@@ -7312,7 +7307,6 @@ export type GetOperationQuery = {
7312
7307
  ui?: unknown | null;
7313
7308
  isActive: boolean;
7314
7309
  allowedRoles: Array<string>;
7315
- rateLimitWeight: number;
7316
7310
  createdAt: string;
7317
7311
  updatedAt: string;
7318
7312
  streamConfig?: {