@takuhon/core 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +215 -16
- package/dist/index.js +342 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/takuhon.schema.json +74 -2
package/package.json
CHANGED
package/takuhon.schema.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://takuhon.example/schemas/0.
|
|
3
|
+
"$id": "https://takuhon.example/schemas/0.6.0/takuhon.schema.json",
|
|
4
4
|
"title": "Takuhon Profile",
|
|
5
5
|
"description": "Portable profile data format consumed by @takuhon/core. The canonical contract for profile content authored as takuhon.json.",
|
|
6
6
|
"type": "object",
|
|
@@ -360,7 +360,79 @@
|
|
|
360
360
|
"default": false,
|
|
361
361
|
"description": "Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default."
|
|
362
362
|
},
|
|
363
|
-
"activity": { "$ref": "#/$defs/ActivitySettings" }
|
|
363
|
+
"activity": { "$ref": "#/$defs/ActivitySettings" },
|
|
364
|
+
"publicVisibility": { "$ref": "#/$defs/PublicVisibility" }
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
"PublicVisibility": {
|
|
368
|
+
"type": "object",
|
|
369
|
+
"additionalProperties": false,
|
|
370
|
+
"description": "Per-section public visibility (added in 0.6.0). Each key is a content section; setting it to false hides that whole section from every public surface (GET /, /api/profile, /api/jsonld, /takuhon.json, MCP, and the derived CV) via the shared applyPublicPrivacyFilter. An absent key — or an absent object — means the section is public, so the default is all-visible and omitting this block is fully backwards-compatible. The profile identity (profile.displayName, …) is always public and is intentionally not a key here. Field-level controls (contact.showEmail, meta.privacy.*) still apply within a visible section: visibility is the AND of the feature toggle, this section flag, and the field flag.",
|
|
371
|
+
"properties": {
|
|
372
|
+
"links": {
|
|
373
|
+
"type": "boolean",
|
|
374
|
+
"description": "Default true. When false, links[] is emitted empty on public surfaces."
|
|
375
|
+
},
|
|
376
|
+
"careers": {
|
|
377
|
+
"type": "boolean",
|
|
378
|
+
"description": "Default true. When false, careers[] is emitted empty on public surfaces."
|
|
379
|
+
},
|
|
380
|
+
"projects": {
|
|
381
|
+
"type": "boolean",
|
|
382
|
+
"description": "Default true. When false, projects[] is emitted empty on public surfaces."
|
|
383
|
+
},
|
|
384
|
+
"skills": {
|
|
385
|
+
"type": "boolean",
|
|
386
|
+
"description": "Default true. When false, skills[] is emitted empty on public surfaces."
|
|
387
|
+
},
|
|
388
|
+
"certifications": {
|
|
389
|
+
"type": "boolean",
|
|
390
|
+
"description": "Default true. When false, certifications[] is emitted empty on public surfaces."
|
|
391
|
+
},
|
|
392
|
+
"memberships": {
|
|
393
|
+
"type": "boolean",
|
|
394
|
+
"description": "Default true. When false, memberships[] is emitted empty on public surfaces."
|
|
395
|
+
},
|
|
396
|
+
"volunteering": {
|
|
397
|
+
"type": "boolean",
|
|
398
|
+
"description": "Default true. When false, volunteering[] is emitted empty on public surfaces."
|
|
399
|
+
},
|
|
400
|
+
"honors": {
|
|
401
|
+
"type": "boolean",
|
|
402
|
+
"description": "Default true. When false, honors[] is emitted empty on public surfaces."
|
|
403
|
+
},
|
|
404
|
+
"education": {
|
|
405
|
+
"type": "boolean",
|
|
406
|
+
"description": "Default true. When false, education[] is emitted empty on public surfaces."
|
|
407
|
+
},
|
|
408
|
+
"publications": {
|
|
409
|
+
"type": "boolean",
|
|
410
|
+
"description": "Default true. When false, publications[] is emitted empty on public surfaces."
|
|
411
|
+
},
|
|
412
|
+
"languages": {
|
|
413
|
+
"type": "boolean",
|
|
414
|
+
"description": "Default true. When false, languages[] is emitted empty on public surfaces."
|
|
415
|
+
},
|
|
416
|
+
"courses": {
|
|
417
|
+
"type": "boolean",
|
|
418
|
+
"description": "Default true. When false, courses[] is emitted empty on public surfaces."
|
|
419
|
+
},
|
|
420
|
+
"patents": {
|
|
421
|
+
"type": "boolean",
|
|
422
|
+
"description": "Default true. When false, patents[] is emitted empty on public surfaces."
|
|
423
|
+
},
|
|
424
|
+
"testScores": {
|
|
425
|
+
"type": "boolean",
|
|
426
|
+
"description": "Default true. When false, testScores[] is emitted empty on public surfaces."
|
|
427
|
+
},
|
|
428
|
+
"recommendations": {
|
|
429
|
+
"type": "boolean",
|
|
430
|
+
"description": "Default true. When false, recommendations[] is emitted empty on public surfaces."
|
|
431
|
+
},
|
|
432
|
+
"contact": {
|
|
433
|
+
"type": "boolean",
|
|
434
|
+
"description": "Default true. When false, the contact section (email, formUrl) is emitted empty on public surfaces."
|
|
435
|
+
}
|
|
364
436
|
}
|
|
365
437
|
},
|
|
366
438
|
"ActivitySettings": {
|