@carlonicora/nextjs-jsonapi 1.39.2 → 1.40.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.
- package/dist/{BlockNoteEditor-WQXQPLMX.js → BlockNoteEditor-4G3L3LSF.js} +14 -14
- package/dist/{BlockNoteEditor-WQXQPLMX.js.map → BlockNoteEditor-4G3L3LSF.js.map} +1 -1
- package/dist/{BlockNoteEditor-CITC7I2Z.mjs → BlockNoteEditor-EKY4AHVK.mjs} +4 -4
- package/dist/billing/index.js +346 -346
- package/dist/billing/index.mjs +3 -3
- package/dist/{chunk-LDH2FGJY.mjs → chunk-BAOP6PTD.mjs} +689 -34
- package/dist/chunk-BAOP6PTD.mjs.map +1 -0
- package/dist/{chunk-2RBYXY6T.js → chunk-GKY5DAIH.js} +1228 -573
- package/dist/chunk-GKY5DAIH.js.map +1 -0
- package/dist/{chunk-TQ5GRRTM.mjs → chunk-GVN7XC3U.mjs} +278 -2
- package/dist/chunk-GVN7XC3U.mjs.map +1 -0
- package/dist/{chunk-XLMJPA4N.mjs → chunk-RRIYLEY6.mjs} +22 -2
- package/dist/chunk-RRIYLEY6.mjs.map +1 -0
- package/dist/{chunk-2PHWAL6Q.js → chunk-T5YYOT4Z.js} +22 -2
- package/dist/chunk-T5YYOT4Z.js.map +1 -0
- package/dist/{chunk-3EZX4G2E.js → chunk-ZNGEVB5M.js} +279 -3
- package/dist/chunk-ZNGEVB5M.js.map +1 -0
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +28 -4
- package/dist/components/index.d.ts +28 -4
- package/dist/components/index.js +16 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +15 -3
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +127 -3
- package/dist/core/index.d.ts +127 -3
- package/dist/core/index.js +12 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +11 -1
- package/dist/index.d.mts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -2
- package/dist/{s3.service-hnTPVTm2.d.mts → s3.service-BoOF5-ln.d.mts} +1 -0
- package/dist/{s3.service-DXkDoMf1.d.ts → s3.service-Mxo-7wQ6.d.ts} +1 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/dist/waitlist.config-kPfjImle.d.mts +26 -0
- package/dist/waitlist.config-kPfjImle.d.ts +26 -0
- package/package.json +1 -1
- package/src/components/forms/FormCheckbox.tsx +1 -1
- package/src/components/forms/FormSelect.tsx +1 -1
- package/src/components/index.ts +1 -0
- package/src/core/index.ts +3 -0
- package/src/core/registry/ModuleRegistry.ts +3 -0
- package/src/features/auth/components/forms/Register.tsx +180 -1
- package/src/features/auth/data/auth.interface.ts +1 -0
- package/src/features/auth/data/auth.ts +1 -0
- package/src/features/index.ts +1 -0
- package/src/features/waitlist/components/forms/WaitlistForm.tsx +186 -0
- package/src/features/waitlist/components/forms/WaitlistQuestionnaireRenderer.tsx +110 -0
- package/src/features/waitlist/components/forms/index.ts +2 -0
- package/src/features/waitlist/components/index.ts +3 -0
- package/src/features/waitlist/components/lists/WaitlistList.tsx +145 -0
- package/src/features/waitlist/components/lists/index.ts +1 -0
- package/src/features/waitlist/components/sections/WaitlistConfirmation.tsx +68 -0
- package/src/features/waitlist/components/sections/WaitlistHeroSection.tsx +49 -0
- package/src/features/waitlist/components/sections/WaitlistSuccessState.tsx +19 -0
- package/src/features/waitlist/components/sections/index.ts +3 -0
- package/src/features/waitlist/config/waitlist.config.ts +35 -0
- package/src/features/waitlist/data/Waitlist.ts +104 -0
- package/src/features/waitlist/data/WaitlistInterface.ts +32 -0
- package/src/features/waitlist/data/WaitlistService.ts +153 -0
- package/src/features/waitlist/data/index.ts +5 -0
- package/src/features/waitlist/data/waitlist-stats.interface.ts +9 -0
- package/src/features/waitlist/data/waitlist-stats.ts +47 -0
- package/src/features/waitlist/hooks/useWaitlistTableStructure.tsx +121 -0
- package/src/features/waitlist/index.ts +28 -0
- package/src/features/waitlist/waitlist-stats.module.ts +8 -0
- package/src/features/waitlist/waitlist.module.ts +9 -0
- package/src/index.ts +9 -0
- package/src/login/config.ts +9 -0
- package/dist/chunk-2PHWAL6Q.js.map +0 -1
- package/dist/chunk-2RBYXY6T.js.map +0 -1
- package/dist/chunk-3EZX4G2E.js.map +0 -1
- package/dist/chunk-LDH2FGJY.mjs.map +0 -1
- package/dist/chunk-TQ5GRRTM.mjs.map +0 -1
- package/dist/chunk-XLMJPA4N.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-CITC7I2Z.mjs.map → BlockNoteEditor-EKY4AHVK.mjs.map} +0 -0
|
@@ -2289,6 +2289,7 @@ var Auth = class extends AbstractApiData {
|
|
|
2289
2289
|
if (data.termsAcceptedAt !== void 0) response.data.attributes.termsAcceptedAt = data.termsAcceptedAt;
|
|
2290
2290
|
if (data.marketingConsent !== void 0) response.data.attributes.marketingConsent = data.marketingConsent;
|
|
2291
2291
|
if (data.marketingConsentAt !== void 0) response.data.attributes.marketingConsentAt = data.marketingConsentAt;
|
|
2292
|
+
if (data.inviteCode !== void 0) response.data.attributes.inviteCode = data.inviteCode;
|
|
2292
2293
|
return response;
|
|
2293
2294
|
}
|
|
2294
2295
|
};
|
|
@@ -5390,6 +5391,276 @@ var OAUTH_SCOPE_DISPLAY = {
|
|
|
5390
5391
|
var AVAILABLE_OAUTH_SCOPES = Object.values(OAUTH_SCOPE_DISPLAY);
|
|
5391
5392
|
var DEFAULT_GRANT_TYPES = ["authorization_code", "refresh_token"];
|
|
5392
5393
|
|
|
5394
|
+
// src/features/waitlist/data/Waitlist.ts
|
|
5395
|
+
var Waitlist = class extends AbstractApiData {
|
|
5396
|
+
static {
|
|
5397
|
+
__name(this, "Waitlist");
|
|
5398
|
+
}
|
|
5399
|
+
_email;
|
|
5400
|
+
_gdprConsent = false;
|
|
5401
|
+
_gdprConsentAt;
|
|
5402
|
+
_marketingConsent;
|
|
5403
|
+
_marketingConsentAt;
|
|
5404
|
+
_questionnaire;
|
|
5405
|
+
_status = "pending";
|
|
5406
|
+
_confirmedAt;
|
|
5407
|
+
_invitedAt;
|
|
5408
|
+
_registeredAt;
|
|
5409
|
+
get email() {
|
|
5410
|
+
return this._email ?? "";
|
|
5411
|
+
}
|
|
5412
|
+
get gdprConsent() {
|
|
5413
|
+
return this._gdprConsent;
|
|
5414
|
+
}
|
|
5415
|
+
get gdprConsentAt() {
|
|
5416
|
+
return this._gdprConsentAt ?? "";
|
|
5417
|
+
}
|
|
5418
|
+
get marketingConsent() {
|
|
5419
|
+
return this._marketingConsent;
|
|
5420
|
+
}
|
|
5421
|
+
get marketingConsentAt() {
|
|
5422
|
+
return this._marketingConsentAt;
|
|
5423
|
+
}
|
|
5424
|
+
get questionnaire() {
|
|
5425
|
+
return this._questionnaire;
|
|
5426
|
+
}
|
|
5427
|
+
get status() {
|
|
5428
|
+
return this._status;
|
|
5429
|
+
}
|
|
5430
|
+
get confirmedAt() {
|
|
5431
|
+
return this._confirmedAt;
|
|
5432
|
+
}
|
|
5433
|
+
get invitedAt() {
|
|
5434
|
+
return this._invitedAt;
|
|
5435
|
+
}
|
|
5436
|
+
get registeredAt() {
|
|
5437
|
+
return this._registeredAt;
|
|
5438
|
+
}
|
|
5439
|
+
rehydrate(data) {
|
|
5440
|
+
super.rehydrate(data);
|
|
5441
|
+
this._email = data.jsonApi.attributes.email;
|
|
5442
|
+
this._gdprConsent = data.jsonApi.attributes.gdprConsent;
|
|
5443
|
+
this._gdprConsentAt = data.jsonApi.attributes.gdprConsentAt;
|
|
5444
|
+
this._marketingConsent = data.jsonApi.attributes.marketingConsent;
|
|
5445
|
+
this._marketingConsentAt = data.jsonApi.attributes.marketingConsentAt;
|
|
5446
|
+
this._questionnaire = data.jsonApi.attributes.questionnaire;
|
|
5447
|
+
this._status = data.jsonApi.attributes.status;
|
|
5448
|
+
this._confirmedAt = data.jsonApi.attributes.confirmedAt;
|
|
5449
|
+
this._invitedAt = data.jsonApi.attributes.invitedAt;
|
|
5450
|
+
this._registeredAt = data.jsonApi.attributes.registeredAt;
|
|
5451
|
+
return this;
|
|
5452
|
+
}
|
|
5453
|
+
createJsonApi(data) {
|
|
5454
|
+
const response = {
|
|
5455
|
+
data: {
|
|
5456
|
+
type: Modules.Waitlist.name,
|
|
5457
|
+
id: data.id,
|
|
5458
|
+
attributes: {
|
|
5459
|
+
email: data.email,
|
|
5460
|
+
gdprConsent: data.gdprConsent,
|
|
5461
|
+
gdprConsentAt: data.gdprConsentAt
|
|
5462
|
+
},
|
|
5463
|
+
meta: {},
|
|
5464
|
+
relationships: {}
|
|
5465
|
+
},
|
|
5466
|
+
included: []
|
|
5467
|
+
};
|
|
5468
|
+
if (data.marketingConsent !== void 0) {
|
|
5469
|
+
response.data.attributes.marketingConsent = data.marketingConsent;
|
|
5470
|
+
}
|
|
5471
|
+
if (data.marketingConsentAt !== void 0) {
|
|
5472
|
+
response.data.attributes.marketingConsentAt = data.marketingConsentAt;
|
|
5473
|
+
}
|
|
5474
|
+
if (data.questionnaire !== void 0) {
|
|
5475
|
+
response.data.attributes.questionnaire = JSON.stringify(data.questionnaire);
|
|
5476
|
+
}
|
|
5477
|
+
return response;
|
|
5478
|
+
}
|
|
5479
|
+
};
|
|
5480
|
+
|
|
5481
|
+
// src/features/waitlist/data/WaitlistService.ts
|
|
5482
|
+
var WaitlistService = class extends AbstractService {
|
|
5483
|
+
static {
|
|
5484
|
+
__name(this, "WaitlistService");
|
|
5485
|
+
}
|
|
5486
|
+
/**
|
|
5487
|
+
* Submit to waitlist (public)
|
|
5488
|
+
* Uses Waitlist.createJsonApi() to transform WaitlistInput to JSON:API format
|
|
5489
|
+
*/
|
|
5490
|
+
static async submit(params) {
|
|
5491
|
+
return this.callApi({
|
|
5492
|
+
type: Modules.Waitlist,
|
|
5493
|
+
method: "POST" /* POST */,
|
|
5494
|
+
endpoint: new EndpointCreator({ endpoint: Modules.Waitlist }).generate(),
|
|
5495
|
+
input: params
|
|
5496
|
+
});
|
|
5497
|
+
}
|
|
5498
|
+
/**
|
|
5499
|
+
* Confirm email (public)
|
|
5500
|
+
*/
|
|
5501
|
+
static async confirm(code) {
|
|
5502
|
+
const endpoint = new EndpointCreator({
|
|
5503
|
+
endpoint: Modules.Waitlist,
|
|
5504
|
+
childEndpoint: "confirm",
|
|
5505
|
+
childId: code
|
|
5506
|
+
});
|
|
5507
|
+
return this.callApi({
|
|
5508
|
+
type: Modules.Waitlist,
|
|
5509
|
+
method: "GET" /* GET */,
|
|
5510
|
+
endpoint: endpoint.generate()
|
|
5511
|
+
});
|
|
5512
|
+
}
|
|
5513
|
+
/**
|
|
5514
|
+
* List all waitlist entries (admin)
|
|
5515
|
+
* Uses cursor-based pagination with NextRef/PreviousRef
|
|
5516
|
+
*/
|
|
5517
|
+
static async findMany(params) {
|
|
5518
|
+
const endpoint = new EndpointCreator({ endpoint: Modules.Waitlist });
|
|
5519
|
+
if (params?.status) endpoint.addAdditionalParam("status", params.status);
|
|
5520
|
+
if (params?.search) endpoint.addAdditionalParam("search", params.search);
|
|
5521
|
+
if (params?.fetchAll) endpoint.addAdditionalParam("fetchAll", "true");
|
|
5522
|
+
return this.callApi({
|
|
5523
|
+
type: Modules.Waitlist,
|
|
5524
|
+
method: "GET" /* GET */,
|
|
5525
|
+
endpoint: endpoint.generate(),
|
|
5526
|
+
next: params?.next,
|
|
5527
|
+
previous: params?.prev
|
|
5528
|
+
});
|
|
5529
|
+
}
|
|
5530
|
+
/**
|
|
5531
|
+
* Send invite (admin)
|
|
5532
|
+
*/
|
|
5533
|
+
static async invite(id) {
|
|
5534
|
+
const endpoint = new EndpointCreator({
|
|
5535
|
+
endpoint: Modules.Waitlist,
|
|
5536
|
+
id,
|
|
5537
|
+
childEndpoint: "invite"
|
|
5538
|
+
});
|
|
5539
|
+
return this.callApi({
|
|
5540
|
+
type: Modules.Waitlist,
|
|
5541
|
+
method: "POST" /* POST */,
|
|
5542
|
+
endpoint: endpoint.generate()
|
|
5543
|
+
});
|
|
5544
|
+
}
|
|
5545
|
+
/**
|
|
5546
|
+
* Batch invite (admin)
|
|
5547
|
+
* Non-standard batch operation - uses custom JSON:API format
|
|
5548
|
+
*/
|
|
5549
|
+
static async inviteBatch(ids) {
|
|
5550
|
+
const endpoint = new EndpointCreator({
|
|
5551
|
+
endpoint: Modules.Waitlist,
|
|
5552
|
+
childEndpoint: "invite-batch"
|
|
5553
|
+
});
|
|
5554
|
+
return this.callApi({
|
|
5555
|
+
type: Modules.Waitlist,
|
|
5556
|
+
method: "POST" /* POST */,
|
|
5557
|
+
endpoint: endpoint.generate(),
|
|
5558
|
+
input: {
|
|
5559
|
+
data: {
|
|
5560
|
+
type: "waitlist-batch-invites",
|
|
5561
|
+
attributes: { ids }
|
|
5562
|
+
}
|
|
5563
|
+
},
|
|
5564
|
+
overridesJsonApiCreation: true
|
|
5565
|
+
});
|
|
5566
|
+
}
|
|
5567
|
+
/**
|
|
5568
|
+
* Get statistics (admin)
|
|
5569
|
+
*/
|
|
5570
|
+
static async getStats() {
|
|
5571
|
+
const endpoint = new EndpointCreator({
|
|
5572
|
+
endpoint: Modules.WaitlistStats
|
|
5573
|
+
});
|
|
5574
|
+
return this.callApi({
|
|
5575
|
+
type: Modules.WaitlistStats,
|
|
5576
|
+
method: "GET" /* GET */,
|
|
5577
|
+
endpoint: endpoint.generate()
|
|
5578
|
+
});
|
|
5579
|
+
}
|
|
5580
|
+
/**
|
|
5581
|
+
* Validate invite code (public) - calls auth endpoint
|
|
5582
|
+
*/
|
|
5583
|
+
static async validateInvite(code) {
|
|
5584
|
+
console.log("[WaitlistService.validateInvite] Starting validation for code:", code);
|
|
5585
|
+
try {
|
|
5586
|
+
const endpoint = new EndpointCreator({
|
|
5587
|
+
endpoint: Modules.Waitlist,
|
|
5588
|
+
childEndpoint: "invite",
|
|
5589
|
+
childId: code
|
|
5590
|
+
});
|
|
5591
|
+
console.log("[WaitlistService.validateInvite] Calling endpoint:", endpoint.generate());
|
|
5592
|
+
const response = await this.callApiWithMeta({
|
|
5593
|
+
type: Modules.Auth,
|
|
5594
|
+
method: "GET" /* GET */,
|
|
5595
|
+
endpoint: endpoint.generate()
|
|
5596
|
+
});
|
|
5597
|
+
console.log("[WaitlistService.validateInvite] Response:", JSON.stringify(response));
|
|
5598
|
+
const attributes = response.data?._jsonApi?.attributes;
|
|
5599
|
+
console.log("[WaitlistService.validateInvite] Parsed attributes:", JSON.stringify(attributes));
|
|
5600
|
+
return {
|
|
5601
|
+
email: attributes?.email,
|
|
5602
|
+
valid: attributes?.valid ?? false
|
|
5603
|
+
};
|
|
5604
|
+
} catch (error) {
|
|
5605
|
+
console.error("[WaitlistService.validateInvite] Error:", error);
|
|
5606
|
+
return null;
|
|
5607
|
+
}
|
|
5608
|
+
}
|
|
5609
|
+
};
|
|
5610
|
+
|
|
5611
|
+
// src/features/waitlist/data/waitlist-stats.ts
|
|
5612
|
+
var WaitlistStats = class extends AbstractApiData {
|
|
5613
|
+
static {
|
|
5614
|
+
__name(this, "WaitlistStats");
|
|
5615
|
+
}
|
|
5616
|
+
_pending = 0;
|
|
5617
|
+
_confirmed = 0;
|
|
5618
|
+
_invited = 0;
|
|
5619
|
+
_registered = 0;
|
|
5620
|
+
_total = 0;
|
|
5621
|
+
get pending() {
|
|
5622
|
+
return this._pending;
|
|
5623
|
+
}
|
|
5624
|
+
get confirmed() {
|
|
5625
|
+
return this._confirmed;
|
|
5626
|
+
}
|
|
5627
|
+
get invited() {
|
|
5628
|
+
return this._invited;
|
|
5629
|
+
}
|
|
5630
|
+
get registered() {
|
|
5631
|
+
return this._registered;
|
|
5632
|
+
}
|
|
5633
|
+
get total() {
|
|
5634
|
+
return this._total;
|
|
5635
|
+
}
|
|
5636
|
+
rehydrate(data) {
|
|
5637
|
+
super.rehydrate(data);
|
|
5638
|
+
const attrs = data.jsonApi.attributes;
|
|
5639
|
+
this._pending = attrs.pending ?? 0;
|
|
5640
|
+
this._confirmed = attrs.confirmed ?? 0;
|
|
5641
|
+
this._invited = attrs.invited ?? 0;
|
|
5642
|
+
this._registered = attrs.registered ?? 0;
|
|
5643
|
+
this._total = attrs.total ?? 0;
|
|
5644
|
+
return this;
|
|
5645
|
+
}
|
|
5646
|
+
createJsonApi(_data) {
|
|
5647
|
+
throw new Error("WaitlistStats is read-only and cannot be created");
|
|
5648
|
+
}
|
|
5649
|
+
};
|
|
5650
|
+
|
|
5651
|
+
// src/features/waitlist/waitlist.module.ts
|
|
5652
|
+
var WaitlistModule = /* @__PURE__ */ __name((factory) => factory({
|
|
5653
|
+
name: "waitlists",
|
|
5654
|
+
pageUrl: "/waitlists",
|
|
5655
|
+
model: Waitlist
|
|
5656
|
+
}), "WaitlistModule");
|
|
5657
|
+
|
|
5658
|
+
// src/features/waitlist/waitlist-stats.module.ts
|
|
5659
|
+
var WaitlistStatsModule = /* @__PURE__ */ __name((factory) => factory({
|
|
5660
|
+
name: "waitlist-stats",
|
|
5661
|
+
model: WaitlistStats
|
|
5662
|
+
}), "WaitlistStatsModule");
|
|
5663
|
+
|
|
5393
5664
|
export {
|
|
5394
5665
|
RehydrationFactory,
|
|
5395
5666
|
AbstractApiData,
|
|
@@ -5517,6 +5788,11 @@ export {
|
|
|
5517
5788
|
OAuthService,
|
|
5518
5789
|
OAUTH_SCOPE_DISPLAY,
|
|
5519
5790
|
AVAILABLE_OAUTH_SCOPES,
|
|
5520
|
-
DEFAULT_GRANT_TYPES
|
|
5791
|
+
DEFAULT_GRANT_TYPES,
|
|
5792
|
+
Waitlist,
|
|
5793
|
+
WaitlistService,
|
|
5794
|
+
WaitlistStats,
|
|
5795
|
+
WaitlistModule,
|
|
5796
|
+
WaitlistStatsModule
|
|
5521
5797
|
};
|
|
5522
|
-
//# sourceMappingURL=chunk-
|
|
5798
|
+
//# sourceMappingURL=chunk-GVN7XC3U.mjs.map
|