@supersoniks/concorde 4.2.0 → 4.2.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/build-infos.json +1 -1
- package/concorde-core.bundle.js +2 -2
- package/concorde-core.es.js +5 -3
- package/dist/concorde-core.bundle.js +2 -2
- package/dist/concorde-core.es.js +5 -3
- package/docs/assets/{index-BbnRiebQ.js → index-B0IJ9I_B.js} +268 -242
- package/docs/assets/{index-BBv9CZqo.css → index-B3QHEJTV.css} +1 -1
- package/docs/index.html +2 -2
- package/docs/src/docs/_misc/bind.md +74 -0
- package/docs/src/docs/_misc/key.md +135 -0
- package/docs/src/docs/search/docs-search.json +310 -0
- package/docs/src/tsconfig-model.json +1 -1
- package/docs/src/tsconfig.json +322 -306
- package/package.json +1 -4
- package/scripts/pre-build.mjs +0 -0
- package/src/core/components/functional/example/example.ts +0 -0
- package/src/core/components/ui/captcha/captcha.ts +12 -6
- package/src/tsconfig.json +0 -9
- package/src/tsconfig.tsbuildinfo +1 -1
- package/vite.config.mts +0 -0
- package/README.md +0 -163
- package/php/get-challenge.php +0 -34
- package/php/some-service.php +0 -42
- package/src/core/components/ui/modal/modal.stories.ts +0 -140
|
@@ -4274,6 +4274,121 @@
|
|
|
4274
4274
|
}
|
|
4275
4275
|
}
|
|
4276
4276
|
},
|
|
4277
|
+
{
|
|
4278
|
+
"search": "The @subscribe decorator is a simplified version of @bind without reflect. It accepts only Key<T> and enforces that the decorated property must be of type T:\n",
|
|
4279
|
+
"files": {
|
|
4280
|
+
"docs/_misc/bind.md": {
|
|
4281
|
+
"title": "@bind",
|
|
4282
|
+
"hashes": {
|
|
4283
|
+
"subscribe-read-only-strictly-typed-with-key": {
|
|
4284
|
+
"count": 1,
|
|
4285
|
+
"title": "@subscribe (read-only, strictly typed with Key)",
|
|
4286
|
+
"type": "paragraph"
|
|
4287
|
+
}
|
|
4288
|
+
}
|
|
4289
|
+
}
|
|
4290
|
+
}
|
|
4291
|
+
},
|
|
4292
|
+
{
|
|
4293
|
+
"search": "const statsKey = new Key("idDonneesDeStats");\n",
|
|
4294
|
+
"files": {
|
|
4295
|
+
"docs/_misc/bind.md": {
|
|
4296
|
+
"title": "@bind",
|
|
4297
|
+
"hashes": {
|
|
4298
|
+
"subscribe-read-only-strictly-typed-with-key": {
|
|
4299
|
+
"count": 1,
|
|
4300
|
+
"title": "@subscribe (read-only, strictly typed with Key)",
|
|
4301
|
+
"type": "paragraph"
|
|
4302
|
+
}
|
|
4303
|
+
}
|
|
4304
|
+
},
|
|
4305
|
+
"docs/_misc/key.md": {
|
|
4306
|
+
"title": "Key",
|
|
4307
|
+
"hashes": {
|
|
4308
|
+
"integration-with-subscribe": {
|
|
4309
|
+
"count": 1,
|
|
4310
|
+
"title": "Integration with @subscribe",
|
|
4311
|
+
"type": "paragraph"
|
|
4312
|
+
}
|
|
4313
|
+
}
|
|
4314
|
+
}
|
|
4315
|
+
}
|
|
4316
|
+
},
|
|
4317
|
+
{
|
|
4318
|
+
"search": "@subscribe(statsKey.gauge)\n@state()\ngauge: number = 0; // OK — matches Key\n",
|
|
4319
|
+
"files": {
|
|
4320
|
+
"docs/_misc/bind.md": {
|
|
4321
|
+
"title": "@bind",
|
|
4322
|
+
"hashes": {
|
|
4323
|
+
"subscribe-read-only-strictly-typed-with-key": {
|
|
4324
|
+
"count": 1,
|
|
4325
|
+
"title": "@subscribe (read-only, strictly typed with Key)",
|
|
4326
|
+
"type": "paragraph"
|
|
4327
|
+
}
|
|
4328
|
+
}
|
|
4329
|
+
}
|
|
4330
|
+
}
|
|
4331
|
+
},
|
|
4332
|
+
{
|
|
4333
|
+
"search": "// @subscribe(statsKey.gauge)\n// gauge: string = ""; // Error — type 'string' is not assignable to type 'number'\n \n\n",
|
|
4334
|
+
"files": {
|
|
4335
|
+
"docs/_misc/bind.md": {
|
|
4336
|
+
"title": "@bind",
|
|
4337
|
+
"hashes": {
|
|
4338
|
+
"subscribe-read-only-strictly-typed-with-key": {
|
|
4339
|
+
"count": 1,
|
|
4340
|
+
"title": "@subscribe (read-only, strictly typed with Key)",
|
|
4341
|
+
"type": "paragraph"
|
|
4342
|
+
}
|
|
4343
|
+
}
|
|
4344
|
+
}
|
|
4345
|
+
}
|
|
4346
|
+
},
|
|
4347
|
+
{
|
|
4348
|
+
"search": "The @publish decorator is the inverse of @subscribe: when you write to the property, the value is published to the publisher path. No subscription (no read from publisher).\n",
|
|
4349
|
+
"files": {
|
|
4350
|
+
"docs/_misc/bind.md": {
|
|
4351
|
+
"title": "@bind",
|
|
4352
|
+
"hashes": {
|
|
4353
|
+
"publish-write-only-inverse-of-subscribe": {
|
|
4354
|
+
"count": 1,
|
|
4355
|
+
"title": "@publish (write-only, inverse of @subscribe)",
|
|
4356
|
+
"type": "paragraph"
|
|
4357
|
+
}
|
|
4358
|
+
}
|
|
4359
|
+
}
|
|
4360
|
+
}
|
|
4361
|
+
},
|
|
4362
|
+
{
|
|
4363
|
+
"search": "const formKey = new Key("formData");\n",
|
|
4364
|
+
"files": {
|
|
4365
|
+
"docs/_misc/bind.md": {
|
|
4366
|
+
"title": "@bind",
|
|
4367
|
+
"hashes": {
|
|
4368
|
+
"publish-write-only-inverse-of-subscribe": {
|
|
4369
|
+
"count": 1,
|
|
4370
|
+
"title": "@publish (write-only, inverse of @subscribe)",
|
|
4371
|
+
"type": "paragraph"
|
|
4372
|
+
}
|
|
4373
|
+
}
|
|
4374
|
+
}
|
|
4375
|
+
}
|
|
4376
|
+
},
|
|
4377
|
+
{
|
|
4378
|
+
"search": "@publish(formKey.email)\n@state()\nemail = ""; // Writing to email publishes to formData.email\n \n\n",
|
|
4379
|
+
"files": {
|
|
4380
|
+
"docs/_misc/bind.md": {
|
|
4381
|
+
"title": "@bind",
|
|
4382
|
+
"hashes": {
|
|
4383
|
+
"publish-write-only-inverse-of-subscribe": {
|
|
4384
|
+
"count": 1,
|
|
4385
|
+
"title": "@publish (write-only, inverse of @subscribe)",
|
|
4386
|
+
"type": "paragraph"
|
|
4387
|
+
}
|
|
4388
|
+
}
|
|
4389
|
+
}
|
|
4390
|
+
}
|
|
4391
|
+
},
|
|
4277
4392
|
{
|
|
4278
4393
|
"search": "Lorsque vous avez besoin que les modifications locales se propagent également vers le publisher, activez l'option reflect :\n",
|
|
4279
4394
|
"files": {
|
|
@@ -4399,6 +4514,201 @@
|
|
|
4399
4514
|
}
|
|
4400
4515
|
}
|
|
4401
4516
|
},
|
|
4517
|
+
{
|
|
4518
|
+
"search": "Key",
|
|
4519
|
+
"files": {
|
|
4520
|
+
"docs/_misc/key.md": {
|
|
4521
|
+
"title": "Key",
|
|
4522
|
+
"hashes": {
|
|
4523
|
+
"key": {
|
|
4524
|
+
"count": 1,
|
|
4525
|
+
"title": "",
|
|
4526
|
+
"type": "page"
|
|
4527
|
+
}
|
|
4528
|
+
}
|
|
4529
|
+
}
|
|
4530
|
+
}
|
|
4531
|
+
},
|
|
4532
|
+
{
|
|
4533
|
+
"search": "The Key<T> utility provides type-safe navigation through composite data structures. Each property or index access extends the path, and the final key can be retrieved via toString() or the path property.\n",
|
|
4534
|
+
"files": {
|
|
4535
|
+
"docs/_misc/key.md": {
|
|
4536
|
+
"title": "Key",
|
|
4537
|
+
"hashes": {
|
|
4538
|
+
"key": {
|
|
4539
|
+
"count": 1,
|
|
4540
|
+
"title": "",
|
|
4541
|
+
"type": "paragraph"
|
|
4542
|
+
}
|
|
4543
|
+
}
|
|
4544
|
+
}
|
|
4545
|
+
}
|
|
4546
|
+
},
|
|
4547
|
+
{
|
|
4548
|
+
"search": "Key uses a Proxy to intercept property access and build a cumulative path string. TypeScript infers the nested type at each level, so myKey.checkedTickets[0] is correctly typed as Key<LegacyCheckedTicket> when checkedTickets is LegacyCheckedTicket[].\n",
|
|
4549
|
+
"files": {
|
|
4550
|
+
"docs/_misc/key.md": {
|
|
4551
|
+
"title": "Key",
|
|
4552
|
+
"hashes": {
|
|
4553
|
+
"principle": {
|
|
4554
|
+
"count": 1,
|
|
4555
|
+
"title": "Principle",
|
|
4556
|
+
"type": "paragraph"
|
|
4557
|
+
}
|
|
4558
|
+
}
|
|
4559
|
+
}
|
|
4560
|
+
}
|
|
4561
|
+
},
|
|
4562
|
+
{
|
|
4563
|
+
"search": "// Create a key and navigate through the structure\nconst myKey = new Key("idDonneesDeStats").checkedTickets[0];\n",
|
|
4564
|
+
"files": {
|
|
4565
|
+
"docs/_misc/key.md": {
|
|
4566
|
+
"title": "Key",
|
|
4567
|
+
"hashes": {
|
|
4568
|
+
"basic-example": {
|
|
4569
|
+
"count": 1,
|
|
4570
|
+
"title": "Basic example",
|
|
4571
|
+
"type": "paragraph"
|
|
4572
|
+
}
|
|
4573
|
+
}
|
|
4574
|
+
}
|
|
4575
|
+
}
|
|
4576
|
+
},
|
|
4577
|
+
{
|
|
4578
|
+
"search": "// Equivalent to: new Key("idDonneesDeStats.checkedTickets.0")\nmyKey.toString(); // "idDonneesDeStats.checkedTickets.0"\nmyKey.path; // same value\n// myKey is typed as Key\n \n\n",
|
|
4579
|
+
"files": {
|
|
4580
|
+
"docs/_misc/key.md": {
|
|
4581
|
+
"title": "Key",
|
|
4582
|
+
"hashes": {
|
|
4583
|
+
"basic-example": {
|
|
4584
|
+
"count": 1,
|
|
4585
|
+
"title": "Basic example",
|
|
4586
|
+
"type": "paragraph"
|
|
4587
|
+
}
|
|
4588
|
+
}
|
|
4589
|
+
}
|
|
4590
|
+
}
|
|
4591
|
+
},
|
|
4592
|
+
{
|
|
4593
|
+
"search": "const firstTicket = ticketsKey[0];\nfirstTicket.path; // "data.checkedTickets.0"\n// firstTicket is Key\n \n\n",
|
|
4594
|
+
"files": {
|
|
4595
|
+
"docs/_misc/key.md": {
|
|
4596
|
+
"title": "Key",
|
|
4597
|
+
"hashes": {
|
|
4598
|
+
"array-index-access": {
|
|
4599
|
+
"count": 1,
|
|
4600
|
+
"title": "Array index access",
|
|
4601
|
+
"type": "paragraph"
|
|
4602
|
+
}
|
|
4603
|
+
}
|
|
4604
|
+
}
|
|
4605
|
+
}
|
|
4606
|
+
},
|
|
4607
|
+
{
|
|
4608
|
+
"search": "const key = Key("root");\nkey.path; // "root"\n \n\n",
|
|
4609
|
+
"files": {
|
|
4610
|
+
"docs/_misc/key.md": {
|
|
4611
|
+
"title": "Key",
|
|
4612
|
+
"hashes": {
|
|
4613
|
+
"usage-without-new": {
|
|
4614
|
+
"count": 1,
|
|
4615
|
+
"title": "Usage without `new`",
|
|
4616
|
+
"type": "paragraph"
|
|
4617
|
+
}
|
|
4618
|
+
}
|
|
4619
|
+
}
|
|
4620
|
+
}
|
|
4621
|
+
},
|
|
4622
|
+
{
|
|
4623
|
+
"search": "The final path is built by concatenating each accessed property with a dot:\n",
|
|
4624
|
+
"files": {
|
|
4625
|
+
"docs/_misc/key.md": {
|
|
4626
|
+
"title": "Key",
|
|
4627
|
+
"hashes": {
|
|
4628
|
+
"path-retrieval": {
|
|
4629
|
+
"count": 1,
|
|
4630
|
+
"title": "Path retrieval",
|
|
4631
|
+
"type": "paragraph"
|
|
4632
|
+
}
|
|
4633
|
+
}
|
|
4634
|
+
}
|
|
4635
|
+
}
|
|
4636
|
+
},
|
|
4637
|
+
{
|
|
4638
|
+
"search": "Use toString() or path to get the full path string:\n",
|
|
4639
|
+
"files": {
|
|
4640
|
+
"docs/_misc/key.md": {
|
|
4641
|
+
"title": "Key",
|
|
4642
|
+
"hashes": {
|
|
4643
|
+
"path-retrieval": {
|
|
4644
|
+
"count": 1,
|
|
4645
|
+
"title": "Path retrieval",
|
|
4646
|
+
"type": "paragraph"
|
|
4647
|
+
}
|
|
4648
|
+
}
|
|
4649
|
+
}
|
|
4650
|
+
}
|
|
4651
|
+
},
|
|
4652
|
+
{
|
|
4653
|
+
"search": "Use Key with the @subscribe decorator for strictly typed, read-only bindings (no reflect). The decorated property must match the Key type:\n",
|
|
4654
|
+
"files": {
|
|
4655
|
+
"docs/_misc/key.md": {
|
|
4656
|
+
"title": "Key",
|
|
4657
|
+
"hashes": {
|
|
4658
|
+
"integration-with-subscribe": {
|
|
4659
|
+
"count": 1,
|
|
4660
|
+
"title": "Integration with @subscribe",
|
|
4661
|
+
"type": "paragraph"
|
|
4662
|
+
}
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
}
|
|
4666
|
+
},
|
|
4667
|
+
{
|
|
4668
|
+
"search": "@customElement("stats-gauge")\nexport class StatsGauge extends LitElement {\n @subscribe(statsKey.gauge)\n @state()\n gauge: number = 0; // Type enforced: must be number\n",
|
|
4669
|
+
"files": {
|
|
4670
|
+
"docs/_misc/key.md": {
|
|
4671
|
+
"title": "Key",
|
|
4672
|
+
"hashes": {
|
|
4673
|
+
"integration-with-subscribe": {
|
|
4674
|
+
"count": 1,
|
|
4675
|
+
"title": "Integration with @subscribe",
|
|
4676
|
+
"type": "paragraph"
|
|
4677
|
+
}
|
|
4678
|
+
}
|
|
4679
|
+
}
|
|
4680
|
+
}
|
|
4681
|
+
},
|
|
4682
|
+
{
|
|
4683
|
+
"search": " render() {\n return html<span>Gauge: ${this.gauge}</span>;\n }\n}\n \n\n",
|
|
4684
|
+
"files": {
|
|
4685
|
+
"docs/_misc/key.md": {
|
|
4686
|
+
"title": "Key",
|
|
4687
|
+
"hashes": {
|
|
4688
|
+
"integration-with-subscribe": {
|
|
4689
|
+
"count": 1,
|
|
4690
|
+
"title": "Integration with @subscribe",
|
|
4691
|
+
"type": "paragraph"
|
|
4692
|
+
}
|
|
4693
|
+
}
|
|
4694
|
+
}
|
|
4695
|
+
}
|
|
4696
|
+
},
|
|
4697
|
+
{
|
|
4698
|
+
"search": "If you declare gauge: string with @subscribe(statsKey.gauge) (Key), TypeScript will error.\n",
|
|
4699
|
+
"files": {
|
|
4700
|
+
"docs/_misc/key.md": {
|
|
4701
|
+
"title": "Key",
|
|
4702
|
+
"hashes": {
|
|
4703
|
+
"integration-with-subscribe": {
|
|
4704
|
+
"count": 1,
|
|
4705
|
+
"title": "Integration with @subscribe",
|
|
4706
|
+
"type": "paragraph"
|
|
4707
|
+
}
|
|
4708
|
+
}
|
|
4709
|
+
}
|
|
4710
|
+
}
|
|
4711
|
+
},
|
|
4402
4712
|
{
|
|
4403
4713
|
"search": "@onAssign",
|
|
4404
4714
|
"files": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"exclude": ["node_modules/**/*", "dist/**/*", "vite.config.mts", "docs.ts", "docs/*", "router-test.html"],
|
|
2
|
+
"exclude": ["node_modules/**/*", "dist/**/*", "vite.config.mts", "docs.ts", "docs/*", "router-test.html", "**/*.type-test.ts"],
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"target": "es2021",
|
|
5
5
|
"experimentalDecorators": true,
|