@deina-labs/deina-core 1.1.4 → 1.1.8

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":"section-hooks.js","sourceRoot":"","sources":["../src/section-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"section-hooks.js","sourceRoot":"","sources":["../src/section-hooks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deina-labs/deina-core",
3
- "version": "1.1.4",
3
+ "version": "1.1.8",
4
4
  "description": "Shared dating archetype logic for Deina — used by mobile, web app and edge functions",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -4,12 +4,6 @@
4
4
 
5
5
  export const ANSWER_CONFIRMATIONS: Record<string, string> = {
6
6
  // --- Standards (option-based questions) ---
7
- 'standards:followThrough:I let it go — people forget':
8
- 'That\'s not forgiveness. That\'s training him to keep doing it.',
9
- 'standards:followThrough:I notice but don\'t say anything':
10
- 'You noticed. You just chose silence over confrontation. Again.',
11
- 'standards:followThrough:I start pulling back without telling him why':
12
- 'You punish in silence. He\'ll never know why — and nothing will change.',
13
7
  'standards:longTermGoals:I drop hints and hope he gets it':
14
8
  'He\'s not missing the hints. He\'s ignoring them.',
15
9
  'standards:longTermGoals:I wait for him to bring it up':
@@ -24,10 +18,6 @@ export const ANSWER_CONFIRMATIONS: Record<string, string> = {
24
18
  'That\'s not calm. That\'s anxiety you\'ve learned to swallow.',
25
19
  'timeline:communicationCadence:Only when there\'s a plan':
26
20
  'You only expect to exist when it\'s convenient for him.',
27
- 'timeline:exclusivityExpectation:I avoid bringing it up':
28
- 'You\'d rather stay confused than risk hearing something you can\'t handle.',
29
- 'timeline:intentionClarity:I wait for them to bring it up':
30
- 'You\'re giving someone who hasn\'t committed the power to decide if they ever will.',
31
21
  'timeline:meetFriendsFamily:I don\'t push for it':
32
22
  'You\'re okay being hidden. Sit with that for a second.',
33
23
  'timeline:progressionPace:I go with whatever he sets':
@@ -38,13 +28,9 @@ export const ANSWER_CONFIRMATIONS: Record<string, string> = {
38
28
  'His effort dropped and your first thought was to blame yourself.',
39
29
  'mindset:effortInterpretation:He\'s just busy, I shouldn\'t overthink it':
40
30
  'You\'re already making excuses for him. He didn\'t even have to ask.',
41
- 'mindset:ambiguityTolerance:I replay everything trying to figure out what I did':
42
- 'You\'re investigating yourself instead of evaluating him.',
43
- 'mindset:ambiguityTolerance:I convince myself he\'s losing interest and start spiraling':
44
- 'One quiet day and you\'re already writing the ending.',
45
- 'mindset:emotionalInvestmentSpeed:Immediately — I can already picture it':
31
+ 'mindset:emotionalInvestmentSpeed:Immediately':
46
32
  'One good date and you\'re already all in. That\'s not chemistry — that\'s hope taking over.',
47
- 'mindset:emotionalInvestmentSpeed:Pretty fast — I get excited easily':
33
+ 'mindset:emotionalInvestmentSpeed:Pretty fast':
48
34
  'Your excitement moves faster than your judgment.',
49
35
  'mindset:relationshipRole:It would fill a void I feel right now':
50
36
  'That void won\'t close because someone showed up. It\'ll just open wider when they leave.',
@@ -78,8 +64,6 @@ export const ANSWER_CONFIRMATIONS: Record<string, string> = {
78
64
  'Chemistry without consistency is just a beautiful mess you keep cleaning up.',
79
65
  'tradeoffs:stabilityVsIntensity:The passionate, intense one':
80
66
  'Intensity feels like love. Until it doesn\'t.',
81
- 'tradeoffs:speedVsCertainty:I dive in fast when the energy is right':
82
- 'Fast feels exciting. But you\'ve skipped red flags at that speed before.',
83
67
  'tradeoffs:independenceVsIntegration:I want our lives to merge quickly':
84
68
  'Merging fast means losing yourself fast when it ends.',
85
69
  'tradeoffs:toleratedFlaw:Won\'t commit at your pace':
@@ -92,8 +76,4 @@ export const ANSWER_CONFIRMATIONS: Record<string, string> = {
92
76
  'You already know when it\'s over. You just don\'t leave.',
93
77
  'tradeoffs:pastPattern:I give too much too soon':
94
78
  'By the time you realize you\'ve given too much, there\'s nothing left to protect.',
95
- 'tradeoffs:earlyDatingTendency:I get emotionally attached too fast':
96
- 'You\'re all in before you even know if they deserve it.',
97
- 'tradeoffs:earlyDatingTendency:I keep a wall up no matter what':
98
- 'The wall keeps you safe. It also keeps you alone.',
99
79
  };
package/src/classify.ts CHANGED
@@ -2,7 +2,7 @@ import type { DatingArchetype } from './types.js';
2
2
  import { DATING_ARCHETYPES } from './archetypes.js';
3
3
 
4
4
  export function classifyArchetype(answers: {
5
- standards: Record<string, number | null>;
5
+ standards: Record<string, number | string | null>;
6
6
  timelineAnswers: Record<string, string | null>;
7
7
  mindsetAnswers?: Record<string, string | null>;
8
8
  enforcementAnswers: Record<string, string | null>;
@@ -15,7 +15,7 @@ export function classifyArchetype(answers: {
15
15
  answers;
16
16
 
17
17
  // --- Standards signals ---
18
- const stdValues = Object.values(standards).filter((v): v is number => v !== null);
18
+ const stdValues = Object.values(standards).filter((v): v is number => typeof v === 'number');
19
19
  const avgStandard =
20
20
  stdValues.length > 0 ? stdValues.reduce((a, b) => a + b, 0) / stdValues.length : 3;
21
21
 
@@ -30,15 +30,11 @@ export function classifyArchetype(answers: {
30
30
  scores['the-compassionate-partner'] += 2;
31
31
  }
32
32
 
33
- const emotionalAvg =
34
- ((standards.emotionalStability ?? 3) + (standards.emotionalAvailability ?? 3)) / 2;
35
- if (emotionalAvg >= 4.5) {
33
+ if (standards.emotionalStability === 'Yes, always' && standards.emotionalAvailability === 'Yes, completely') {
36
34
  scores['the-thoughtful-evaluator'] += 2;
37
35
  }
38
36
 
39
- const effortAvg =
40
- ((standards.initiativeAndEffort ?? 3) + (standards.followThrough ?? 3)) / 2;
41
- if (effortAvg >= 4.5) {
37
+ if (standards.initiativeAndEffort === 'Yes, always') {
42
38
  scores['the-intentional-builder'] += 2;
43
39
  scores['the-strategic-dater'] += 1;
44
40
  }
@@ -58,15 +54,14 @@ export function classifyArchetype(answers: {
58
54
  scores['the-independent-chooser'] += 4;
59
55
  }
60
56
 
61
- const exclusivity = timelineAnswers?.exclusivityExpectation;
62
- if (exclusivity === '3–5 dates') {
57
+ const exclusivity = enforcementAnswers?.exclusivityNotDiscussed;
58
+ if (exclusivity === 'I walk away') {
59
+ scores['the-strategic-dater'] += 2;
60
+ } else if (exclusivity === 'I bring it up myself') {
63
61
  scores['the-compassionate-partner'] += 2;
64
- scores['the-strategic-dater'] += 1;
65
- } else if (exclusivity === 'No fixed expectation') {
66
- scores['the-independent-chooser'] += 3;
67
- } else if (exclusivity === '2 months' || exclusivity === '3 months') {
68
- scores['the-thoughtful-evaluator'] += 2;
69
62
  scores['the-intentional-builder'] += 1;
63
+ } else if (exclusivity === 'I keep going and hope it comes up') {
64
+ scores['the-independent-chooser'] += 3;
70
65
  }
71
66
 
72
67
  const commCadence = timelineAnswers?.communicationCadence;
@@ -151,42 +146,6 @@ export function classifyArchetype(answers: {
151
146
  }
152
147
  }
153
148
 
154
- const scarcity = mindsetAnswers.scarcityMindset
155
- ? Number(mindsetAnswers.scarcityMindset)
156
- : null;
157
- if (scarcity !== null) {
158
- if (scarcity <= 2) {
159
- scores['the-compassionate-partner'] += 2;
160
- scores['the-hopeful-romantic'] += 1;
161
- } else if (scarcity >= 4) {
162
- scores['the-independent-chooser'] += 2;
163
- scores['the-strategic-dater'] += 1;
164
- }
165
- }
166
-
167
- const ambiguity = mindsetAnswers.ambiguityTolerance;
168
- if (
169
- ambiguity ===
170
- 'I start replaying conversations and wondering what I might have done wrong'
171
- ) {
172
- scores['the-compassionate-partner'] += 2;
173
- scores['the-intentional-builder'] += 1;
174
- } else if (
175
- ambiguity ===
176
- 'I assume they may be losing interest and begin worrying about where things stand'
177
- ) {
178
- scores['the-hopeful-romantic'] += 1;
179
- scores['the-intentional-builder'] += 1;
180
- } else if (
181
- ambiguity === 'I notice the shift and start paying closer attention to their behavior'
182
- ) {
183
- scores['the-intentional-builder'] += 2;
184
- } else if (
185
- ambiguity === "I don't think about it much unless the pattern continues"
186
- ) {
187
- scores['the-independent-chooser'] += 2;
188
- scores['the-thoughtful-evaluator'] += 1;
189
- }
190
149
 
191
150
  const investSpeed = mindsetAnswers.emotionalInvestmentSpeed;
192
151
  if (investSpeed === 'Very quickly') {
@@ -297,17 +256,6 @@ export function classifyArchetype(answers: {
297
256
  scores['the-compassionate-partner'] += 3;
298
257
  }
299
258
 
300
- const earlyDating = tradeOffAnswers?.earlyDatingTendency;
301
- if (earlyDating === 'Focus on one person quickly') {
302
- scores['the-compassionate-partner'] += 2;
303
- } else if (earlyDating === 'Keep multiple options') {
304
- scores['the-strategic-dater'] += 2;
305
- scores['the-intentional-builder'] += 1;
306
- } else if (earlyDating === 'Get attached fast') {
307
- scores['the-compassionate-partner'] += 3;
308
- } else if (earlyDating === 'Stay emotionally guarded') {
309
- scores['the-thoughtful-evaluator'] += 3;
310
- }
311
259
 
312
260
  const attractionKiller = tradeOffAnswers?.attractionKiller;
313
261
  if (attractionKiller === 'Passive energy') {
package/src/fun-facts.ts CHANGED
@@ -34,7 +34,6 @@ export const ONBOARDING_FUN_FACTS: Record<string, FunFact> = {
34
34
  };
35
35
 
36
36
  export const SECTION_HINTS: Record<string, string> = {
37
- 'mindset:ambiguityTolerance': 'Don\'t pick the answer you wish was true.',
38
37
  'mindset:relationshipRole': 'This one is uncomfortable for a reason.',
39
38
  'enforcement:disappointmentResponse':
40
39
  'What you actually do — not what you tell your friends you did.',