@happyvertical/smrt-social 0.40.69 → 0.41.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.
@@ -3,13 +3,13 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-social",
6
- "packageVersion": "0.40.69",
6
+ "packageVersion": "0.41.0",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "e35a406201fc5ce71b62b29f66f7d46ea9f3b6490951c5ad203555a2745dcb78",
11
- "packageJson": "da3cb04ab830eee3744f15e1a259187a2ad3bd95a86023f47931292bc294887c",
12
- "agents": "e52e321d32201085477380f355cbb533f5d931e2701cd4d2ceeda0d7c8720957"
10
+ "manifest": "119d59c0c2c92e647e1d9ec643e6902aeca7b32c5fa66df7688452f3cbb93d72",
11
+ "packageJson": "29b9c31bc6b82361312081d02fd687628481697ff4f75fa2a87e5cbd414512e9",
12
+ "agents": "f31b84b31431fcb43ab480fafd9684d91f0e55a935e95aa31fd19ea1f31b0ad4"
13
13
  },
14
14
  "exports": [
15
15
  ".",
@@ -469,6 +469,12 @@
469
469
  "field": "tenantId"
470
470
  },
471
471
  "tableStrategy": "sti",
472
+ "conflictColumns": [
473
+ "tenant_id",
474
+ "slug",
475
+ "context",
476
+ "_meta_type"
477
+ ],
472
478
  "surfaces": [
473
479
  {
474
480
  "kind": "api",
@@ -1028,6 +1034,12 @@
1028
1034
  "field": "tenantId"
1029
1035
  },
1030
1036
  "tableStrategy": "sti",
1037
+ "conflictColumns": [
1038
+ "tenant_id",
1039
+ "slug",
1040
+ "context",
1041
+ "_meta_type"
1042
+ ],
1031
1043
  "surfaces": [
1032
1044
  {
1033
1045
  "kind": "api",
@@ -1148,7 +1160,7 @@
1148
1160
  "name": "socialPostId",
1149
1161
  "type": "foreignKey",
1150
1162
  "required": false,
1151
- "related": "() => SocialPost",
1163
+ "related": "SocialPost",
1152
1164
  "columnType": "UUID"
1153
1165
  },
1154
1166
  {
@@ -1181,7 +1193,7 @@
1181
1193
  "name": "socialPostId",
1182
1194
  "type": "foreignKey",
1183
1195
  "required": false,
1184
- "related": "() => SocialPost",
1196
+ "related": "SocialPost",
1185
1197
  "columnType": "UUID"
1186
1198
  }
1187
1199
  ],
@@ -1500,6 +1512,12 @@
1500
1512
  "field": "tenantId"
1501
1513
  },
1502
1514
  "tableStrategy": "sti",
1515
+ "conflictColumns": [
1516
+ "tenant_id",
1517
+ "slug",
1518
+ "context",
1519
+ "_meta_type"
1520
+ ],
1503
1521
  "surfaces": [
1504
1522
  {
1505
1523
  "kind": "api",
@@ -1613,14 +1631,14 @@
1613
1631
  "name": "socialAccountId",
1614
1632
  "type": "foreignKey",
1615
1633
  "required": false,
1616
- "related": "() => SocialAccount",
1634
+ "related": "SocialAccount",
1617
1635
  "columnType": "UUID"
1618
1636
  },
1619
1637
  {
1620
1638
  "name": "videoContentId",
1621
- "type": "foreignKey",
1639
+ "type": "crossPackageRef",
1622
1640
  "required": false,
1623
- "related": "() => VideoContent",
1641
+ "related": "@happyvertical/smrt-video:VideoContent",
1624
1642
  "columnType": "UUID"
1625
1643
  },
1626
1644
  {
@@ -1724,14 +1742,14 @@
1724
1742
  "name": "socialAccountId",
1725
1743
  "type": "foreignKey",
1726
1744
  "required": false,
1727
- "related": "() => SocialAccount",
1745
+ "related": "SocialAccount",
1728
1746
  "columnType": "UUID"
1729
1747
  },
1730
1748
  {
1731
1749
  "name": "videoContentId",
1732
- "type": "foreignKey",
1750
+ "type": "crossPackageRef",
1733
1751
  "required": false,
1734
- "related": "() => VideoContent",
1752
+ "related": "@happyvertical/smrt-video:VideoContent",
1735
1753
  "columnType": "UUID"
1736
1754
  },
1737
1755
  {
@@ -2057,6 +2075,12 @@
2057
2075
  "field": "tenantId"
2058
2076
  },
2059
2077
  "tableStrategy": "sti",
2078
+ "conflictColumns": [
2079
+ "tenant_id",
2080
+ "slug",
2081
+ "context",
2082
+ "_meta_type"
2083
+ ],
2060
2084
  "surfaces": [
2061
2085
  {
2062
2086
  "kind": "api",
@@ -2679,12 +2703,12 @@
2679
2703
  ],
2680
2704
  "prompts": [],
2681
2705
  "relationshipsV2": {
2682
- "foreignKeyFields": 3,
2683
- "crossPackageRefFields": 1,
2706
+ "foreignKeyFields": 2,
2707
+ "crossPackageRefFields": 2,
2684
2708
  "junctionCollections": 0,
2685
2709
  "hierarchicalObjects": 0,
2686
2710
  "polymorphicAssociations": 0,
2687
2711
  "uuidColumns": 16
2688
2712
  },
2689
- "agentDoc": "# @happyvertical/smrt-social\n\nSocial media account management with OAuth and post scheduling. Supports YouTube, Threads, X (Twitter), Bluesky.\n\n## Models\n\n- **SocialAccount** (STI): `platform`, `accessToken`/`refreshToken`, `tokenExpiresAt`, `status` (connected/expired/error), `linkBehavior` (description/reply/none). `isTokenExpired` checks with 5-min buffer. `isReady` gate checks active + connected + token present + not expired.\n- **SocialPost**: `scheduledAt`, `publishedAt`, `status` (draft/scheduled/publishing/published/failed), `analytics` JSON (views/likes/comments/shares/clicks).\n- **OAuthState** (STI): CSRF token + PKCE `codeVerifier` with 10-min TTL.\n\n## Gotchas\n\n- **Tokens not encrypted**: OAuth tokens stored as plaintext — TODO for smrt-secrets integration\n- **No auto-publishing**: `scheduledAt` is metadata only — app must implement job runner to trigger publishing\n- **Analytics manual**: `analytics` field must be updated by platform sync, not auto-populated\n- **Platform enum hardcoded**: youtube/threads/x/bluesky — extending requires code changes\n- **OAuthState TTL**: 10 minutes, app must clean up expired states\n- **Optional tenancy** on all models\n"
2713
+ "agentDoc": "# @happyvertical/smrt-social\n\nSocial media account management with OAuth and post scheduling. Supports YouTube, Threads, X (Twitter), Bluesky.\n\n## Models\n\n- **SocialAccount** (STI): `platform`, `accessToken`/`refreshToken`, `tokenExpiresAt`, `status` (connected/expired/error), `linkBehavior` (description/reply/none). `isTokenExpired` checks with 5-min buffer. `isReady` gate checks active + connected + token present + not expired.\n- **SocialPost**: `scheduledAt`, `publishedAt`, `status` (draft/scheduled/publishing/published/failed), `analytics` JSON (views/likes/comments/shares/clicks).\n- **OAuthState** (STI): CSRF token + PKCE `codeVerifier` with 10-min TTL.\n\n## Gotchas\n\n- **Tokens not encrypted**: OAuth tokens stored as plaintext — TODO for smrt-secrets integration\n- **No auto-publishing**: `scheduledAt` is metadata only — app must implement job runner to trigger publishing\n- **Analytics manual**: `analytics` field must be updated by platform sync, not auto-populated\n- **Platform enum hardcoded**: youtube/threads/x/bluesky — extending requires code changes\n- **OAuthState TTL**: 10 minutes, app must clean up expired states\n- **Optional tenancy** on all models\n- **Relationship targets**: `SocialPost.socialAccountId` and\n `SocialPostAnalyticsSnapshot.socialPostId` are same-package `@foreignKey`\n columns; `SocialPost.videoContentId` is a `@crossPackageRef` to\n `@happyvertical/smrt-video:VideoContent` (no value import back into this\n package). They previously used `@foreignKey(() => X)`, whose target resolved\n to `''`, so none of them carried a relationship edge (#2379).\n"
2690
2714
  }
@@ -156,6 +156,10 @@ export declare class SocialPost extends SmrtObject {
156
156
  socialAccountId: string | null;
157
157
  /**
158
158
  * Video content to publish
159
+ *
160
+ * Cross-package target (`@happyvertical/smrt-video`), so it is a
161
+ * `@crossPackageRef` rather than a `@foreignKey`: no DDL FK constraint and
162
+ * no value import back into this package.
159
163
  */
160
164
  videoContentId: string | null;
161
165
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"social-post.d.ts","sourceRoot":"","sources":["../src/social-post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-post.d.ts","sourceRoot":"","sources":["../src/social-post.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-social",
3
- "version": "0.40.69",
3
+ "version": "0.41.0",
4
4
  "type": "module",
5
5
  "smrtRawPrimitives": "strict",
6
6
  "description": "Social media account management for multi-platform publishing in the SMRT ecosystem",
@@ -40,13 +40,13 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "@happyvertical/utils": "^0.88.0",
43
- "@happyvertical/smrt-config": "0.40.69",
44
- "@happyvertical/smrt-content": "0.40.69",
45
- "@happyvertical/smrt-core": "0.40.69",
46
- "@happyvertical/smrt-secrets": "0.40.69",
47
- "@happyvertical/smrt-tenancy": "0.40.69",
48
- "@happyvertical/smrt-ui": "0.40.69",
49
- "@happyvertical/smrt-video": "0.40.69"
43
+ "@happyvertical/smrt-config": "0.41.0",
44
+ "@happyvertical/smrt-core": "0.41.0",
45
+ "@happyvertical/smrt-secrets": "0.41.0",
46
+ "@happyvertical/smrt-tenancy": "0.41.0",
47
+ "@happyvertical/smrt-video": "0.41.0",
48
+ "@happyvertical/smrt-ui": "0.41.0",
49
+ "@happyvertical/smrt-content": "0.41.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@happyvertical/logger": "^0.88.0",
@@ -58,7 +58,7 @@
58
58
  "typescript": "5.9.3",
59
59
  "vite": "8.1.4",
60
60
  "vitest": "4.1.10",
61
- "@happyvertical/smrt-vitest": "0.40.69"
61
+ "@happyvertical/smrt-vitest": "0.41.0"
62
62
  },
63
63
  "keywords": [
64
64
  "social",