@communecter/cocolight-api-client 1.0.155 → 1.0.157
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/1035.cocolight-api-client.browser.js +1 -1
- package/dist/1035.cocolight-api-client.cjs +1 -1
- package/dist/1483.cocolight-api-client.browser.js +1 -1
- package/dist/1483.cocolight-api-client.cjs +1 -1
- package/dist/1491.cocolight-api-client.browser.js +1 -1
- package/dist/1491.cocolight-api-client.cjs +1 -1
- package/dist/1494.cocolight-api-client.browser.js +1 -1
- package/dist/1494.cocolight-api-client.cjs +1 -1
- package/dist/1641.cocolight-api-client.browser.js +1 -1
- package/dist/1641.cocolight-api-client.cjs +1 -1
- package/dist/1678.cocolight-api-client.browser.js +1 -1
- package/dist/1678.cocolight-api-client.cjs +1 -1
- package/dist/2041.cocolight-api-client.browser.js +1 -1
- package/dist/2041.cocolight-api-client.cjs +1 -1
- package/dist/2302.cocolight-api-client.browser.js +1 -1
- package/dist/2302.cocolight-api-client.cjs +1 -1
- package/dist/2313.cocolight-api-client.browser.js +1 -1
- package/dist/2313.cocolight-api-client.cjs +1 -1
- package/dist/2379.cocolight-api-client.browser.js +1 -1
- package/dist/2379.cocolight-api-client.cjs +1 -1
- package/dist/2439.cocolight-api-client.browser.js +1 -1
- package/dist/2439.cocolight-api-client.cjs +1 -1
- package/dist/2594.cocolight-api-client.browser.js +1 -1
- package/dist/2594.cocolight-api-client.cjs +1 -1
- package/dist/2766.cocolight-api-client.browser.js +1 -1
- package/dist/2766.cocolight-api-client.cjs +1 -1
- package/dist/2812.cocolight-api-client.browser.js +1 -1
- package/dist/2812.cocolight-api-client.cjs +1 -1
- package/dist/2918.cocolight-api-client.browser.js +1 -1
- package/dist/2918.cocolight-api-client.cjs +1 -1
- package/dist/3028.cocolight-api-client.browser.js +1 -1
- package/dist/3028.cocolight-api-client.cjs +1 -1
- package/dist/3330.cocolight-api-client.browser.js +1 -1
- package/dist/3330.cocolight-api-client.cjs +1 -1
- package/dist/3371.cocolight-api-client.browser.js +1 -1
- package/dist/3371.cocolight-api-client.cjs +1 -1
- package/dist/3401.cocolight-api-client.browser.js +1 -1
- package/dist/3401.cocolight-api-client.cjs +1 -1
- package/dist/3516.cocolight-api-client.browser.js +1 -1
- package/dist/3516.cocolight-api-client.cjs +1 -1
- package/dist/3593.cocolight-api-client.browser.js +1 -1
- package/dist/3593.cocolight-api-client.cjs +1 -1
- package/dist/3764.cocolight-api-client.browser.js +1 -1
- package/dist/3764.cocolight-api-client.cjs +1 -1
- package/dist/3873.cocolight-api-client.browser.js +1 -1
- package/dist/3873.cocolight-api-client.cjs +1 -1
- package/dist/3911.cocolight-api-client.browser.js +1 -1
- package/dist/3911.cocolight-api-client.cjs +1 -1
- package/dist/4031.cocolight-api-client.browser.js +1 -1
- package/dist/4031.cocolight-api-client.cjs +1 -1
- package/dist/4152.cocolight-api-client.browser.js +1 -1
- package/dist/4152.cocolight-api-client.cjs +1 -1
- package/dist/4203.cocolight-api-client.browser.js +1 -1
- package/dist/4203.cocolight-api-client.cjs +1 -1
- package/dist/424.cocolight-api-client.browser.js +1 -1
- package/dist/424.cocolight-api-client.cjs +1 -1
- package/dist/435.cocolight-api-client.browser.js +1 -1
- package/dist/435.cocolight-api-client.cjs +1 -1
- package/dist/4402.cocolight-api-client.browser.js +1 -1
- package/dist/4402.cocolight-api-client.cjs +1 -1
- package/dist/4425.cocolight-api-client.browser.js +1 -1
- package/dist/4425.cocolight-api-client.cjs +1 -1
- package/dist/4472.cocolight-api-client.browser.js +1 -1
- package/dist/4472.cocolight-api-client.cjs +1 -1
- package/dist/4914.cocolight-api-client.browser.js +1 -1
- package/dist/4914.cocolight-api-client.cjs +1 -1
- package/dist/4959.cocolight-api-client.browser.js +1 -1
- package/dist/4959.cocolight-api-client.cjs +1 -1
- package/dist/5100.cocolight-api-client.browser.js +1 -1
- package/dist/5100.cocolight-api-client.cjs +1 -1
- package/dist/5111.cocolight-api-client.browser.js +1 -1
- package/dist/5111.cocolight-api-client.cjs +1 -1
- package/dist/5286.cocolight-api-client.browser.js +1 -1
- package/dist/5286.cocolight-api-client.cjs +1 -1
- package/dist/5380.cocolight-api-client.browser.js +1 -1
- package/dist/5380.cocolight-api-client.cjs +1 -1
- package/dist/5383.cocolight-api-client.browser.js +1 -1
- package/dist/5383.cocolight-api-client.cjs +1 -1
- package/dist/5480.cocolight-api-client.browser.js +1 -1
- package/dist/5480.cocolight-api-client.cjs +1 -1
- package/dist/5541.cocolight-api-client.browser.js +1 -1
- package/dist/5541.cocolight-api-client.cjs +1 -1
- package/dist/5839.cocolight-api-client.browser.js +1 -1
- package/dist/5839.cocolight-api-client.cjs +1 -1
- package/dist/5862.cocolight-api-client.browser.js +1 -1
- package/dist/5862.cocolight-api-client.cjs +1 -1
- package/dist/5869.cocolight-api-client.browser.js +1 -1
- package/dist/5869.cocolight-api-client.cjs +1 -1
- package/dist/588.cocolight-api-client.browser.js +1 -1
- package/dist/588.cocolight-api-client.cjs +1 -1
- package/dist/601.cocolight-api-client.browser.js +1 -1
- package/dist/601.cocolight-api-client.cjs +1 -1
- package/dist/6012.cocolight-api-client.browser.js +1 -1
- package/dist/6012.cocolight-api-client.cjs +1 -1
- package/dist/6200.cocolight-api-client.browser.js +1 -1
- package/dist/6200.cocolight-api-client.cjs +1 -1
- package/dist/6369.cocolight-api-client.browser.js +1 -1
- package/dist/6369.cocolight-api-client.cjs +1 -1
- package/dist/7009.cocolight-api-client.browser.js +1 -1
- package/dist/7009.cocolight-api-client.cjs +1 -1
- package/dist/725.cocolight-api-client.browser.js +1 -1
- package/dist/725.cocolight-api-client.cjs +1 -1
- package/dist/7320.cocolight-api-client.browser.js +1 -1
- package/dist/7339.cocolight-api-client.browser.js +1 -1
- package/dist/7339.cocolight-api-client.cjs +1 -1
- package/dist/7398.cocolight-api-client.browser.js +1 -1
- package/dist/7398.cocolight-api-client.cjs +1 -1
- package/dist/7888.cocolight-api-client.browser.js +1 -1
- package/dist/7888.cocolight-api-client.cjs +1 -1
- package/dist/7975.cocolight-api-client.browser.js +1 -1
- package/dist/7975.cocolight-api-client.cjs +1 -1
- package/dist/809.cocolight-api-client.browser.js +1 -1
- package/dist/809.cocolight-api-client.cjs +1 -1
- package/dist/8300.cocolight-api-client.browser.js +1 -1
- package/dist/8300.cocolight-api-client.cjs +1 -1
- package/dist/8317.cocolight-api-client.browser.js +1 -1
- package/dist/8317.cocolight-api-client.cjs +1 -1
- package/dist/8525.cocolight-api-client.browser.js +1 -1
- package/dist/8525.cocolight-api-client.cjs +1 -1
- package/dist/8894.cocolight-api-client.browser.js +1 -1
- package/dist/8894.cocolight-api-client.cjs +1 -1
- package/dist/9301.cocolight-api-client.browser.js +1 -1
- package/dist/9301.cocolight-api-client.cjs +1 -1
- package/dist/9438.cocolight-api-client.browser.js +1 -1
- package/dist/9438.cocolight-api-client.cjs +1 -1
- package/dist/9478.cocolight-api-client.browser.js +1 -1
- package/dist/9478.cocolight-api-client.cjs +1 -1
- package/dist/9568.cocolight-api-client.browser.js +1 -1
- package/dist/9568.cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.browser.js +6 -6
- package/dist/cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.vite.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
- package/package.json +7 -17
- package/types/Api.d.ts +1 -0
- package/types/ApiClient.d.ts +10 -1
- package/types/api/Answer.d.ts +27 -9
- package/types/api/BaseEntity.d.ts +77 -0
- package/types/api/EndpointApi.d.ts +51 -3
- package/types/api/EndpointApi.types.d.ts +112 -1
- package/types/api/User.d.ts +20 -0
- package/types/costum/types.d.ts +0 -2
- package/types/endpoints.module.d.ts +3039 -1009
- package/types/index.d.ts +1 -0
- package/types/utils/OfflineClientManager.d.ts +8 -0
- package/types/utils/adminImportExport.d.ts +29 -0
- package/dist/1035.cocolight-api-client.mjs.js +0 -1
- package/dist/1483.cocolight-api-client.mjs.js +0 -1
- package/dist/1491.cocolight-api-client.mjs.js +0 -1
- package/dist/1494.cocolight-api-client.mjs.js +0 -1
- package/dist/1641.cocolight-api-client.mjs.js +0 -1
- package/dist/1678.cocolight-api-client.mjs.js +0 -1
- package/dist/2041.cocolight-api-client.mjs.js +0 -1
- package/dist/2302.cocolight-api-client.mjs.js +0 -1
- package/dist/2313.cocolight-api-client.mjs.js +0 -1
- package/dist/2379.cocolight-api-client.mjs.js +0 -1
- package/dist/2439.cocolight-api-client.mjs.js +0 -1
- package/dist/2594.cocolight-api-client.mjs.js +0 -1
- package/dist/2766.cocolight-api-client.mjs.js +0 -1
- package/dist/2812.cocolight-api-client.mjs.js +0 -1
- package/dist/2918.cocolight-api-client.mjs.js +0 -1
- package/dist/3028.cocolight-api-client.mjs.js +0 -1
- package/dist/3330.cocolight-api-client.mjs.js +0 -1
- package/dist/3371.cocolight-api-client.mjs.js +0 -1
- package/dist/3401.cocolight-api-client.mjs.js +0 -1
- package/dist/3516.cocolight-api-client.mjs.js +0 -1
- package/dist/3593.cocolight-api-client.mjs.js +0 -1
- package/dist/3764.cocolight-api-client.mjs.js +0 -1
- package/dist/3873.cocolight-api-client.mjs.js +0 -1
- package/dist/3911.cocolight-api-client.mjs.js +0 -1
- package/dist/4031.cocolight-api-client.mjs.js +0 -1
- package/dist/4152.cocolight-api-client.mjs.js +0 -1
- package/dist/4203.cocolight-api-client.mjs.js +0 -1
- package/dist/424.cocolight-api-client.mjs.js +0 -1
- package/dist/435.cocolight-api-client.mjs.js +0 -1
- package/dist/4402.cocolight-api-client.mjs.js +0 -1
- package/dist/4425.cocolight-api-client.mjs.js +0 -1
- package/dist/4472.cocolight-api-client.mjs.js +0 -1
- package/dist/4914.cocolight-api-client.mjs.js +0 -1
- package/dist/4959.cocolight-api-client.mjs.js +0 -1
- package/dist/5100.cocolight-api-client.mjs.js +0 -1
- package/dist/5111.cocolight-api-client.mjs.js +0 -1
- package/dist/5286.cocolight-api-client.mjs.js +0 -1
- package/dist/5380.cocolight-api-client.mjs.js +0 -1
- package/dist/5383.cocolight-api-client.mjs.js +0 -1
- package/dist/5480.cocolight-api-client.mjs.js +0 -1
- package/dist/5541.cocolight-api-client.mjs.js +0 -1
- package/dist/5839.cocolight-api-client.mjs.js +0 -1
- package/dist/5862.cocolight-api-client.mjs.js +0 -1
- package/dist/5869.cocolight-api-client.mjs.js +0 -1
- package/dist/588.cocolight-api-client.mjs.js +0 -1
- package/dist/601.cocolight-api-client.mjs.js +0 -1
- package/dist/6012.cocolight-api-client.mjs.js +0 -1
- package/dist/6200.cocolight-api-client.mjs.js +0 -1
- package/dist/6369.cocolight-api-client.mjs.js +0 -1
- package/dist/7009.cocolight-api-client.mjs.js +0 -1
- package/dist/725.cocolight-api-client.mjs.js +0 -1
- package/dist/7339.cocolight-api-client.mjs.js +0 -1
- package/dist/7398.cocolight-api-client.mjs.js +0 -1
- package/dist/7888.cocolight-api-client.mjs.js +0 -1
- package/dist/7975.cocolight-api-client.mjs.js +0 -1
- package/dist/809.cocolight-api-client.mjs.js +0 -1
- package/dist/8300.cocolight-api-client.mjs.js +0 -1
- package/dist/8317.cocolight-api-client.mjs.js +0 -1
- package/dist/8525.cocolight-api-client.mjs.js +0 -1
- package/dist/8894.cocolight-api-client.mjs.js +0 -1
- package/dist/9301.cocolight-api-client.mjs.js +0 -1
- package/dist/9438.cocolight-api-client.mjs.js +0 -1
- package/dist/9478.cocolight-api-client.mjs.js +0 -1
- package/dist/9568.cocolight-api-client.mjs.js +0 -1
- package/dist/cocolight-api-client.mjs.js +0 -1
- package/src/Api.ts +0 -348
- package/src/ApiClient.ts +0 -1994
- package/src/EJSONType.ts +0 -103
- package/src/api/Action.ts +0 -665
- package/src/api/Answer.ts +0 -1392
- package/src/api/Badge.ts +0 -143
- package/src/api/BaseEntity.ts +0 -6384
- package/src/api/Classified.ts +0 -175
- package/src/api/Comment.ts +0 -280
- package/src/api/EndpointApi.ts +0 -2270
- package/src/api/EndpointApi.types.ts +0 -6566
- package/src/api/EntityRegistry.ts +0 -324
- package/src/api/Event.ts +0 -360
- package/src/api/Form.ts +0 -282
- package/src/api/News.ts +0 -547
- package/src/api/Notifications.ts +0 -196
- package/src/api/Organization.ts +0 -771
- package/src/api/Poi.ts +0 -242
- package/src/api/Project.ts +0 -545
- package/src/api/User.ts +0 -1889
- package/src/api/UserApi.ts +0 -192
- package/src/api/serverDataType/Action.ts +0 -177
- package/src/api/serverDataType/Answer.ts +0 -106
- package/src/api/serverDataType/Classified.ts +0 -152
- package/src/api/serverDataType/Comment.ts +0 -88
- package/src/api/serverDataType/Country.ts +0 -1
- package/src/api/serverDataType/Event.ts +0 -112
- package/src/api/serverDataType/Form.ts +0 -157
- package/src/api/serverDataType/News.ts +0 -138
- package/src/api/serverDataType/Notification.ts +0 -81
- package/src/api/serverDataType/Organization.ts +0 -111
- package/src/api/serverDataType/Poi.ts +0 -75
- package/src/api/serverDataType/Project.ts +0 -115
- package/src/api/serverDataType/User.ts +0 -112
- package/src/api/serverDataType/Zone.ts +0 -33
- package/src/api/serverDataType/common.ts +0 -84
- package/src/costum/normalize.ts +0 -7
- package/src/costum/registry.ts +0 -138
- package/src/costum/runtime-map.ts +0 -221
- package/src/costum/runtime.ts +0 -274
- package/src/costum/schemas/CercleTravailleursSociauxLiberauxLaPlumeSociale.ts +0 -19
- package/src/costum/schemas/FabEn.ts +0 -19
- package/src/costum/schemas/LivingLabInnovationSocialeBraspanon.ts +0 -19
- package/src/costum/schemas/alfph.ts +0 -27
- package/src/costum/schemas/campagne.ts +0 -19
- package/src/costum/schemas/chtitube.ts +0 -19
- package/src/costum/schemas/circuitCourt.ts +0 -19
- package/src/costum/schemas/cmcasHauteBretagne.ts +0 -19
- package/src/costum/schemas/coFinancementTierslieux.ts +0 -27
- package/src/costum/schemas/coeurNumerique.ts +0 -19
- package/src/costum/schemas/communLundi.ts +0 -19
- package/src/costum/schemas/cressReunion.ts +0 -35
- package/src/costum/schemas/cressReunionNetwork.ts +0 -35
- package/src/costum/schemas/ctenat.ts +0 -43
- package/src/costum/schemas/cyberReunion.ts +0 -19
- package/src/costum/schemas/ekisphere.ts +0 -35
- package/src/costum/schemas/equipementsSportifs974.ts +0 -19
- package/src/costum/schemas/federationDesCae.ts +0 -19
- package/src/costum/schemas/formationGenerique.ts +0 -35
- package/src/costum/schemas/franceTierslieux.ts +0 -19
- package/src/costum/schemas/hinaura.ts +0 -27
- package/src/costum/schemas/hubmayotte.ts +0 -19
- package/src/costum/schemas/hubnouvellecaledonie.ts +0 -19
- package/src/costum/schemas/hubpolynesiefrancaise.ts +0 -19
- package/src/costum/schemas/hubreunion.ts +0 -19
- package/src/costum/schemas/hubterritoires.ts +0 -19
- package/src/costum/schemas/hubwallisetfutuna.ts +0 -19
- package/src/costum/schemas/hva.ts +0 -27
- package/src/costum/schemas/ibv2.ts +0 -19
- package/src/costum/schemas/institutBleu.ts +0 -19
- package/src/costum/schemas/journalInsoumisChambery.ts +0 -27
- package/src/costum/schemas/kpacite.ts +0 -19
- package/src/costum/schemas/laCompagnieDesTierslieux.ts +0 -43
- package/src/costum/schemas/laMaisonDesFaiseurs.ts +0 -19
- package/src/costum/schemas/laReunionPourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/laSemaineDesTierslieux.ts +0 -19
- package/src/costum/schemas/labEnCommuns.ts +0 -19
- package/src/costum/schemas/lakou.ts +0 -27
- package/src/costum/schemas/lesCommunsDesTierslieux.ts +0 -19
- package/src/costum/schemas/mayottePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/meir.ts +0 -27
- package/src/costum/schemas/navigatorDesTierslieux.ts +0 -19
- package/src/costum/schemas/notragora.ts +0 -27
- package/src/costum/schemas/nouvellecaledoniePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/openAtlas.ts +0 -19
- package/src/costum/schemas/polynesieFrancaisePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/prdr.ts +0 -19
- package/src/costum/schemas/reseauTierslieux.ts +0 -19
- package/src/costum/schemas/rfflabs.ts +0 -19
- package/src/costum/schemas/ries.ts +0 -19
- package/src/costum/schemas/siteDuPactePourLaTransition.ts +0 -27
- package/src/costum/schemas/sportSanteBienetre.ts +0 -43
- package/src/costum/schemas/suppa.ts +0 -19
- package/src/costum/schemas/terramies.ts +0 -19
- package/src/costum/schemas/testeTplFormation.ts +0 -35
- package/src/costum/schemas/tierslieuxbelgique.ts +0 -19
- package/src/costum/schemas/tierslieuxorg1.ts +0 -35
- package/src/costum/schemas/transiter.ts +0 -35
- package/src/costum/schemas/vhelioPeiTour2025.ts +0 -19
- package/src/costum/schemas/wallisetfutunaPourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/symbol.ts +0 -26
- package/src/costum/types.ts +0 -895
- package/src/endpoints.module.ts +0 -4253
- package/src/error.ts +0 -86
- package/src/forms/entityForm.ts +0 -142
- package/src/index.ts +0 -161
- package/src/mixin/UserMixin.ts +0 -4
- package/src/types/api-responses.ts +0 -217
- package/src/types/entities.ts +0 -58
- package/src/types/error-guards.ts +0 -230
- package/src/types/index.ts +0 -41
- package/src/types/payloads.ts +0 -21
- package/src/types/transforms.ts +0 -119
- package/src/utils/FileOfflineStorageStrategy.node.ts +0 -50
- package/src/utils/FileStorageStrategy.node.ts +0 -63
- package/src/utils/MultiServerFileStorageStrategy.node.ts +0 -67
- package/src/utils/MultiServerTokenStorageStrategy.ts +0 -139
- package/src/utils/OfflineClientManager.ts +0 -216
- package/src/utils/OfflineQueueStorageStrategy.ts +0 -47
- package/src/utils/TokenStorage.ts +0 -77
- package/src/utils/compat.ts +0 -12
- package/src/utils/createDefaultMultiServerTokenStorageStrategy.ts +0 -35
- package/src/utils/createDefaultOfflineStrategy.ts +0 -34
- package/src/utils/createDefaultTokenStorageStrategy.ts +0 -33
- package/src/utils/reactive.ts +0 -243
- package/src/utils/stream-utils.node.ts +0 -12
package/src/utils/reactive.ts
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
// reactive.ts - Système maison combinant Signal + Proxy pour réactivité profonde et fine
|
|
2
|
-
|
|
3
|
-
const effectStack: (() => void)[] = [];
|
|
4
|
-
const computedCache = new WeakMap();
|
|
5
|
-
const signalRegistry = new WeakMap();
|
|
6
|
-
let batchDepth = 0;
|
|
7
|
-
const pendingEffects = new Set<() => void>();
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Crée une fonction réactive qui se relance automatiquement
|
|
11
|
-
* lorsqu'une valeur réactive qu'elle utilise change.
|
|
12
|
-
*/
|
|
13
|
-
export function effect(fn: () => void): () => void {
|
|
14
|
-
const wrapper = () => {
|
|
15
|
-
try {
|
|
16
|
-
effectStack.push(wrapper);
|
|
17
|
-
fn();
|
|
18
|
-
} finally {
|
|
19
|
-
effectStack.pop();
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
wrapper();
|
|
23
|
-
return wrapper;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Exécute une fonction dans un lot, en retardant l'exécution
|
|
28
|
-
* des effets jusqu'à ce que le lot soit terminé.
|
|
29
|
-
*/
|
|
30
|
-
export function batch(fn: () => void): void {
|
|
31
|
-
batchDepth++;
|
|
32
|
-
try {
|
|
33
|
-
fn();
|
|
34
|
-
} finally {
|
|
35
|
-
batchDepth--;
|
|
36
|
-
if (batchDepth === 0) {
|
|
37
|
-
const effects = Array.from(pendingEffects);
|
|
38
|
-
pendingEffects.clear();
|
|
39
|
-
for (const effect of effects) (effect as () => void)();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Crée un signal observable pour une valeur primitive ou complexe.
|
|
46
|
-
*/
|
|
47
|
-
function createSignal(initialValue?: any): any {
|
|
48
|
-
let value = initialValue;
|
|
49
|
-
const subscribers = new Set();
|
|
50
|
-
|
|
51
|
-
const signal = {
|
|
52
|
-
get value() {
|
|
53
|
-
const currentEffect = effectStack[effectStack.length - 1];
|
|
54
|
-
if (currentEffect) subscribers.add(currentEffect);
|
|
55
|
-
return value;
|
|
56
|
-
},
|
|
57
|
-
set value(newValue) {
|
|
58
|
-
if (value !== newValue) {
|
|
59
|
-
value = newValue;
|
|
60
|
-
if (batchDepth > 0) {
|
|
61
|
-
subscribers.forEach((fn) => pendingEffects.add(fn as () => void));
|
|
62
|
-
} else {
|
|
63
|
-
subscribers.forEach((fn) => (fn as () => void)());
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
subscribe(fn: any) {
|
|
68
|
-
subscribers.add(fn);
|
|
69
|
-
return () => subscribers.delete(fn);
|
|
70
|
-
},
|
|
71
|
-
__isSignal: true
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
return signal;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* vérifie si un objet est un signal.
|
|
79
|
-
* @param {*} obj
|
|
80
|
-
* @returns {boolean}
|
|
81
|
-
*/
|
|
82
|
-
export function isSignal(obj: any) {
|
|
83
|
-
return obj && obj.__isSignal === true;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function toRaw(obj: any) {
|
|
87
|
-
return isSignal(obj) ? obj.value : obj;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function _wrapArray(arr: any[], path: string[]): any {
|
|
91
|
-
const proxy = new Proxy(arr, {
|
|
92
|
-
get(target, prop, receiver) {
|
|
93
|
-
if (typeof prop === "string" && !isNaN(+prop)) {
|
|
94
|
-
const val = target[+prop];
|
|
95
|
-
return isReactive(val) ? val : _wrapReactive(val, [...path, prop] as any);
|
|
96
|
-
}
|
|
97
|
-
return Reflect.get(target, prop, receiver);
|
|
98
|
-
},
|
|
99
|
-
set(target, prop, value) {
|
|
100
|
-
if (typeof prop === "string" && !isNaN(+prop)) {
|
|
101
|
-
const val = _wrapReactive(value, [...path, prop] as any);
|
|
102
|
-
target[+prop] = val;
|
|
103
|
-
}
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return proxy;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function _wrapReactive(obj: any, path: any = []) {
|
|
111
|
-
if (typeof obj !== "object" || obj === null) return obj;
|
|
112
|
-
if (Array.isArray(obj)) return _wrapArray(obj, path);
|
|
113
|
-
if (obj.__isReactive) return obj;
|
|
114
|
-
|
|
115
|
-
// Ne pas proxifier les types d'upload (Buffer, File, Blob, Stream)
|
|
116
|
-
// car cela corromprait leurs données internes
|
|
117
|
-
// Buffer (Node.js)
|
|
118
|
-
if (typeof Buffer !== "undefined" && Buffer.isBuffer(obj)) return obj;
|
|
119
|
-
// File (Browser)
|
|
120
|
-
if (typeof File !== "undefined" && obj instanceof File) return obj;
|
|
121
|
-
// Blob (Browser)
|
|
122
|
-
if (typeof Blob !== "undefined" && obj instanceof Blob) return obj;
|
|
123
|
-
// ReadableStream (Node.js)
|
|
124
|
-
if (obj && typeof obj.pipe === "function" && typeof obj.on === "function") return obj;
|
|
125
|
-
// Date objects
|
|
126
|
-
if (obj instanceof Date) return obj;
|
|
127
|
-
|
|
128
|
-
// ✨ AJOUT : Ne pas proxifier les instances d'entités BaseEntity
|
|
129
|
-
if (obj.__entityTag) return obj;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const signalMap = new Map();
|
|
133
|
-
const proxy = new Proxy(obj, {
|
|
134
|
-
|
|
135
|
-
get(target, prop) {
|
|
136
|
-
if (prop === "__raw") return target;
|
|
137
|
-
if (prop === "__isReactive") return true;
|
|
138
|
-
|
|
139
|
-
if (!signalMap.has(prop)) {
|
|
140
|
-
const val = target[prop];
|
|
141
|
-
const reactiveVal = _wrapReactive(val, [...path, String(prop)] as any);
|
|
142
|
-
const signal = createSignal(reactiveVal);
|
|
143
|
-
signalMap.set(prop, signal);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const signal = signalMap.get(prop);
|
|
147
|
-
return signal.value;
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
set(target, prop, value) {
|
|
151
|
-
const val = _wrapReactive(value, [...path, String(prop)] as any);
|
|
152
|
-
if (!signalMap.has(prop)) {
|
|
153
|
-
const signal = createSignal(val);
|
|
154
|
-
signalMap.set(prop, signal);
|
|
155
|
-
}
|
|
156
|
-
signalMap.get(prop)!.value = val;
|
|
157
|
-
target[prop] = toRaw(val);
|
|
158
|
-
return true;
|
|
159
|
-
},
|
|
160
|
-
|
|
161
|
-
deleteProperty(target, prop) {
|
|
162
|
-
signalMap.delete(prop);
|
|
163
|
-
return Reflect.deleteProperty(target, prop);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
signalRegistry.set(proxy, signalMap);
|
|
168
|
-
return proxy;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Rend un objet profondément réactif.
|
|
173
|
-
* @param {object} obj
|
|
174
|
-
* @returns {object}
|
|
175
|
-
*/
|
|
176
|
-
export function reactive(obj: any) {
|
|
177
|
-
if (typeof obj !== "object" || obj === null) return obj;
|
|
178
|
-
if (obj.__isReactive) return obj;
|
|
179
|
-
return _wrapReactive(obj);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Teste si un objet est réactif.
|
|
184
|
-
* @param {*} obj
|
|
185
|
-
* @returns {boolean}
|
|
186
|
-
*/
|
|
187
|
-
export function isReactive(obj: any) {
|
|
188
|
-
return obj !== null && typeof obj === "object" && obj.__isReactive === true;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Crée une valeur dérivée automatiquement recalculée.
|
|
193
|
-
* @param {Function} fn
|
|
194
|
-
* @returns {{value: *}}
|
|
195
|
-
*/
|
|
196
|
-
export function computed(fn: any) {
|
|
197
|
-
if (computedCache.has(fn)) return computedCache.get(fn);
|
|
198
|
-
|
|
199
|
-
const result = createSignal();
|
|
200
|
-
effect(() => result.value = fn());
|
|
201
|
-
computedCache.set(fn, result);
|
|
202
|
-
return result;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Observe les changements de valeur retournée par un getter.
|
|
207
|
-
* @param {Function} getter
|
|
208
|
-
* @param {Function} callback
|
|
209
|
-
*/
|
|
210
|
-
export function watch(getter: any, callback: any) {
|
|
211
|
-
let oldValue: any;
|
|
212
|
-
effect(() => {
|
|
213
|
-
const newValue = getter();
|
|
214
|
-
if (newValue !== oldValue) {
|
|
215
|
-
callback(newValue, oldValue);
|
|
216
|
-
oldValue = newValue;
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Récupère les signaux internes d'un objet réactif.
|
|
223
|
-
* @param {object} obj
|
|
224
|
-
* @returns {Map|null}
|
|
225
|
-
*/
|
|
226
|
-
export function getSignals(obj: any) {
|
|
227
|
-
if (!isReactive(obj)) return null;
|
|
228
|
-
return signalRegistry.get(obj);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Permet à React de s'abonner à une propriété réactive (champ simple).
|
|
233
|
-
* @param {object} obj - Objet réactif
|
|
234
|
-
* @param {string} key - Nom de la propriété à écouter
|
|
235
|
-
* @param {(newValue: any, oldValue: any) => void} callback
|
|
236
|
-
* @returns {() => void} fonction de nettoyage
|
|
237
|
-
*/
|
|
238
|
-
export function subscribeTo(obj: any, key: any, callback: any) {
|
|
239
|
-
const signals = getSignals(obj);
|
|
240
|
-
if (!signals || !signals.has(key)) return () => {};
|
|
241
|
-
const signal = signals.get(key);
|
|
242
|
-
return signal?.subscribe?.(() => callback(signal.value)) ?? (() => {});
|
|
243
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// utils/stream-utils.node.ts
|
|
2
|
-
import type { Readable, PassThrough } from "stream";
|
|
3
|
-
|
|
4
|
-
export async function bufferToReadable(buffer: Buffer): Promise<Readable> {
|
|
5
|
-
const { Readable } = await import("stream");
|
|
6
|
-
return Readable.from(buffer);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export async function createPassThrough(): Promise<PassThrough> {
|
|
10
|
-
const { PassThrough } = await import("stream");
|
|
11
|
-
return new PassThrough();
|
|
12
|
-
}
|