@vibe2founder/tests2dialects 0.1.0 → 0.2.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.
Files changed (96) hide show
  1. package/dist/examples/imperative.spec.d.ts +1 -0
  2. package/dist/examples/imperative.spec.js +46 -0
  3. package/dist/examples/math.spec.d.ts +1 -0
  4. package/dist/examples/math.spec.js +39 -0
  5. package/dist/examples/narrative.spec.d.ts +1 -0
  6. package/dist/examples/narrative.spec.js +47 -0
  7. package/dist/examples/polyglot-shopping-cart.spec.d.ts +11 -0
  8. package/dist/examples/polyglot-shopping-cart.spec.js +161 -0
  9. package/dist/examples/sanity.spec.d.ts +1 -0
  10. package/dist/examples/sanity.spec.js +39 -0
  11. package/dist/examples/showcase-api.spec.d.ts +1 -0
  12. package/dist/examples/showcase-api.spec.js +62 -0
  13. package/dist/examples/test-api.d.ts +1 -0
  14. package/dist/examples/test-api.js +32 -0
  15. package/dist/packages/api-test-dialect/index.d.ts +28 -0
  16. package/dist/packages/api-test-dialect/index.js +102 -0
  17. package/dist/packages/reqify/index.d.ts +12 -0
  18. package/dist/packages/reqify/index.js +24 -0
  19. package/dist/src/cli.d.ts +6 -0
  20. package/dist/src/cli.js +330 -0
  21. package/dist/src/index.d.ts +134 -0
  22. package/dist/src/index.js +374 -0
  23. package/dist/src/semantic/core.d.ts +24 -0
  24. package/dist/src/semantic/core.js +16 -0
  25. package/{types/api-types.ts → dist/types/api-types.d.ts} +6 -11
  26. package/dist/types/api-types.js +1 -0
  27. package/package.json +59 -35
  28. package/packages/api-test-dialect/index.ts +132 -132
  29. package/readme.md +58 -58
  30. package/src/cli.ts +1 -1
  31. package/src/index.ts +19 -16
  32. package/src/semantic/core.ts +26 -0
  33. package/CHANGELOG.md +0 -73
  34. package/bun.lock +0 -22
  35. package/bunfig.toml +0 -2
  36. package/critica.md +0 -77
  37. package/docs/4-ideias.md +0 -66
  38. package/docs/api-api.md +0 -93
  39. package/docs/api-imperativo.md +0 -125
  40. package/docs/api-matematico.md +0 -145
  41. package/docs/api-narrativo.md +0 -181
  42. package/docs/guia-rapido.md +0 -189
  43. package/docs/whitepaper.md +0 -21
  44. package/examples/imperative.spec.ts +0 -58
  45. package/examples/math.spec.ts +0 -52
  46. package/examples/narrative.spec.ts +0 -61
  47. package/examples/polyglot-shopping-cart.spec.ts +0 -212
  48. package/examples/sanity.spec.ts +0 -54
  49. package/examples/showcase-api.spec.ts +0 -70
  50. package/examples/test-api.ts +0 -36
  51. package/infograficos/detalhado.png +0 -0
  52. package/infograficos/mobile.png +0 -0
  53. package/infograficos/normal.png +0 -0
  54. package/landing-page/README.md +0 -38
  55. package/landing-page/bun.lock +0 -609
  56. package/landing-page/eslint.config.js +0 -23
  57. package/landing-page/index.html +0 -17
  58. package/landing-page/package-lock.json +0 -2962
  59. package/landing-page/package.json +0 -34
  60. package/landing-page/postcss.config.js +0 -6
  61. package/landing-page/public/vite.svg +0 -1
  62. package/landing-page/src/App.tsx +0 -358
  63. package/landing-page/src/assets/react.svg +0 -1
  64. package/landing-page/src/index.css +0 -34
  65. package/landing-page/src/main.tsx +0 -10
  66. package/landing-page/tailwind.config.js +0 -59
  67. package/landing-page/tsconfig.app.json +0 -28
  68. package/landing-page/tsconfig.json +0 -7
  69. package/landing-page/tsconfig.node.json +0 -26
  70. package/landing-page/vite.config.ts +0 -7
  71. package/logo.png +0 -0
  72. package/output.log +0 -60
  73. package/podcast/O_Matem/303/241tico,_o_Narrador_e_o_Engenheiro.json +0 -0
  74. package/podcast/O_Matem/303/241tico,_o_Narrador_e_o_Engenheiro.md +0 -0
  75. package/podcast/critica-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.json +0 -0
  76. package/podcast/critica-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.md +0 -0
  77. package/podcast/critica-Unificar_filosofia_e_pr/303/241tica_na_documenta/303/247/303/243o_(7_words__covers_t.md +0 -1
  78. package/podcast/critica-Unificar_filosofia_e_pr/303/241tica_na_documenta/303/247/303/243o__7_words__covers_t.ogg +0 -0
  79. package/podcast/critica2-Sil/303/252ncio_estrat/303/251gico_e_sobrecarga_em_READMEs.ogg +0 -0
  80. package/podcast/critica2.json +0 -3191
  81. package/podcast/critica2.md +0 -1
  82. package/podcast/debate-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.json +0 -0
  83. package/podcast/debate-Dialetos_de_teste__inova/303/247/303/243o_ou_fragmenta/303/247/303/243o_.md +0 -0
  84. package/reports/01-01-2026_00-45.md +0 -40
  85. package/reports/01-01-2026_02-30.md +0 -37
  86. package/reports/03-02-2026_10-55.md +0 -8
  87. package/reports/03-02-2026_11-45.md +0 -13
  88. package/reports/03-02-2026_11-50.md +0 -10
  89. package/reports/26-01-2026_16-25.md +0 -31
  90. package/reports/26-01-2026_19-20.md +0 -27
  91. package/reports/31-12-2025_22-35.md +0 -25
  92. package/reports/31-12-2025_22-45.md +0 -15
  93. package/slides/Dialetos_de_Teste_Um_Executor_M/303/272ltiplos_Vocabul/303/241rios.pdf +0 -0
  94. package/tabela.html +0 -350
  95. package/tsconfig.json +0 -22
  96. package/www/index.html +0 -1344
@@ -1,34 +0,0 @@
1
- {
2
- "name": "landing-page",
3
- "private": true,
4
- "version": "0.0.0",
5
- "type": "module",
6
- "scripts": {
7
- "dev": "vite",
8
- "build": "tsc -b && vite build",
9
- "lint": "eslint .",
10
- "preview": "vite preview"
11
- },
12
- "dependencies": {
13
- "framer-motion": "^12.29.2",
14
- "react": "^19.2.0",
15
- "react-dom": "^19.2.0"
16
- },
17
- "devDependencies": {
18
- "@eslint/js": "^9.39.1",
19
- "@types/node": "^24.10.1",
20
- "@types/react": "^19.2.5",
21
- "@types/react-dom": "^19.2.3",
22
- "@vitejs/plugin-react": "^5.1.1",
23
- "autoprefixer": "^10.4.24",
24
- "eslint": "^9.39.1",
25
- "eslint-plugin-react-hooks": "^7.0.1",
26
- "eslint-plugin-react-refresh": "^0.4.24",
27
- "globals": "^16.5.0",
28
- "postcss": "^8.5.6",
29
- "tailwindcss": "3.4.15",
30
- "typescript": "~5.9.3",
31
- "typescript-eslint": "^8.46.4",
32
- "vite": "^7.2.4"
33
- }
34
- }
@@ -1,6 +0,0 @@
1
- export default {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
@@ -1,358 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { motion, AnimatePresence } from 'framer-motion';
3
- import {
4
- ShieldCheck,
5
- BookOpen,
6
- Calculator,
7
- Send,
8
- Zap,
9
- CheckCircle2,
10
- ArrowRight,
11
- Terminal,
12
- Code2,
13
- FileCode2,
14
- Cpu
15
- } from 'lucide-react';
16
-
17
- const DialectCard = ({ icon: Icon, title, description, colorClass, active, onClick }: any) => (
18
- <motion.div
19
- whileHover={{ scale: 1.02 }}
20
- whileTap={{ scale: 0.98 }}
21
- onClick={onClick}
22
- className={`p-6 cursor-pointer glass-card border-2 transition-all duration-300 ${
23
- active ? colorClass : 'border-white/5 opacity-60 hover:opacity-100'
24
- }`}
25
- >
26
- <div className="flex items-center gap-4 mb-3">
27
- <div className={`p-2 rounded-lg ${active ? 'bg-white/10' : ''}`}>
28
- <Icon className={`w-6 h-6 ${active ? 'text-inherit' : 'text-white/40'}`} />
29
- </div>
30
- <h3 className="text-xl font-bold">{title}</h3>
31
- </div>
32
- <p className="text-sm text-white/60 leading-relaxed">{description}</p>
33
- </motion.div>
34
- );
35
-
36
- const CodeBlock = ({ code, language }: { code: string; language: string }) => (
37
- <div className="relative group">
38
- <div className="absolute -inset-1 bg-gradient-to-r from-math/20 to-apispec/20 rounded-xl blur opacity-25 group-hover:opacity-50 transition duration-1000"></div>
39
- <div className="relative bg-black/40 border border-white/10 rounded-xl p-6 font-mono text-sm overflow-x-auto">
40
- <div className="flex gap-2 mb-4 border-b border-white/5 pb-2">
41
- <div className="w-3 h-3 rounded-full bg-red-500/50" />
42
- <div className="w-3 h-3 rounded-full bg-yellow-500/50" />
43
- <div className="w-3 h-3 rounded-full bg-green-500/50" />
44
- <span className="ml-4 text-white/30 text-xs italic">{language}</span>
45
- </div>
46
- <pre className="text-white/80 leading-relaxed">{code}</pre>
47
- </div>
48
- </div>
49
- );
50
-
51
- function App() {
52
- const [activeDialect, setActiveDialect] = useState('math');
53
-
54
- const dialects = [
55
- {
56
- id: 'math',
57
- icon: Calculator,
58
- title: 'Mathematical',
59
- description: 'Perfect for algorithms, pure logic, and complex data processing. Prove your code, don\'t just test it.',
60
- colorClass: 'border-math text-math-light',
61
- keywords: ['axiom', 'proof', 'implies', 'postulate'],
62
- code: `axiom("Number Theory", () => {
63
- const fib = arbitrary();
64
- fib.derive((n) => n <= 1 ? n : fib(n-1) + fib(n-2));
65
-
66
- proof("Fibonacci(2) implies 1", () => {
67
- implies(fib(2)).is(1);
68
- });
69
- });`
70
- },
71
- {
72
- id: 'narrative',
73
- icon: BookOpen,
74
- title: 'Narrative',
75
- description: 'Ideal for user journeys and business rules. Readable by PMs and stakeholders. Your tests are your documentation.',
76
- colorClass: 'border-narrative text-narrative-light',
77
- keywords: ['intend', 'scenario', 'to', 'story'],
78
- code: `intend("User Checkout Journey", () => {
79
- scenario("User without permission tries to access admin", () => {
80
- to(response.status).be(403);
81
- });
82
- });`
83
- },
84
- {
85
- id: 'imperative',
86
- icon: ShieldCheck,
87
- title: 'Imperative',
88
- description: 'Best for API contracts and system compliance. Assertive language for strict requirements.',
89
- colorClass: 'border-imperative text-imperative-light',
90
- keywords: ['ensure', 'check', 'that', 'verify'],
91
- code: `ensure("PCI-DSS v4 Compliance", () => {
92
- verify("Sensitive data is never in plain text", () => {
93
- that(payload).matches(/^encrypted:/);
94
- });
95
- });`
96
- },
97
- {
98
- id: 'apispec',
99
- icon: Send,
100
- title: 'API Spec',
101
- description: 'Declarative API testing. Validate contracts and schemas with fluid, readable syntax.',
102
- colorClass: 'border-apispec text-apispec-light',
103
- keywords: ['define', 'post', 'shouldReturn', 'matchingSchema'],
104
- code: `await ApiSpec.define("Create User")
105
- .from("https://api.example.com")
106
- .post("/users", { name: "John" })
107
- .shouldReturn(201)
108
- .matchingSchema(userSchema)
109
- .run();`
110
- }
111
- ];
112
-
113
- const currentDialect = dialects.find(d => d.id === activeDialect)!;
114
-
115
- return (
116
- <div className="min-h-screen">
117
- {/* Hero Section */}
118
- <header className="relative overflow-hidden pt-20 pb-32 px-4">
119
- <div className="absolute top-0 left-1/2 -translate-x-1/2 w-full h-full -z-10">
120
- <div className="absolute top-0 left-1/4 w-[500px] h-[500px] bg-math/10 rounded-full blur-[120px]" />
121
- <div className="absolute bottom-0 right-1/4 w-[500px] h-[500px] bg-apispec/10 rounded-full blur-[120px]" />
122
- </div>
123
-
124
- <div className="max-w-6xl mx-auto text-center">
125
- <motion.div
126
- initial={{ opacity: 0, y: 20 }}
127
- animate={{ opacity: 1, y: 0 }}
128
- transition={{ duration: 0.6 }}
129
- >
130
- <span className="inline-flex items-center px-4 py-1.5 rounded-full text-sm font-medium bg-white/5 border border-white/10 text-white/70 mb-8">
131
- <Zap className="w-4 h-4 mr-2 text-amber-400" />
132
- The Future of Polyglot Testing
133
- </span>
134
- <h1 className="text-6xl md:text-8xl font-black mb-8 leading-[1.1] tracking-tight">
135
- One Proof <span className="gradient-text">4 All.</span>
136
- </h1>
137
- <p className="text-xl md:text-2xl text-white/60 max-w-3xl mx-auto mb-12 font-light leading-relaxed">
138
- One Runner to Rule Them All. Decouple your execution logic from
139
- semantics. Speak the language of the problem you are solving.
140
- </p>
141
- <div className="flex flex-col sm:flex-row justify-center gap-4">
142
- <button className="px-8 py-4 bg-white text-black font-bold rounded-full hover:bg-white/90 transition-all flex items-center justify-center gap-2 group">
143
- Get Started{" "}
144
- <ArrowRight className="w-5 h-5 group-hover:translate-x-1 transition-transform" />
145
- </button>
146
- <button className="px-8 py-4 bg-white/5 border border-white/10 text-white font-bold rounded-full hover:bg-white/10 transition-all">
147
- View Documentation
148
- </button>
149
- </div>
150
- </motion.div>
151
- </div>
152
- </header>
153
-
154
- {/* Philosophy Section */}
155
- <section className="py-24 px-4 bg-white/5 border-y border-white/10">
156
- <div className="max-w-6xl mx-auto">
157
- <div className="grid grid-cols-1 lg:grid-cols-2 gap-16 items-center">
158
- <div>
159
- <h2 className="text-4xl font-bold mb-6">
160
- Zero Risk. <span className="text-white/40">Total Freedom.</span>
161
- </h2>
162
- <p className="text-lg text-white/60 mb-10 leading-relaxed">
163
- Your legacy Jest code remains untouched. <b>one-spec-4-all</b>{" "}
164
- is an additive framework. Keep your existing tests and start
165
- adding new ones using the dialect that fits best.
166
- </p>
167
-
168
- <div className="space-y-6">
169
- {[
170
- { icon: CheckCircle2, text: "Runs natively alongside Jest" },
171
- {
172
- icon: CheckCircle2,
173
- text: "No rewrite required for existing tests",
174
- },
175
- {
176
- icon: CheckCircle2,
177
- text: "Unify your whole team's testing language",
178
- },
179
- ].map((item, i) => (
180
- <motion.div
181
- initial={{ opacity: 0, x: -20 }}
182
- whileInView={{ opacity: 1, x: 0 }}
183
- transition={{ delay: i * 0.1 }}
184
- key={i}
185
- className="flex items-center gap-3 text-white/80"
186
- >
187
- <item.icon className="w-5 h-5 text-narrative" />
188
- <span>{item.text}</span>
189
- </motion.div>
190
- ))}
191
- </div>
192
- </div>
193
-
194
- <div className="bg-black/60 p-8 rounded-3xl border border-white/10 shadow-2xl relative overflow-hidden group">
195
- <div className="absolute top-0 right-0 p-4 opacity-10 group-hover:opacity-20 transition-opacity">
196
- <ShieldCheck className="w-32 h-32" />
197
- </div>
198
- <h3 className="text-2xl font-bold mb-4 flex items-center gap-2">
199
- <Terminal className="w-6 h-6 text-math" />
200
- Polyglot Runner
201
- </h3>
202
- <p className="text-white/40 mb-6 font-mono text-sm">
203
- // coexist in the same file
204
- </p>
205
- <div className="space-y-4 opacity-80 scale-95 group-hover:scale-100 transition-transform duration-500">
206
- <div className="p-4 bg-white/5 rounded-xl border-l-4 border-white/20 text-xs font-mono">
207
- <span className="text-white/40">// Standard Jest</span>
208
- <div className="mt-1">
209
- <span className="text-purple-400">describe</span>(
210
- <span className="text-amber-200">"Legacy Login"</span>, ()
211
- =&gt; {" { ... } "})
212
- </div>
213
- </div>
214
- <div className="p-4 bg-white/5 rounded-xl border-l-4 border-narrative text-xs font-mono">
215
- <span className="text-narrative/60">// One Proof 4 All</span>
216
- <div className="mt-1">
217
- <span className="text-narrative-light">intend</span>(
218
- <span className="text-amber-200">"New Auth Flow"</span>, ()
219
- =&gt; {" { ... } "})
220
- </div>
221
- </div>
222
- </div>
223
- </div>
224
- </div>
225
- </div>
226
- </section>
227
-
228
- {/* Dialects Section */}
229
- <section className="py-32 px-4 max-w-7xl mx-auto">
230
- <div className="text-center mb-20">
231
- <h2 className="text-5xl font-bold mb-6">
232
- Choose Your <span className="gradient-text">Dialect.</span>
233
- </h2>
234
- <p className="text-white/50 text-xl max-w-2xl mx-auto leading-relaxed">
235
- Don't learn everything. Just pick what fits your domain and ignore
236
- the rest.
237
- </p>
238
- </div>
239
-
240
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-16">
241
- {dialects.map((d) => (
242
- <DialectCard
243
- key={d.id}
244
- {...d}
245
- active={activeDialect === d.id}
246
- onClick={() => setActiveDialect(d.id)}
247
- />
248
- ))}
249
- </div>
250
-
251
- <AnimatePresence mode="wait">
252
- <motion.div
253
- key={activeDialect}
254
- initial={{ opacity: 0, y: 10 }}
255
- animate={{ opacity: 1, y: 0 }}
256
- exit={{ opacity: 0, y: -10 }}
257
- className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center"
258
- >
259
- <div className="glass-card p-12 border-white/10">
260
- <div className="flex items-center gap-4 mb-6 text-2xl font-bold">
261
- <currentDialect.icon
262
- className={`w-8 h-8 ${currentDialect.colorClass.split(" ")[1]}`}
263
- />
264
- {currentDialect.title} Dialect
265
- </div>
266
- <p className="text-white/70 text-lg mb-8 leading-relaxed">
267
- {currentDialect.description}
268
- </p>
269
- <div className="flex flex-wrap gap-2">
270
- {currentDialect.keywords.map((kw) => (
271
- <span
272
- key={kw}
273
- className="px-3 py-1 rounded-md bg-white/5 text-white/50 font-mono text-xs"
274
- >
275
- {kw}
276
- </span>
277
- ))}
278
- </div>
279
- </div>
280
- <CodeBlock code={currentDialect.code} language="typescript" />
281
- </motion.div>
282
- </AnimatePresence>
283
- </section>
284
-
285
- {/* Why Section */}
286
- <section className="py-32 px-4 border-t border-white/10">
287
- <div className="max-w-6xl mx-auto">
288
- <div className="text-center mb-20">
289
- <h2 className="text-4xl font-bold mb-4">Engineered for Teams</h2>
290
- <p className="text-white/40">
291
- Bridging the gap between engineering, product, and science.
292
- </p>
293
- </div>
294
-
295
- <div className="grid grid-cols-1 md:grid-cols-3 gap-8">
296
- {[
297
- {
298
- icon: Cpu,
299
- title: "Data Scientists",
300
- desc: "Use mathematical proofs for algorithms without wrestling with UI-focused testing frameworks.",
301
- },
302
- {
303
- icon: FileCode2,
304
- title: "Architects",
305
- desc: "Enforce API contracts and strict compliance with imperative dialects that mean business.",
306
- },
307
- {
308
- icon: Code2,
309
- title: "PMs & QAs",
310
- desc: "Narrative specs that read like English. Verification becomes a collaborative process.",
311
- },
312
- ].map((feature, i) => (
313
- <div key={i} className="p-8 glass-card">
314
- <feature.icon className="w-10 h-10 mb-6 text-white/80" />
315
- <h3 className="text-xl font-bold mb-3">{feature.title}</h3>
316
- <p className="text-white/50 text-sm leading-relaxed">
317
- {feature.desc}
318
- </p>
319
- </div>
320
- ))}
321
- </div>
322
- </div>
323
- </section>
324
-
325
- {/* Footer */}
326
- <footer className="py-20 px-4 border-t border-white/10 text-center">
327
- <h2 className="text-3xl font-black mb-8 italic">
328
- One Proof <span className="gradient-text">4 All.</span>
329
- </h2>
330
- <p className="text-white/30 text-sm mb-8">
331
- © 2026 vibe2founder Canonical. Built for the era of agentic coding.
332
- </p>
333
- <div className="flex justify-center gap-6">
334
- <a
335
- href="#"
336
- className="text-white/50 hover:text-white transition-colors"
337
- >
338
- GitHub
339
- </a>
340
- <a
341
- href="#"
342
- className="text-white/50 hover:text-white transition-colors"
343
- >
344
- Documentation
345
- </a>
346
- <a
347
- href="#"
348
- className="text-white/50 hover:text-white transition-colors"
349
- >
350
- Changelog
351
- </a>
352
- </div>
353
- </footer>
354
- </div>
355
- );
356
- }
357
-
358
- export default App;
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
@@ -1,34 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer base {
6
- body {
7
- @apply bg-background text-foreground antialiased;
8
- font-feature-settings: "ss01", "ss02", "cv01", "cv02";
9
- }
10
- }
11
-
12
- .glass-card {
13
- @apply bg-white/5 backdrop-blur-lg border border-white/10 rounded-2xl;
14
- }
15
-
16
- .gradient-text {
17
- @apply bg-clip-text text-transparent bg-gradient-to-r from-math-light via-narrative-light to-imperative-light;
18
- }
19
-
20
- .dialect-card-math {
21
- @apply border-math/30 hover:border-math transition-all duration-300;
22
- }
23
-
24
- .dialect-card-narrative {
25
- @apply border-narrative/30 hover:border-narrative transition-all duration-300;
26
- }
27
-
28
- .dialect-card-imperative {
29
- @apply border-imperative/30 hover:border-imperative transition-all duration-300;
30
- }
31
-
32
- .dialect-card-apispec {
33
- @apply border-apispec/30 hover:border-apispec transition-all duration-300;
34
- }
@@ -1,10 +0,0 @@
1
- import { StrictMode } from 'react'
2
- import { createRoot } from 'react-dom/client'
3
- import './index.css'
4
- import App from './App.tsx'
5
-
6
- createRoot(document.getElementById('root')!).render(
7
- <StrictMode>
8
- <App />
9
- </StrictMode>,
10
- )
@@ -1,59 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- export default {
3
- content: [
4
- "./index.html",
5
- "./src/**/*.{js,ts,jsx,tsx}",
6
- ],
7
- theme: {
8
- extend: {
9
- colors: {
10
- background: "#0a0a0a",
11
- foreground: "#ededed",
12
- math: {
13
- light: "#818cf8",
14
- DEFAULT: "#6366f1",
15
- dark: "#4f46e5",
16
- },
17
- narrative: {
18
- light: "#34d399",
19
- DEFAULT: "#10b981",
20
- dark: "#059669",
21
- },
22
- imperative: {
23
- light: "#fbbf24",
24
- DEFAULT: "#f59e0b",
25
- dark: "#d97706",
26
- },
27
- apispec: {
28
- light: "#fb7185",
29
- DEFAULT: "#f43f5e",
30
- dark: "#e11d48",
31
- }
32
- },
33
- fontFamily: {
34
- sans: ["Inter", "sans-serif"],
35
- mono: ["JetBrains Mono", "monospace"],
36
- },
37
- animation: {
38
- 'fade-in': 'fadeIn 0.5s ease-out',
39
- 'slide-up': 'slideUp 0.6s ease-out',
40
- 'glow': 'glow 2s infinite alternate',
41
- },
42
- keyframes: {
43
- fadeIn: {
44
- '0%': { opacity: '0' },
45
- '100%': { opacity: '1' },
46
- },
47
- slideUp: {
48
- '0%': { transform: 'translateY(20px)', opacity: '0' },
49
- '100%': { transform: 'translateY(0)', opacity: '1' },
50
- },
51
- glow: {
52
- '0%': { boxShadow: '0 0 5px rgba(99, 102, 241, 0.2)' },
53
- '100%': { boxShadow: '0 0 20px rgba(99, 102, 241, 0.6)' },
54
- }
55
- }
56
- },
57
- },
58
- plugins: [],
59
- }
@@ -1,28 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
- "target": "ES2022",
5
- "useDefineForClassFields": true,
6
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
- "module": "ESNext",
8
- "types": ["vite/client"],
9
- "skipLibCheck": true,
10
-
11
- /* Bundler mode */
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "moduleDetection": "force",
16
- "noEmit": true,
17
- "jsx": "react-jsx",
18
-
19
- /* Linting */
20
- "strict": true,
21
- "noUnusedLocals": true,
22
- "noUnusedParameters": true,
23
- "erasableSyntaxOnly": true,
24
- "noFallthroughCasesInSwitch": true,
25
- "noUncheckedSideEffectImports": true
26
- },
27
- "include": ["src"]
28
- }
@@ -1,7 +0,0 @@
1
- {
2
- "files": [],
3
- "references": [
4
- { "path": "./tsconfig.app.json" },
5
- { "path": "./tsconfig.node.json" }
6
- ]
7
- }
@@ -1,26 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
- "target": "ES2023",
5
- "lib": ["ES2023"],
6
- "module": "ESNext",
7
- "types": ["node"],
8
- "skipLibCheck": true,
9
-
10
- /* Bundler mode */
11
- "moduleResolution": "bundler",
12
- "allowImportingTsExtensions": true,
13
- "verbatimModuleSyntax": true,
14
- "moduleDetection": "force",
15
- "noEmit": true,
16
-
17
- /* Linting */
18
- "strict": true,
19
- "noUnusedLocals": true,
20
- "noUnusedParameters": true,
21
- "erasableSyntaxOnly": true,
22
- "noFallthroughCasesInSwitch": true,
23
- "noUncheckedSideEffectImports": true
24
- },
25
- "include": ["vite.config.ts"]
26
- }
@@ -1,7 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import react from '@vitejs/plugin-react'
3
-
4
- // https://vite.dev/config/
5
- export default defineConfig({
6
- plugins: [react()],
7
- })
package/logo.png DELETED
Binary file
package/output.log DELETED
@@ -1,60 +0,0 @@
1
-
2
-  tests2dialects  v0.2.0
3
-
4
- DEV Scanning for .spec.ts files in /mnt/d/www/Freelas/PROJETOS_OPENSOURCE/MEUS/@vibe2founder/canonical/one-spec-4-all/vibe2founder-one-spec-4-all
5
-
6
- Found 5 test files
7
-
8
-  ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ
9
-
10
-
11
-  Ô£ô examples/imperative.spec.ts 4 passed (7ms)
12
- Ô£ô Sistema de Seguran├ºa e Compliance ÔÇ║ Deve bloquear conex├Áes de IPs na blacklist 7ms
13
- Ô£ô Sistema de Seguran├ºa e Compliance ÔÇ║ Deve registrar auditoria para cada acesso 8ms
14
- Ô£ô Valida├º├úo Estrutural da API V2 ÔÇ║ Payload deve conter metadados corretos 2ms
15
- Ô£ô Valida├º├úo Estrutural da API V2 ÔÇ║ Campos obrigat├│rios devem existir 2ms
16
-
17
-
18
-  Ô£ô examples/math.spec.ts 4 passed (4ms)
19
- Ô£ô Teoria Financeira: Juros Compostos ÔÇ║ O capital deve crescer exponencialmente 8ms
20
- Ô£ô Teoria Financeira: Juros Compostos ÔÇ║ Taxa zero implica em imutabilidade do capital 6ms
21
- Ô£ô ├ülgebra Booleana: Leis de De Morgan ÔÇ║ A nega├º├úo da disjun├º├úo ├® a conjun├º├úo das nega├º├Áes 10ms
22
- Ô£ô An├ílise de Fun├º├Áes Recursivas ÔÇ║ Fatorial de 5 converge para 120 1ms
23
-
24
-
25
-  Ô£ô examples/narrative.spec.ts 3 passed (4ms)
26
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ O cliente finaliza a compra com sucesso 1ms
27
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ O sistema deve lidar com falha no pagamento 5ms
28
- Ô£ô Onboarding de Novos Membros ÔÇ║ Deve criar perfil padr├úo ao registrar 2ms
29
-
30
-
31
-  Ô£ô examples/polyglot-shopping-cart.spec.ts 14 passed (5ms)
32
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Desconto de 10% em R$100 implica R$90 6ms
33
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Desconto de 0% preserva o valor original 8ms
34
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Desconto de 100% anula o pre├ºo 3ms
35
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Total de carrinho vazio converge para zero 2ms
36
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Total de 3 itens a R$10 cada (qty=2) implica R$60 9ms
37
- Ô£ô Teoria de C├ílculo de Pre├ºos ÔÇ║ Imposto de 10% sobre R$100 resulta em R$110 4ms
38
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ Usu├írio adiciona primeiro produto ao carrinho 7ms
39
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ Usu├írio aplica cupom de desconto 3ms
40
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ Usu├írio remove item e carrinho fica vazio 8ms
41
- Ô£ô Jornada de Compra do Usu├írio ÔÇ║ Usu├írio n├úo logado tenta finalizar compra 9ms
42
- Ô£ô Conformidade com Gateway de Pagamento v2.1 ÔÇ║ Transa├º├úo bem-sucedida retorna status 200 1ms
43
- Ô£ô Conformidade com Gateway de Pagamento v2.1 ÔÇ║ TransactionId segue padr├úo RFC do contrato 5ms
44
- Ô£ô Conformidade com Gateway de Pagamento v2.1 ÔÇ║ Toda transa├º├úo deve ser logada para auditoria 8ms
45
- Ô£ô Conformidade com Gateway de Pagamento v2.1 ÔÇ║ Gateway deve ser acionado exatamente uma vez por request 4ms
46
-
47
-
48
-  Ô£ô examples/sanity.spec.ts 3 passed (2ms)
49
- Ô£ô Teoria dos Conjuntos (Dialeto Matem├ítico) ÔÇ║ f deve mapear para 10 1ms
50
- Ô£ô Autentica├º├úo de Usu├írio (Dialeto Narrativo) ÔÇ║ login bem sucedido 6ms
51
- Ô£ô Servi├ºo de Pagamento (Dialeto Imperativo) ÔÇ║ status da API ├® 200 4ms
52
-
53
-  ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ ÔöÇ
54
-
55
- Test Files 5 passed (5)
56
-  Tests 28 passed (28)
57
-  Duration 22ms
58
-
59
-  PASS  All tests passed!
60
-