@wictorwilen/cocogen 1.0.11 → 1.0.13

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 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAK1D,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AA0+BF,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAyB1G;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CA2B9C;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAOxG;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAsHtG;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAmH9C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAK1D,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AA8gCF,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAyB1G;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CA2B9C;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAOxG;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAsHtG;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAC,CAmH9C"}
package/dist/init/init.js CHANGED
@@ -60,6 +60,18 @@ function toCsIdentifier(name) {
60
60
  const pascal = parts.map((p) => p.slice(0, 1).toUpperCase() + p.slice(1)).join("");
61
61
  return pascal || "Item";
62
62
  }
63
+ function toCsPropertyName(name, itemTypeName, used) {
64
+ const base = toCsIdentifier(name);
65
+ const forbidden = itemTypeName.toLowerCase();
66
+ let candidate = base.toLowerCase() === forbidden ? `${base}Value` : base;
67
+ let suffix = 1;
68
+ while (used.has(candidate.toLowerCase())) {
69
+ candidate = `${base}${suffix}`;
70
+ suffix += 1;
71
+ }
72
+ used.add(candidate.toLowerCase());
73
+ return candidate;
74
+ }
63
75
  function toTsIdentifier(name) {
64
76
  const parts = name.split(/[^A-Za-z0-9]+/g).filter(Boolean);
65
77
  if (parts.length === 0)
@@ -247,6 +259,11 @@ async function writeGeneratedTs(outDir, ir, schemaFolderName) {
247
259
  tsType: toTsType(p.type),
248
260
  };
249
261
  });
262
+ const idProperty = ir.properties.find((p) => p.name === ir.item.idPropertyName);
263
+ const idRawHeaders = idProperty?.personEntity?.fields[0]?.source.csvHeaders ?? idProperty?.source.csvHeaders ?? [];
264
+ const idRawExpression = idRawHeaders.length
265
+ ? `parseString(readSourceValue(row, ${JSON.stringify(idRawHeaders)}))`
266
+ : '""';
250
267
  await writeFile(path.join(outDir, "src", schemaFolderName, "model.ts"), await renderTemplate("ts/src/generated/model.ts.ejs", {
251
268
  itemTypeName: ir.item.typeName,
252
269
  properties: modelProperties,
@@ -281,6 +298,7 @@ async function writeGeneratedTs(outDir, ir, schemaFolderName) {
281
298
  await writeFile(path.join(outDir, "src", schemaFolderName, "fromCsvRow.ts"), await renderTemplate("ts/src/generated/fromCsvRow.ts.ejs", {
282
299
  properties: transformProperties,
283
300
  itemTypeName: ir.item.typeName,
301
+ idRawExpression,
284
302
  }), "utf8");
285
303
  const propertiesObjectLines = ir.properties
286
304
  .filter((p) => p.name !== ir.item.contentPropertyName)
@@ -294,9 +312,10 @@ async function writeGeneratedTs(outDir, ir, schemaFolderName) {
294
312
  return lines;
295
313
  })
296
314
  .join("\n");
297
- const contentBlock = ir.item.contentPropertyName
298
- ? `,\n content: {\n type: \"text\",\n value: String((item as any)[contentPropertyName ?? \"\"] ?? \"\"),\n }`
299
- : "";
315
+ const contentValueExpression = ir.item.contentPropertyName
316
+ ? "String((item as any)[contentPropertyName ?? \"\"] ?? \"\")"
317
+ : "\"\"";
318
+ const contentBlock = `,\n content: {\n type: \"text\",\n value: ${contentValueExpression},\n }`;
300
319
  await writeFile(path.join(outDir, "src", schemaFolderName, "itemPayload.ts"), await renderTemplate("ts/src/generated/itemPayload.ts.ejs", {
301
320
  propertiesObjectLines,
302
321
  contentBlock,
@@ -649,6 +668,8 @@ function buildSampleCsv(ir) {
649
668
  async function writeGeneratedDotnet(outDir, ir, namespaceName, schemaFolderName, schemaNamespace) {
650
669
  await mkdir(path.join(outDir, schemaFolderName), { recursive: true });
651
670
  await mkdir(path.join(outDir, "Core"), { recursive: true });
671
+ const usedPropertyNames = new Set();
672
+ const itemTypeName = toCsIdentifier(ir.item.typeName);
652
673
  const properties = ir.properties.map((p) => {
653
674
  const parseFn = toCsParseFunction(p.type);
654
675
  const csvHeadersLiteral = `new[] { ${p.source.csvHeaders.map((h) => JSON.stringify(h)).join(", ")} }`;
@@ -676,7 +697,7 @@ async function writeGeneratedDotnet(outDir, ir, namespaceName, schemaFolderName,
676
697
  : `${parseFn}(row, ${csvHeadersLiteral})`;
677
698
  return {
678
699
  name: p.name,
679
- csName: toCsIdentifier(p.name),
700
+ csName: toCsPropertyName(p.name, itemTypeName, usedPropertyNames),
680
701
  csType: toCsType(p.type),
681
702
  csvHeaders: p.source.csvHeaders,
682
703
  csvHeadersLiteral,
@@ -738,10 +759,20 @@ async function writeGeneratedDotnet(outDir, ir, namespaceName, schemaFolderName,
738
759
  return lines.join("\n");
739
760
  })
740
761
  .join("\n");
741
- const constructorArgLines = properties
742
- .map((p, index) => {
743
- const comma = index < properties.length - 1 ? "," : "";
744
- return ` (${p.csType})transforms.TransformProperty(${JSON.stringify(p.name)}, row)${comma}`;
762
+ const itemIdProperty = properties.find((p) => p.name === ir.item.idPropertyName);
763
+ const idRawHeadersDotnet = itemIdProperty?.personEntity?.fields[0]?.source.csvHeaders ?? itemIdProperty?.csvHeaders ?? [];
764
+ const idRawHeadersLiteral = `new[] { ${idRawHeadersDotnet.map((h) => JSON.stringify(h)).join(", ")} }`;
765
+ const idRawExpressionDotnet = idRawHeadersDotnet.length
766
+ ? `CsvParser.ParseString(row, ${idRawHeadersLiteral})`
767
+ : "string.Empty";
768
+ const constructorArgs = [
769
+ ...properties.map((p) => `(${p.csType})transforms.TransformProperty(${JSON.stringify(p.name)}, row)`),
770
+ idRawExpressionDotnet,
771
+ ];
772
+ const constructorArgLines = constructorArgs
773
+ .map((arg, index) => {
774
+ const comma = index < constructorArgs.length - 1 ? "," : "";
775
+ return ` ${arg}${comma}`;
745
776
  })
746
777
  .join("\n");
747
778
  const propertiesObjectLines = properties
@@ -756,17 +787,19 @@ async function writeGeneratedDotnet(outDir, ir, namespaceName, schemaFolderName,
756
787
  return lines;
757
788
  })
758
789
  .join("\n");
759
- const itemIdProperty = properties.find((p) => p.name === ir.item.idPropertyName);
760
- const itemIdExpression = itemIdProperty ? `Convert.ToString(item.${itemIdProperty.csName}) ?? ""` : "\"\"";
761
- const contentBlock = ir.item.contentPropertyName
762
- ? [
763
- " externalItem.Content = new ExternalItemContent",
764
- " {",
765
- " Type = ExternalItemContentType.Text,",
766
- ` Value = Convert.ToString(item.${toCsIdentifier(ir.item.contentPropertyName)}) ?? string.Empty,`,
767
- " };",
768
- ].join("\n")
769
- : "";
790
+ const itemIdExpression = itemIdProperty
791
+ ? `!string.IsNullOrEmpty(item.CocoId) ? item.CocoId : (item.${itemIdProperty.csName} ?? string.Empty)`
792
+ : "\"\"";
793
+ const contentValueExpression = ir.item.contentPropertyName
794
+ ? `Convert.ToString(item.${toCsIdentifier(ir.item.contentPropertyName)}) ?? string.Empty`
795
+ : "string.Empty";
796
+ const contentBlock = [
797
+ " externalItem.Content = new ExternalItemContent",
798
+ " {",
799
+ " Type = ExternalItemContentType.Text,",
800
+ ` Value = ${contentValueExpression},`,
801
+ " };",
802
+ ].join("\n");
770
803
  await writeFile(path.join(outDir, schemaFolderName, "Model.cs"), await renderTemplate("dotnet/Generated/Model.cs.ejs", {
771
804
  schemaNamespace,
772
805
  itemTypeName: ir.item.typeName,
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":"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"}
@@ -59,21 +59,28 @@ public sealed class ConnectorCore
59
59
  }
60
60
 
61
61
  /// <summary>
62
- /// Provision the connection and schema (and profile source for people connectors).
62
+ /// Provision the connection and schema.
63
63
  /// </summary>
64
64
  public async Task ProvisionAsync()
65
65
  {
66
66
  EnsureGraph();
67
67
  await EnsureConnectionAsync();
68
68
  await PatchSchemaAsync();
69
- if (HasProfileSource())
70
- {
69
+ }
70
+
71
+ /// <summary>
72
+ /// Register the connection as a profile source and update its precedence.
73
+ /// </summary>
74
+ public async Task ProvisionProfileSourceAsync()
75
+ {
76
+ if (!HasProfileSource())
77
+ throw new InvalidOperationException("Profile source settings are missing.");
78
+
71
79
  <% if (isPeopleConnector) { -%>
72
- await RegisterProfileSourceInternalAsync(_connectionId);
80
+ await RegisterProfileSourceInternalAsync(_connectionId);
73
81
  <% } else { -%>
74
- throw new InvalidOperationException("Profile source registration is only supported for people connectors.");
82
+ throw new InvalidOperationException("Profile source registration is only supported for people connectors.");
75
83
  <% } -%>
76
- }
77
84
  }
78
85
 
79
86
  /// <summary>
@@ -111,6 +118,16 @@ public sealed class ConnectorCore
111
118
 
112
119
  var itemId = ItemPayload.GetItemId(item);
113
120
  var externalItem = ItemPayload.ToExternalItem(item);
121
+ externalItem.Id = itemId;
122
+ if (externalItem.Content == null)
123
+ {
124
+ externalItem.Content = new ExternalItemContent
125
+ {
126
+ Type = ExternalItemContentType.Text,
127
+ Value = string.Empty,
128
+ };
129
+ }
130
+ Console.WriteLine($"info: PUT item (id={itemId})");
114
131
  if (verbose)
115
132
  {
116
133
  var url = $"{_graph!.RequestAdapter.BaseUrl ?? SchemaConstants.GraphBaseUrl}/external/connections/{_connectionId}/items/{Uri.EscapeDataString(itemId)}";
@@ -372,31 +389,33 @@ public sealed class ConnectorCore
372
389
  if (_credential is null)
373
390
  throw new InvalidOperationException("Credential required for profile source registration.");
374
391
 
375
- if (await ProfileSourceExistsAsync(connectionId))
376
- return;
392
+ var exists = await ProfileSourceExistsAsync(connectionId);
377
393
 
378
394
  var webUrl = _profileSourceWebUrl ?? string.Empty;
379
395
  var displayName = _profileSourceDisplayName ?? _connectionName;
380
396
  var priority = _profileSourcePriority ?? "first";
381
397
 
382
- var payload = new Dictionary<string, object?>
398
+ if (!exists)
383
399
  {
384
- ["sourceId"] = connectionId,
385
- ["displayName"] = displayName,
386
- ["webUrl"] = webUrl,
387
- };
400
+ var payload = new Dictionary<string, object?>
401
+ {
402
+ ["sourceId"] = connectionId,
403
+ ["displayName"] = displayName,
404
+ ["webUrl"] = webUrl,
405
+ };
388
406
 
389
- var create = await GraphRequestAsync(
390
- _credential,
391
- HttpMethod.Post,
392
- $"{SchemaConstants.GraphBaseUrl}/admin/people/profileSources",
393
- payload
394
- );
407
+ var create = await GraphRequestAsync(
408
+ _credential,
409
+ HttpMethod.Post,
410
+ $"{SchemaConstants.GraphBaseUrl}/admin/people/profileSources",
411
+ payload
412
+ );
395
413
 
396
- if (!create.IsSuccessStatusCode && create.StatusCode != System.Net.HttpStatusCode.Conflict)
397
- {
398
- var text = await create.Content.ReadAsStringAsync();
399
- throw new InvalidOperationException($"Failed to register profile source (HTTP {(int)create.StatusCode}): {text}");
414
+ if (!create.IsSuccessStatusCode && create.StatusCode != System.Net.HttpStatusCode.Conflict)
415
+ {
416
+ var text = await create.Content.ReadAsStringAsync();
417
+ throw new InvalidOperationException($"Failed to register profile source (HTTP {(int)create.StatusCode}): {text}");
418
+ }
400
419
  }
401
420
 
402
421
  var sourceUrl = $"{SchemaConstants.GraphBaseUrl}/admin/people/profileSources(sourceId='{connectionId}')";
@@ -444,11 +463,21 @@ public sealed class ConnectorCore
444
463
  if (!doc.RootElement.TryGetProperty("value", out var values) || values.ValueKind != JsonValueKind.Array)
445
464
  return;
446
465
 
466
+ var precedenceFound = false;
447
467
  foreach (var entry in values.EnumerateArray())
448
468
  {
449
469
  if (!entry.TryGetProperty("id", out var idProp) || idProp.ValueKind != JsonValueKind.String)
450
470
  continue;
451
471
 
472
+ if (entry.TryGetProperty("name", out var nameProp) && nameProp.ValueKind == JsonValueKind.String)
473
+ {
474
+ var nameValue = nameProp.GetString();
475
+ if (!string.IsNullOrWhiteSpace(nameValue))
476
+ continue;
477
+ }
478
+
479
+ precedenceFound = true;
480
+
452
481
  var id = idProp.GetString() ?? string.Empty;
453
482
  if (string.IsNullOrWhiteSpace(id)) continue;
454
483
 
@@ -462,7 +491,24 @@ public sealed class ConnectorCore
462
491
  }
463
492
  }
464
493
 
465
- existing = DeduplicateUrls(existing).Where((u) => !string.IsNullOrWhiteSpace(u) && u != sourceUrl).ToList();
494
+ existing = DeduplicateUrls(existing).Where((u) => !string.IsNullOrWhiteSpace(u)).ToList();
495
+ if (include)
496
+ {
497
+ if (existing.Contains(sourceUrl, StringComparer.OrdinalIgnoreCase))
498
+ {
499
+ var isFirst = string.Equals(existing.FirstOrDefault(), sourceUrl, StringComparison.OrdinalIgnoreCase);
500
+ var isLast = string.Equals(existing.LastOrDefault(), sourceUrl, StringComparison.OrdinalIgnoreCase);
501
+ if ((priority == "first" && isFirst) || (priority == "last" && isLast))
502
+ continue;
503
+ }
504
+ }
505
+ else
506
+ {
507
+ if (!existing.Contains(sourceUrl, StringComparer.OrdinalIgnoreCase))
508
+ continue;
509
+ }
510
+
511
+ existing = existing.Where((u) => !string.Equals(u, sourceUrl, StringComparison.OrdinalIgnoreCase)).ToList();
466
512
  var updated = existing;
467
513
  if (include)
468
514
  {
@@ -473,7 +519,6 @@ public sealed class ConnectorCore
473
519
 
474
520
  var patch = new Dictionary<string, object?>
475
521
  {
476
- ["@odata.type"] = "#microsoft.graph.profilePropertySetting",
477
522
  ["prioritizedSourceUrls"] = updated,
478
523
  };
479
524
 
@@ -490,6 +535,25 @@ public sealed class ConnectorCore
490
535
  throw new InvalidOperationException($"Failed to update profile property setting {id} (HTTP {(int)patchRes.StatusCode}): {text}");
491
536
  }
492
537
  }
538
+
539
+ if (!precedenceFound && include)
540
+ {
541
+ var create = await GraphRequestAsync(
542
+ credential,
543
+ HttpMethod.Post,
544
+ $"{SchemaConstants.GraphBaseUrl}/admin/people/profilePropertySettings",
545
+ new Dictionary<string, object?>
546
+ {
547
+ ["prioritizedSourceUrls"] = new[] { sourceUrl },
548
+ }
549
+ );
550
+
551
+ if (!create.IsSuccessStatusCode)
552
+ {
553
+ var text = await create.Content.ReadAsStringAsync();
554
+ throw new InvalidOperationException($"Failed to create profile property setting (HTTP {(int)create.StatusCode}): {text}");
555
+ }
556
+ }
493
557
  }
494
558
 
495
559
  private static List<string> DeduplicateUrls(List<string> values)
@@ -32,6 +32,7 @@ public static class ItemPayload
32
32
 
33
33
  var externalItem = new ExternalItem
34
34
  {
35
+ Id = GetItemId(item),
35
36
  Acl = new List<Acl>
36
37
  {
37
38
  new Acl
@@ -44,7 +45,7 @@ public static class ItemPayload
44
45
  Properties = props,
45
46
  };
46
47
 
47
- <%- contentBlock %>
48
+ <%- contentBlock %>
48
49
 
49
50
  return externalItem;
50
51
  }
@@ -6,6 +6,7 @@ namespace <%= schemaNamespace %>;
6
6
  /// </summary>
7
7
  public sealed record <%= itemTypeName %>(
8
8
  <% for (let i = 0; i < properties.length; i++) { -%>
9
- <%= properties[i].csType %> <%= properties[i].csName %><%= i < properties.length - 1 ? "," : "" %>
9
+ <%= properties[i].csType %> <%= properties[i].csName %>,
10
10
  <% } -%>
11
+ string CocoId = ""
11
12
  );
@@ -118,7 +118,7 @@ ConnectorCore BuildConnectorCore(GraphServiceClient? graph, ClientSecretCredenti
118
118
  }
119
119
 
120
120
  /// <summary>
121
- /// Provision the connection and schema (and profile source for people connectors).
121
+ /// Provision the connection and schema (then profile source for people connectors).
122
122
  /// </summary>
123
123
  async Task ProvisionAsync()
124
124
  {
@@ -128,6 +128,11 @@ async Task ProvisionAsync()
128
128
  var core = BuildConnectorCore(graph, credential, connectionId);
129
129
 
130
130
  await core.ProvisionAsync();
131
+ Console.WriteLine("ok: connection + schema provisioned");
132
+ <% if (isPeopleConnector) { -%>
133
+ await core.ProvisionProfileSourceAsync();
134
+ Console.WriteLine("ok: profile source registered");
135
+ <% } -%>
131
136
  Console.WriteLine("ok: provisioned");
132
137
  }
133
138
 
@@ -208,7 +213,7 @@ registerCommand.SetHandler(async () =>
208
213
  var credential = CreateCredential();
209
214
  var connectionId = ConnectionId();
210
215
  var core = BuildConnectorCore(graph, credential, connectionId);
211
- await core.RegisterProfileSourceAsync();
216
+ await core.ProvisionProfileSourceAsync();
212
217
  });
213
218
  root.AddCommand(registerCommand);
214
219
  <% } -%>
@@ -119,7 +119,7 @@ function buildConnectorCore(): ConnectorCore<<%= itemTypeName %>> {
119
119
  }
120
120
 
121
121
  /**
122
- * Provision connection + schema and (optionally) profile source.
122
+ * Provision connection + schema (and then profile source for people connectors).
123
123
  */
124
124
  async function provision(): Promise<void> {
125
125
  const connectionId = resolveConnectionId();
@@ -129,6 +129,11 @@ async function provision(): Promise<void> {
129
129
  connectionName: resolveConnectionName(),
130
130
  connectionDescription: resolveConnectionDescription()
131
131
  });
132
+ console.log("ok: connection + schema provisioned");
133
+ <% if (isPeopleConnector) { -%>
134
+ await core.provisionProfileSource(connectionId);
135
+ console.log("ok: profile source registered");
136
+ <% } -%>
132
137
  console.log("ok: provisioned");
133
138
  }
134
139
 
@@ -196,7 +201,7 @@ program
196
201
  .action(async () => {
197
202
  const connectionId = resolveConnectionId();
198
203
  const core = buildConnectorCore();
199
- await core.registerProfileSource(connectionId);
204
+ await core.provisionProfileSource(connectionId);
200
205
  });
201
206
  <% } -%>
202
207
 
@@ -13,6 +13,7 @@ export type ConnectorCoreOptions<Item> = {
13
13
  getAccessToken: () => Promise<string>;
14
14
  getItemId: (item: Item) => string;
15
15
  toExternalItem: (item: Item) => {
16
+ id?: string;
16
17
  acl: Array<{ type: string; value: string; accessType: string }>;
17
18
  properties: Record<string, unknown>;
18
19
  content?: { type: string; value: string };
@@ -45,6 +46,7 @@ export class ConnectorCore<Item> {
45
46
  private readonly getAccessToken: () => Promise<string>;
46
47
  private readonly getItemId: (item: Item) => string;
47
48
  private readonly toExternalItem: (item: Item) => {
49
+ id?: string;
48
50
  acl: Array<{ type: string; value: string; accessType: string }>;
49
51
  properties: Record<string, unknown>;
50
52
  content?: { type: string; value: string };
@@ -96,26 +98,30 @@ export class ConnectorCore<Item> {
96
98
  }
97
99
 
98
100
  /**
99
- * Provision connection + schema and (optionally) profile source.
101
+ * Provision connection + schema.
100
102
  */
101
103
  async provision(options: ProvisionOptions): Promise<void> {
102
104
  await this.ensureConnection(options);
103
105
  await this.patchSchema(options.connectionId);
104
- if (this.profileSource) {
105
- await this.registerProfileSourceInternal(options.connectionId, this.profileSource);
106
- }
107
106
  }
108
107
 
109
108
  /**
110
- * Register the connection as a profile source (people connectors only).
109
+ * Register the connection as a profile source and update its precedence (people connectors only).
111
110
  */
112
- async registerProfileSource(connectionId: string): Promise<void> {
111
+ async provisionProfileSource(connectionId: string): Promise<void> {
113
112
  if (!this.profileSource) {
114
113
  throw new Error("Profile source settings are missing.");
115
114
  }
116
115
  await this.registerProfileSourceInternal(connectionId, this.profileSource);
117
116
  }
118
117
 
118
+ /**
119
+ * Register the connection as a profile source (people connectors only).
120
+ */
121
+ async registerProfileSource(connectionId: string): Promise<void> {
122
+ await this.provisionProfileSource(connectionId);
123
+ }
124
+
119
125
  /**
120
126
  * Remove the connection from profile source registrations (people connectors only).
121
127
  */
@@ -149,12 +155,18 @@ export class ConnectorCore<Item> {
149
155
  const url = `${this.graphBaseUrl}/external/connections/${connectionId}/items/${encodeURIComponent(itemId)}`;
150
156
 
151
157
  const payload = this.toExternalItem(item);
158
+ const payloadWithId = {
159
+ ...payload,
160
+ id: itemId,
161
+ content: payload.content ?? { type: "text", value: "" },
162
+ };
163
+ console.log(`info: PUT item (id=${itemId})`);
152
164
  if (verbose) {
153
165
  console.log("verbose: PUT", url);
154
- console.log("verbose: payload", JSON.stringify(payload, null, 2));
166
+ console.log("verbose: payload", JSON.stringify(payloadWithId, null, 2));
155
167
  }
156
168
 
157
- const res = await this.graphRequest("PUT", url, payload);
169
+ const res = await this.graphRequest("PUT", url, payloadWithId);
158
170
  if (!res.ok) {
159
171
  const text = await res.text();
160
172
  throw new Error(`Failed to ingest item '${itemId}' (HTTP ${res.status}): ${text}`);
@@ -179,7 +191,13 @@ export class ConnectorCore<Item> {
179
191
  throw error;
180
192
  }
181
193
  } else if (options.verbose) {
182
- console.log(`verbose: DRY RUN item ${count + 1} (id=${itemId})`, JSON.stringify(options.toExternalItem(item as Item), null, 2));
194
+ const payload = options.toExternalItem(item as Item) as any;
195
+ const payloadWithId = {
196
+ ...payload,
197
+ id: itemId,
198
+ content: payload?.content ?? { type: "text", value: "" },
199
+ };
200
+ console.log(`verbose: DRY RUN item ${count + 1} (id=${itemId})`, JSON.stringify(payloadWithId, null, 2));
183
201
  }
184
202
  count++;
185
203
  }
@@ -212,17 +230,22 @@ export class ConnectorCore<Item> {
212
230
  throw new Error("Failed to send request after retries.");
213
231
  }
214
232
 
215
- private async listProfilePropertySettings(): Promise<Array<{ id: string; prioritizedSourceUrls: string[] }>> {
233
+ private async listProfilePropertySettings(): Promise<
234
+ Array<{ id: string; name?: string; prioritizedSourceUrls: string[] }>
235
+ > {
216
236
  const res = await this.graphRequest("GET", `${this.graphBaseUrl}/admin/people/profilePropertySettings`);
217
237
  if (!res.ok) {
218
238
  const text = await res.text();
219
239
  throw new Error(`Failed to list profile property settings (HTTP ${res.status}): ${text}`);
220
240
  }
221
- const json = (await res.json()) as { value?: Array<{ id?: string; prioritizedSourceUrls?: string[] }> };
241
+ const json = (await res.json()) as {
242
+ value?: Array<{ id?: string; name?: string; prioritizedSourceUrls?: string[] }>;
243
+ };
222
244
  return (json.value ?? [])
223
245
  .filter((entry) => typeof entry.id === "string")
224
246
  .map((entry) => ({
225
247
  id: entry.id as string,
248
+ name: typeof entry.name === "string" ? entry.name : undefined,
226
249
  prioritizedSourceUrls: Array.isArray(entry.prioritizedSourceUrls) ? entry.prioritizedSourceUrls : [],
227
250
  }));
228
251
  }
@@ -241,60 +264,82 @@ export class ConnectorCore<Item> {
241
264
 
242
265
  private async registerProfileSourceInternal(connectionId: string, profile: ProfileSourceOptions): Promise<void> {
243
266
  const sources = await this.listProfileSources();
244
- if (sources.some((source) => source.sourceId === connectionId)) {
245
- return;
246
- }
247
-
248
- const payload: any = {
249
- sourceId: connectionId,
250
- displayName: profile.displayName,
251
- webUrl: profile.webUrl,
252
- };
253
-
254
- const create = await this.graphRequest("POST", `${this.graphBaseUrl}/admin/people/profileSources`, payload);
255
- if (!create.ok && create.status !== 409) {
256
- const text = await create.text();
257
- throw new Error(`Failed to register profile source (HTTP ${create.status}): ${text}`);
267
+ const exists = sources.some((source) => source.sourceId === connectionId);
268
+
269
+ if (!exists) {
270
+ const payload: any = {
271
+ sourceId: connectionId,
272
+ displayName: profile.displayName,
273
+ webUrl: profile.webUrl,
274
+ };
275
+
276
+ const create = await this.graphRequest("POST", `${this.graphBaseUrl}/admin/people/profileSources`, payload);
277
+ if (!create.ok && create.status !== 409) {
278
+ const text = await create.text();
279
+ throw new Error(`Failed to register profile source (HTTP ${create.status}): ${text}`);
280
+ }
258
281
  }
259
282
 
260
283
  const sourceUrl = `${this.graphBaseUrl}/admin/people/profileSources(sourceId='${connectionId}')`;
261
284
  const settings = await this.listProfilePropertySettings();
262
- for (const setting of settings) {
263
- const existing = this.uniqueUrls(setting.prioritizedSourceUrls).filter((value) => value !== sourceUrl);
264
- const updated = profile.priority === "first"
265
- ? this.uniqueUrls([sourceUrl, ...existing])
266
- : this.uniqueUrls([...existing, sourceUrl]);
267
- const res = await this.graphRequest(
268
- "PATCH",
269
- `${this.graphBaseUrl}/admin/people/profilePropertySettings/${setting.id}`,
270
- {
271
- "@odata.type": "#microsoft.graph.profilePropertySetting",
272
- prioritizedSourceUrls: updated,
273
- }
285
+ const precedence = settings.find((setting) => !setting.name);
286
+ if (!precedence) {
287
+ const create = await this.graphRequest(
288
+ "POST",
289
+ `${this.graphBaseUrl}/admin/people/profilePropertySettings`,
290
+ { prioritizedSourceUrls: [sourceUrl] }
274
291
  );
275
- if (!res.ok) {
276
- const text = await res.text();
277
- throw new Error(`Failed to update profile property setting ${setting.id} (HTTP ${res.status}): ${text}`);
292
+ if (!create.ok) {
293
+ const text = await create.text();
294
+ throw new Error(`Failed to create profile property setting (HTTP ${create.status}): ${text}`);
295
+ }
296
+ return;
297
+ }
298
+
299
+ const current = this.uniqueUrls(precedence.prioritizedSourceUrls);
300
+ if (current.includes(sourceUrl)) {
301
+ const isFirst = current[0] === sourceUrl;
302
+ const isLast = current[current.length - 1] === sourceUrl;
303
+ if ((profile.priority === "first" && isFirst) || (profile.priority === "last" && isLast)) {
304
+ return;
278
305
  }
279
306
  }
307
+ const existing = current.filter((value) => value !== sourceUrl);
308
+ const updated = profile.priority === "first"
309
+ ? this.uniqueUrls([sourceUrl, ...existing])
310
+ : this.uniqueUrls([...existing, sourceUrl]);
311
+ const res = await this.graphRequest(
312
+ "PATCH",
313
+ `${this.graphBaseUrl}/admin/people/profilePropertySettings/${precedence.id}`,
314
+ {
315
+ prioritizedSourceUrls: updated,
316
+ }
317
+ );
318
+ if (!res.ok) {
319
+ const text = await res.text();
320
+ throw new Error(`Failed to update profile property setting ${precedence.id} (HTTP ${res.status}): ${text}`);
321
+ }
280
322
  }
281
323
 
282
324
  private async unregisterProfileSourceInternal(connectionId: string): Promise<void> {
283
325
  const sourceUrl = `${this.graphBaseUrl}/admin/people/profileSources(sourceId='${connectionId}')`;
284
326
  const settings = await this.listProfilePropertySettings();
285
- for (const setting of settings) {
286
- const updated = this.uniqueUrls(setting.prioritizedSourceUrls).filter((value) => value !== sourceUrl);
287
- const res = await this.graphRequest(
288
- "PATCH",
289
- `${this.graphBaseUrl}/admin/people/profilePropertySettings/${setting.id}`,
290
- {
291
- "@odata.type": "#microsoft.graph.profilePropertySetting",
292
- prioritizedSourceUrls: updated,
327
+ const precedence = settings.find((setting) => !setting.name);
328
+ if (precedence) {
329
+ const current = this.uniqueUrls(precedence.prioritizedSourceUrls);
330
+ if (current.includes(sourceUrl)) {
331
+ const updated = current.filter((value) => value !== sourceUrl);
332
+ const res = await this.graphRequest(
333
+ "PATCH",
334
+ `${this.graphBaseUrl}/admin/people/profilePropertySettings/${precedence.id}`,
335
+ {
336
+ prioritizedSourceUrls: updated,
337
+ }
338
+ );
339
+ if (!res.ok) {
340
+ const text = await res.text();
341
+ throw new Error(`Failed to update profile property setting ${precedence.id} (HTTP ${res.status}): ${text}`);
293
342
  }
294
- );
295
- if (!res.ok) {
296
- const text = await res.text();
297
- throw new Error(`Failed to update profile property setting ${setting.id} (HTTP ${res.status}): ${text}`);
298
343
  }
299
344
  }
300
345
 
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { <%= itemTypeName %> } from "./model.js";
5
5
  import { PropertyTransform } from "./propertyTransform.js";
6
+ import { parseString, readSourceValue } from "../datasource/csv.js";
6
7
 
7
8
  const transforms = new PropertyTransform();
8
9
 
@@ -11,6 +12,7 @@ const transforms = new PropertyTransform();
11
12
  */
12
13
  export function fromCsvRow(row: Record<string, unknown>): <%= itemTypeName %> {
13
14
  return {
15
+ __cocoId: <%- idRawExpression %>,
14
16
  <% for (const prop of properties) { -%>
15
17
  <%= prop.name %>: transforms.transformProperty<%= prop.tsType ? `<${prop.tsType}>` : "" %>(<%= JSON.stringify(prop.name) %>, row),
16
18
  <% } -%>
@@ -8,22 +8,24 @@ import { contentPropertyName, idPropertyName } from "./constants.js";
8
8
  * Resolve the external item ID from the schema model.
9
9
  */
10
10
  export function getItemId(item: <%= itemTypeName %>): string {
11
- return String((item as any)[idPropertyName] ?? "");
11
+ return (item as any).__cocoId ?? (item as any)[idPropertyName] ?? "";
12
12
  }
13
13
 
14
14
  /**
15
15
  * Convert a schema model instance into a Graph ExternalItem payload.
16
16
  */
17
17
  export function toExternalItem(item: <%= itemTypeName %>): {
18
+ id: string;
18
19
  acl: Array<{ type: string; value: string; accessType: string }>;
19
20
  properties: Record<string, unknown>;
20
- content?: { type: string; value: string };
21
+ content: { type: string; value: string };
21
22
  } {
22
23
  const properties = {
23
24
  <%- propertiesObjectLines %>
24
25
  };
25
26
 
26
27
  return {
28
+ id: getItemId(item),
27
29
  acl: [{ type: "everyone", value: "everyone", accessType: "grant" }],
28
30
  properties<%- contentBlock %>
29
31
  };
@@ -2,6 +2,7 @@
2
2
  * TypeScript representation of the external item schema.
3
3
  */
4
4
  export type <%= itemTypeName %> = {
5
+ __cocoId?: string;
5
6
  <% for (const prop of properties) { -%>
6
7
  <%= prop.name %>: <%= prop.tsType %>;
7
8
  <% } -%>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wictorwilen/cocogen",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "TypeSpec-driven Microsoft Copilot connector generator",
5
5
  "license": "MIT",
6
6
  "author": "Wictor Wilén <wictor@wictorwilen.se>",