@deina-labs/deina-core 1.0.0 → 1.1.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Deina Lab, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -6,7 +6,13 @@ Shared dating archetype logic, quiz data, onboarding content, and coaching chara
6
6
 
7
7
  ## Installation
8
8
 
9
- ### Option 1: GitHub dependency (recommended for private repos)
9
+ ### Option 1: npm (recommended)
10
+
11
+ ```bash
12
+ yarn add @deina-labs/deina-core
13
+ ```
14
+
15
+ ### Option 2: GitHub dependency
10
16
 
11
17
  In your consuming project's `package.json`:
12
18
 
@@ -24,7 +30,8 @@ Then run:
24
30
  yarn install
25
31
  ```
26
32
 
27
- ### Option 2: Local development (linking)
33
+ ### Option 3: Local development (linking)
34
+
28
35
 
29
36
  If you're working on `deina-core` alongside another project locally:
30
37
 
@@ -37,7 +44,7 @@ yarn build
37
44
  yarn add link:../deina-core
38
45
  ```
39
46
 
40
- ### Option 3: Supabase Edge Functions (Deno)
47
+ ### Option 4: Supabase Edge Functions (Deno)
41
48
 
42
49
  ```ts
43
50
  import { classifyArchetype, DATING_ARCHETYPES } from 'npm:@deina-labs/deina-core';
@@ -64,7 +71,7 @@ This compiles `src/` to `dist/` with type declarations.
64
71
  | `classify.ts` | `classifyArchetype()` — weighted scoring across all 5 quiz sections |
65
72
  | `quiz-questions.ts` | `STANDARDS_QUALITIES`, `TIMELINE_QUESTIONS`, `MINDSET_QUESTIONS`, `ENFORCEMENT_QUESTIONS`, `TRADEOFF_QUESTIONS` |
66
73
  | `fun-facts.ts` | `ONBOARDING_FUN_FACTS`, `SECTION_HINTS` — transition screen content |
67
- | `onboarding-content.ts` | `DISCLAIMER_CONTENT`, `ABOUT_YOU_CONTENT`, `SECTION_INTROS`, `ARCHETYPE_REVEAL_CONTENT`, `MEET_DEINA_CONTENT`, `CHOOSE_DEINA_CONTENT`, `ACCOUNT_CREATION_CONTENT` |
74
+ | `onboarding-content.ts` | `DISCLAIMER_CONTENT`, `ABOUT_YOU_CONTENT`, `SECTION_INTROS` (standards, timeline, mindset, tradeoffs, enforcement, players), `ARCHETYPE_REVEAL_CONTENT`, `MEET_DEINA_CONTENT`, `CHOOSE_DEINA_CONTENT`, `ACCOUNT_CREATION_CONTENT` |
68
75
  | `deinas.ts` | `DEINA_CHARACTERS`, `getDeinaById()` — 7 coaching characters |
69
76
  | `archetype-card.ts` | `renderArchetypePage()`, `renderNotFoundPage()` — HTML share card renderer |
70
77
 
@@ -152,3 +159,7 @@ Edge Functions ──┘
152
159
  ```
153
160
 
154
161
  All quiz logic, archetype data, coaching content, and onboarding copy lives here. Consumer apps only handle UI rendering and platform-specific concerns.
162
+
163
+ ## License
164
+
165
+ [MIT](LICENSE)
@@ -47,6 +47,27 @@ export declare const SECTION_INTROS: {
47
47
  tagline: string;
48
48
  buttonText: string;
49
49
  };
50
+ tradeoffs: {
51
+ heading: string;
52
+ subheading: string;
53
+ body: string;
54
+ tagline: string;
55
+ buttonText: string;
56
+ };
57
+ enforcement: {
58
+ heading: string;
59
+ subheading: string;
60
+ body: string;
61
+ tagline: string;
62
+ buttonText: string;
63
+ };
64
+ players: {
65
+ heading: string;
66
+ subheading: string;
67
+ body: string;
68
+ tagline: string;
69
+ buttonText: string;
70
+ };
50
71
  };
51
72
  export declare const ARCHETYPE_REVEAL_CONTENT: {
52
73
  loadingMessages: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-content.d.ts","sourceRoot":"","sources":["../src/onboarding-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;CAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;CAWpC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;CAO9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpC,CAAC"}
1
+ {"version":3,"file":"onboarding-content.d.ts","sourceRoot":"","sources":["../src/onboarding-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;CAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C1B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;CAWpC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;CAO9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  export const DISCLAIMER_CONTENT = {
2
2
  heading: 'Before We Begin',
3
3
  paragraphs: [
4
- "You're about to answer a series of questions about how you think, what you expect, and what you tolerate when dating.",
5
- 'Your answers will reveal your dating archetype a psychological profile most people never see about themselves.',
6
- "From there, Deina becomes your personal dating coach — helping you evaluate the people you're dating, reality-checking your decisions, and keeping you honest with yourself through your relationship life.",
4
+ "Most people think they're the good one in their relationships.",
5
+ "But the patterns you repeat, the things you tolerate, the way you react when it gets hard — those tell a different story.",
6
+ "You're about to find out which one you are.",
7
7
  ],
8
- closingLine: 'There are no right answers. Only honest ones.',
9
- goal: 'The goal at the end of Deina is exclusivity — with the right person, on your terms.',
8
+ closingLine: 'Just be honest with yourself.',
9
+ goal: '',
10
10
  buttonText: 'I understand',
11
11
  };
12
12
  export const ABOUT_YOU_CONTENT = {
@@ -42,6 +42,27 @@ export const SECTION_INTROS = {
42
42
  tagline: 'No right answers. Only honest ones.',
43
43
  buttonText: "Let's begin",
44
44
  },
45
+ tradeoffs: {
46
+ heading: 'Trade-Offs',
47
+ subheading: 'What you choose when forced to choose',
48
+ body: 'In real relationships, you rarely get everything at once. These questions explore what you naturally prioritize when trade-offs appear.',
49
+ tagline: 'No right answers. Only honest ones.',
50
+ buttonText: "Let's begin",
51
+ },
52
+ enforcement: {
53
+ heading: 'Boundaries',
54
+ subheading: 'How you protect your peace',
55
+ body: "Standards only matter if they're enforced. Think about how you usually respond when someone's behavior doesn't meet your expectations.",
56
+ tagline: 'Standards mean nothing without boundaries.',
57
+ buttonText: "Let's begin",
58
+ },
59
+ players: {
60
+ heading: 'Your Roster',
61
+ subheading: 'Add the people you\'re dating',
62
+ body: "Add the people you're currently talking to or dating. For each one, you'll set their status, timeline, and rate them against your standards.",
63
+ tagline: 'You can always add more later.',
64
+ buttonText: "Let's begin",
65
+ },
45
66
  };
46
67
  export const ARCHETYPE_REVEAL_CONTENT = {
47
68
  loadingMessages: [
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding-content.js","sourceRoot":"","sources":["../src/onboarding-content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE;QACV,uHAAuH;QACvH,kHAAkH;QAClH,6MAA6M;KAC9M;IACD,WAAW,EAAE,+CAA+C;IAC5D,IAAI,EAAE,qFAAqF;IAC3F,UAAU,EAAE,cAAc;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,6BAA6B;IACvC,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE;QACjE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE;KACnD;IACD,QAAQ,EAAE,uCAAuC;IACjD,UAAU,EAAE,UAAU;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE;QACT,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,0BAA0B;QACtC,IAAI,EAAE,4LAA4L;QAClM,gBAAgB,EAAE,uBAAuB;QACzC,WAAW,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,oBAAoB,EAAE;QACnE,UAAU,EAAE,aAAa;KAC1B;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,uBAAuB;QACnC,IAAI,EAAE,oHAAoH;QAC1H,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,aAAa;KAC1B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,qCAAqC;QACjD,IAAI,EAAE,8IAA8I;QACpJ,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,aAAa;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,eAAe,EAAE;QACf,2BAA2B;QAC3B,sBAAsB;QACtB,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,6BAA6B;KAC9B;IACD,eAAe,EAAE,sBAAsB;IACvC,kBAAkB,EAAE,UAAU;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,qBAAqB;IAC9B,kBAAkB,EAAE,0DAA0D;IAC9E,YAAY,EACV,oIAAoI;IACtI,OAAO,EAAE,yCAAyC;IAClD,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,gFAAgF;IAC1F,UAAU,EAAE,UAAU;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE;QACP,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,yBAAyB;QAClC,UAAU,EAAE,6BAA6B;QACzC,OAAO,EAAE,6EAA6E;QACtF,eAAe,EAAE,qBAAqB;QACtC,eAAe,EAAE,WAAW;QAC5B,SAAS,EAAE,0DAA0D;KACtE;IACD,KAAK,EAAE;QACL,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,oCAAoC;QAChD,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE,WAAW;KACxB;IACD,GAAG,EAAE;QACH,OAAO,EAAE,iBAAiB;QAC1B,kBAAkB,EAAE,uBAAuB;QAC3C,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,uBAAuB;QACnC,iBAAiB,EAAE,YAAY;QAC/B,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC"}
1
+ {"version":3,"file":"onboarding-content.js","sourceRoot":"","sources":["../src/onboarding-content.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.0.0",
3
+ "version": "1.1.1",
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",
@@ -29,5 +29,5 @@
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
32
- "license": "UNLICENSED"
32
+ "license": "MIT"
33
33
  }
@@ -1,12 +1,12 @@
1
1
  export const DISCLAIMER_CONTENT = {
2
2
  heading: 'Before We Begin',
3
3
  paragraphs: [
4
- "You're about to answer a series of questions about how you think, what you expect, and what you tolerate when dating.",
5
- 'Your answers will reveal your dating archetype a psychological profile most people never see about themselves.',
6
- "From there, Deina becomes your personal dating coach — helping you evaluate the people you're dating, reality-checking your decisions, and keeping you honest with yourself through your relationship life.",
4
+ "Most people think they're the good one in their relationships.",
5
+ "But the patterns you repeat, the things you tolerate, the way you react when it gets hard — those tell a different story.",
6
+ "You're about to find out which one you are.",
7
7
  ],
8
- closingLine: 'There are no right answers. Only honest ones.',
9
- goal: 'The goal at the end of Deina is exclusivity — with the right person, on your terms.',
8
+ closingLine: 'Just be honest with yourself.',
9
+ goal: '',
10
10
  buttonText: 'I understand',
11
11
  };
12
12
 
@@ -44,6 +44,27 @@ export const SECTION_INTROS = {
44
44
  tagline: 'No right answers. Only honest ones.',
45
45
  buttonText: "Let's begin",
46
46
  },
47
+ tradeoffs: {
48
+ heading: 'Trade-Offs',
49
+ subheading: 'What you choose when forced to choose',
50
+ body: 'In real relationships, you rarely get everything at once. These questions explore what you naturally prioritize when trade-offs appear.',
51
+ tagline: 'No right answers. Only honest ones.',
52
+ buttonText: "Let's begin",
53
+ },
54
+ enforcement: {
55
+ heading: 'Boundaries',
56
+ subheading: 'How you protect your peace',
57
+ body: "Standards only matter if they're enforced. Think about how you usually respond when someone's behavior doesn't meet your expectations.",
58
+ tagline: 'Standards mean nothing without boundaries.',
59
+ buttonText: "Let's begin",
60
+ },
61
+ players: {
62
+ heading: 'Your Roster',
63
+ subheading: 'Add the people you\'re dating',
64
+ body: "Add the people you're currently talking to or dating. For each one, you'll set their status, timeline, and rate them against your standards.",
65
+ tagline: 'You can always add more later.',
66
+ buttonText: "Let's begin",
67
+ },
47
68
  };
48
69
 
49
70
  export const ARCHETYPE_REVEAL_CONTENT = {