@skastr0/pulsar-project-module-effect 0.1.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/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +246 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type TypeScriptCallbackContextNameValue, type TypeScriptNoopClassificationValue } from "@skastr0/pulsar-project-module-sdk";
|
|
2
|
+
export declare const EFFECT_PROJECT_MODULE_ID: "@skastr0/pulsar-project-module-effect";
|
|
3
|
+
export declare const EFFECT_OR_ELSE_SUCCEED_NOOP_RULE_ID: "effect.orElseSucceed.fallback-noop.v1";
|
|
4
|
+
export declare const EFFECT_CALLBACK_CONTEXT_NAME_RULE_ID: "effect.callback-context-name.v1";
|
|
5
|
+
export declare const EFFECT_SERVER_REACTIVE_CONTRACT_NOOP_RULE_ID: "effect.server-reactive.contract-noop.v1";
|
|
6
|
+
export declare const EFFECT_PROTOTYPE_FACTORY_NOOP_RULE_ID: "effect.prototype-factory.noop.v1";
|
|
7
|
+
export declare const effectProjectModule: import("@skastr0/pulsar-project-module-sdk").DefinedProjectModule;
|
|
8
|
+
export declare const isEffectOrElseSucceedNoopCandidate: (value: TypeScriptNoopClassificationValue) => boolean;
|
|
9
|
+
export declare const isEffectServerReactiveContractNoopCandidate: (value: TypeScriptNoopClassificationValue) => boolean;
|
|
10
|
+
export declare const isEffectPrototypeFactoryNoopCandidate: (value: TypeScriptNoopClassificationValue) => boolean;
|
|
11
|
+
export declare const resolveEffectCallbackContextName: (value: TypeScriptCallbackContextNameValue) => string | undefined;
|
|
12
|
+
export default effectProjectModule;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EACvC,MAAM,oCAAoC,CAAA;AAE3C,eAAO,MAAM,wBAAwB,EAAG,uCAAgD,CAAA;AACxF,eAAO,MAAM,mCAAmC,EAAG,uCAAgD,CAAA;AACnG,eAAO,MAAM,oCAAoC,EAAG,iCAA0C,CAAA;AAC9F,eAAO,MAAM,4CAA4C,EAAG,yCAAkD,CAAA;AAC9G,eAAO,MAAM,qCAAqC,EAAG,kCAA2C,CAAA;AAEhG,eAAO,MAAM,mBAAmB,mEAgG9B,CAAA;AAEF,eAAO,MAAM,kCAAkC,GAC7C,OAAO,iCAAiC,KACvC,OAIF,CAAA;AAED,eAAO,MAAM,2CAA2C,GACtD,OAAO,iCAAiC,KACvC,OAYF,CAAA;AAED,eAAO,MAAM,qCAAqC,GAChD,OAAO,iCAAiC,KACvC,OAkBF,CAAA;AA0CD,eAAO,MAAM,gCAAgC,GAC3C,OAAO,kCAAkC,KACxC,MAAM,GAAG,SAkBX,CAAA;AA+DD,eAAe,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { classifyTypeScriptNoop, defineProcessor, defineProjectModule, nameTypeScriptCallbackContext, } from "@skastr0/pulsar-project-module-sdk";
|
|
3
|
+
export const EFFECT_PROJECT_MODULE_ID = "@skastr0/pulsar-project-module-effect";
|
|
4
|
+
export const EFFECT_OR_ELSE_SUCCEED_NOOP_RULE_ID = "effect.orElseSucceed.fallback-noop.v1";
|
|
5
|
+
export const EFFECT_CALLBACK_CONTEXT_NAME_RULE_ID = "effect.callback-context-name.v1";
|
|
6
|
+
export const EFFECT_SERVER_REACTIVE_CONTRACT_NOOP_RULE_ID = "effect.server-reactive.contract-noop.v1";
|
|
7
|
+
export const EFFECT_PROTOTYPE_FACTORY_NOOP_RULE_ID = "effect.prototype-factory.noop.v1";
|
|
8
|
+
export const effectProjectModule = defineProjectModule({
|
|
9
|
+
id: EFFECT_PROJECT_MODULE_ID,
|
|
10
|
+
version: "0.1.0",
|
|
11
|
+
scope: "technology",
|
|
12
|
+
source: "package",
|
|
13
|
+
processors: [
|
|
14
|
+
defineProcessor({
|
|
15
|
+
id: "effect-or-else-succeed-noops",
|
|
16
|
+
slot: "typescript.noop-classifier",
|
|
17
|
+
role: "normalizer",
|
|
18
|
+
priority: 20,
|
|
19
|
+
fingerprint: "effect-or-else-succeed-noops-v1",
|
|
20
|
+
process: (current, _context, runtime) => Effect.sync(() => {
|
|
21
|
+
if (!isEffectOrElseSucceedNoopCandidate(current.value))
|
|
22
|
+
return current;
|
|
23
|
+
return classifyTypeScriptNoop(current, runtime, {
|
|
24
|
+
classification: "intentional_noop",
|
|
25
|
+
confidence: "high",
|
|
26
|
+
ruleId: EFFECT_OR_ELSE_SUCCEED_NOOP_RULE_ID,
|
|
27
|
+
reason: "Effect.orElseSucceed fallback callback intentionally swallows the error path",
|
|
28
|
+
evidence: [
|
|
29
|
+
{ kind: "path", value: current.value.file },
|
|
30
|
+
{ kind: "symbol", value: current.value.name },
|
|
31
|
+
],
|
|
32
|
+
metadata: { technology: "effect" },
|
|
33
|
+
});
|
|
34
|
+
}),
|
|
35
|
+
}),
|
|
36
|
+
defineProcessor({
|
|
37
|
+
id: "effect-server-reactive-contract-noops",
|
|
38
|
+
slot: "typescript.noop-classifier",
|
|
39
|
+
role: "normalizer",
|
|
40
|
+
priority: 20,
|
|
41
|
+
fingerprint: "effect-server-reactive-contract-noops-v1",
|
|
42
|
+
process: (current, _context, runtime) => Effect.sync(() => {
|
|
43
|
+
if (!isEffectServerReactiveContractNoopCandidate(current.value))
|
|
44
|
+
return current;
|
|
45
|
+
return classifyTypeScriptNoop(current, runtime, {
|
|
46
|
+
classification: "intentional_noop",
|
|
47
|
+
confidence: "high",
|
|
48
|
+
ruleId: EFFECT_SERVER_REACTIVE_CONTRACT_NOOP_RULE_ID,
|
|
49
|
+
reason: "Effect server reactive contract exposes intentionally empty server-side lifecycle hooks",
|
|
50
|
+
evidence: [
|
|
51
|
+
{ kind: "path", value: current.value.file },
|
|
52
|
+
{ kind: "symbol", value: current.value.name },
|
|
53
|
+
],
|
|
54
|
+
metadata: { technology: "effect", framework: "server-reactive" },
|
|
55
|
+
});
|
|
56
|
+
}),
|
|
57
|
+
}),
|
|
58
|
+
defineProcessor({
|
|
59
|
+
id: "effect-prototype-factory-noops",
|
|
60
|
+
slot: "typescript.noop-classifier",
|
|
61
|
+
role: "normalizer",
|
|
62
|
+
priority: 20,
|
|
63
|
+
fingerprint: "effect-prototype-factory-noops-v1",
|
|
64
|
+
process: (current, _context, runtime) => Effect.sync(() => {
|
|
65
|
+
if (!isEffectPrototypeFactoryNoopCandidate(current.value))
|
|
66
|
+
return current;
|
|
67
|
+
return classifyTypeScriptNoop(current, runtime, {
|
|
68
|
+
classification: "intentional_noop",
|
|
69
|
+
confidence: "high",
|
|
70
|
+
ruleId: EFFECT_PROTOTYPE_FACTORY_NOOP_RULE_ID,
|
|
71
|
+
reason: "Effect prototype factory declares an empty callable shell and attaches runtime behavior immediately afterward",
|
|
72
|
+
evidence: [
|
|
73
|
+
{ kind: "path", value: current.value.file },
|
|
74
|
+
{ kind: "symbol", value: current.value.name },
|
|
75
|
+
],
|
|
76
|
+
metadata: { technology: "effect", pattern: "prototype-factory" },
|
|
77
|
+
});
|
|
78
|
+
}),
|
|
79
|
+
}),
|
|
80
|
+
defineProcessor({
|
|
81
|
+
id: "effect-callback-context-names",
|
|
82
|
+
slot: "typescript.callback-context-namer",
|
|
83
|
+
role: "enricher",
|
|
84
|
+
priority: 20,
|
|
85
|
+
fingerprint: "effect-callback-context-names-v1",
|
|
86
|
+
process: (current, _context, runtime) => Effect.sync(() => {
|
|
87
|
+
const resolvedName = resolveEffectCallbackContextName(current.value);
|
|
88
|
+
if (resolvedName === undefined || resolvedName === current.value.resolvedName) {
|
|
89
|
+
return current;
|
|
90
|
+
}
|
|
91
|
+
return nameTypeScriptCallbackContext(current, runtime, {
|
|
92
|
+
resolvedName,
|
|
93
|
+
confidence: "high",
|
|
94
|
+
ruleId: EFFECT_CALLBACK_CONTEXT_NAME_RULE_ID,
|
|
95
|
+
reason: "Effect callback context provides a more precise operation name",
|
|
96
|
+
evidence: effectCallbackContextEvidence(current.value),
|
|
97
|
+
metadata: { technology: "effect" },
|
|
98
|
+
});
|
|
99
|
+
}),
|
|
100
|
+
}),
|
|
101
|
+
],
|
|
102
|
+
});
|
|
103
|
+
export const isEffectOrElseSucceedNoopCandidate = (value) => {
|
|
104
|
+
if (value.classification === "intentional_noop")
|
|
105
|
+
return false;
|
|
106
|
+
if (!isEmptyFunctionText(value.functionText))
|
|
107
|
+
return false;
|
|
108
|
+
return /(?:^|[.\s])orElseSucceed\s*\(/.test(value.parentText ?? "");
|
|
109
|
+
};
|
|
110
|
+
export const isEffectServerReactiveContractNoopCandidate = (value) => {
|
|
111
|
+
if (value.classification === "intentional_noop")
|
|
112
|
+
return false;
|
|
113
|
+
if (!isEmptyNoopValue(value))
|
|
114
|
+
return false;
|
|
115
|
+
const file = value.file.replace(/\\/g, "/");
|
|
116
|
+
if (/(?:^|\/)server\/reactive\.tsx?$/.test(file)) {
|
|
117
|
+
return SERVER_REACTIVE_EMPTY_CONTRACT_NAMES.has(value.name);
|
|
118
|
+
}
|
|
119
|
+
if (/(?:^|\/)server\/rendering\.tsx?$/.test(file)) {
|
|
120
|
+
return SERVER_RENDERING_EMPTY_CONTRACT_NAMES.has(value.name);
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
};
|
|
124
|
+
export const isEffectPrototypeFactoryNoopCandidate = (value) => {
|
|
125
|
+
if (value.classification === "intentional_noop")
|
|
126
|
+
return false;
|
|
127
|
+
if (!isEmptyNoopValue(value))
|
|
128
|
+
return false;
|
|
129
|
+
if (isAnonymousObjectAssignPrototypeShell(value))
|
|
130
|
+
return true;
|
|
131
|
+
const name = escapedRegExp(value.name);
|
|
132
|
+
const parentText = value.parentText ?? "";
|
|
133
|
+
if (name === undefined || parentText.length === 0)
|
|
134
|
+
return false;
|
|
135
|
+
return [
|
|
136
|
+
new RegExp(`Object\\.setPrototypeOf\\s*\\(\\s*${name}\\s*,`),
|
|
137
|
+
new RegExp(`${name}\\.prototype\\s*=`),
|
|
138
|
+
new RegExp(`Object\\.defineProperty\\s*\\(\\s*${name}\\s*,`),
|
|
139
|
+
new RegExp(`Object\\.assign\\s*\\(\\s*${name}\\s*,`),
|
|
140
|
+
new RegExp(`${name}\\s*\\[[^\\]]+\\]\\s*=`),
|
|
141
|
+
new RegExp(`${name}\\.[A-Za-z_$][\\w$]*\\s*=`),
|
|
142
|
+
].some((pattern) => pattern.test(parentText));
|
|
143
|
+
};
|
|
144
|
+
const isAnonymousObjectAssignPrototypeShell = (value) => {
|
|
145
|
+
const text = value.parentText ?? "";
|
|
146
|
+
if (!/Object\.assign\s*\(\s*function(?:\s+[A-Za-z_$][\w$]*)?\s*\([^)]*\)\s*\{\s*\}\s*,/.test(text)) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return /,\s*(?:Proto|Prototype|[A-Za-z_$][\w$]*Proto|[A-Za-z_$][\w$]*Prototype)\b/.test(text) ||
|
|
150
|
+
/,\s*\{[^}]*[A-Za-z_$][\w$]*\s*[:=]/s.test(text);
|
|
151
|
+
};
|
|
152
|
+
const isEmptyFunctionText = (text) => {
|
|
153
|
+
if (text === undefined)
|
|
154
|
+
return false;
|
|
155
|
+
return /^(?:async\s+)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)\s*=>\s*\{\s*\}$/.test(text.trim()) ||
|
|
156
|
+
/^function(?:\s+[A-Za-z_$][\w$]*)?\s*\([^)]*\)\s*\{\s*\}$/.test(text.trim());
|
|
157
|
+
};
|
|
158
|
+
const isEmptyNoopValue = (value) => /^\{\s*\}$/.test((value.bodyText ?? "").trim()) || isEmptyFunctionText(value.functionText);
|
|
159
|
+
const escapedRegExp = (value) => {
|
|
160
|
+
if (!/^[A-Za-z_$][\w$]*$/.test(value))
|
|
161
|
+
return undefined;
|
|
162
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
163
|
+
};
|
|
164
|
+
const SERVER_REACTIVE_EMPTY_CONTRACT_NAMES = new Set([
|
|
165
|
+
"cancelCallback",
|
|
166
|
+
"createEffect",
|
|
167
|
+
"enableExternalSource",
|
|
168
|
+
"fn",
|
|
169
|
+
"onMount",
|
|
170
|
+
]);
|
|
171
|
+
const SERVER_RENDERING_EMPTY_CONTRACT_NAMES = new Set([
|
|
172
|
+
"enableHydration",
|
|
173
|
+
"enableScheduling",
|
|
174
|
+
"f callback",
|
|
175
|
+
"resetErrorBoundaries",
|
|
176
|
+
]);
|
|
177
|
+
export const resolveEffectCallbackContextName = (value) => {
|
|
178
|
+
const metadata = value.metadata ?? {};
|
|
179
|
+
const label = nonEmptyString(metadata.effectFnLabel);
|
|
180
|
+
if (label !== undefined)
|
|
181
|
+
return label;
|
|
182
|
+
const calleeText = nonEmptyString(metadata.calleeText);
|
|
183
|
+
if (calleeText === undefined || !isEffectCallee(calleeText))
|
|
184
|
+
return undefined;
|
|
185
|
+
const ownerName = nonEmptyString(metadata.ownerName);
|
|
186
|
+
const propertyName = nonEmptyString(metadata.propertyName);
|
|
187
|
+
const argumentRole = effectArgumentRole(calleeText, numericMetadata(metadata.argumentIndex));
|
|
188
|
+
const tail = [normalizedEffectCallee(calleeText), propertyName ?? argumentRole]
|
|
189
|
+
.filter((part) => part !== undefined)
|
|
190
|
+
.join("/");
|
|
191
|
+
if (tail.length === 0)
|
|
192
|
+
return undefined;
|
|
193
|
+
return ownerName === undefined ? tail : `${ownerName}/${tail}`;
|
|
194
|
+
};
|
|
195
|
+
const effectCallbackContextEvidence = (value) => {
|
|
196
|
+
const evidence = [
|
|
197
|
+
{ kind: "path", value: value.file },
|
|
198
|
+
{ kind: "line", value: String(value.line) },
|
|
199
|
+
];
|
|
200
|
+
const calleeText = nonEmptyString(value.metadata?.calleeText);
|
|
201
|
+
if (calleeText !== undefined) {
|
|
202
|
+
evidence.push({ kind: "symbol", value: calleeText });
|
|
203
|
+
}
|
|
204
|
+
const label = nonEmptyString(value.metadata?.effectFnLabel);
|
|
205
|
+
if (label !== undefined) {
|
|
206
|
+
evidence.push({ kind: "symbol", value: label });
|
|
207
|
+
}
|
|
208
|
+
return evidence;
|
|
209
|
+
};
|
|
210
|
+
const EFFECT_CALLEE_NAMES = new Set([
|
|
211
|
+
"Effect.acquireUseRelease",
|
|
212
|
+
"Effect.all",
|
|
213
|
+
"Effect.async",
|
|
214
|
+
"Effect.fn",
|
|
215
|
+
"Effect.forEach",
|
|
216
|
+
"Effect.gen",
|
|
217
|
+
"Effect.promise",
|
|
218
|
+
"Effect.sync",
|
|
219
|
+
"Effect.try",
|
|
220
|
+
"Effect.tryPromise",
|
|
221
|
+
"Layer.effect",
|
|
222
|
+
"Layer.scoped",
|
|
223
|
+
"Layer.sync",
|
|
224
|
+
]);
|
|
225
|
+
const isEffectCallee = (calleeText) => EFFECT_CALLEE_NAMES.has(normalizedEffectCallee(calleeText));
|
|
226
|
+
const normalizedEffectCallee = (calleeText) => calleeText.replace(/\s+/g, "");
|
|
227
|
+
const effectArgumentRole = (calleeText, argumentIndex) => {
|
|
228
|
+
const callee = normalizedEffectCallee(calleeText);
|
|
229
|
+
if (callee === "Effect.forEach" && argumentIndex === 1)
|
|
230
|
+
return "each";
|
|
231
|
+
if (callee === "Effect.acquireUseRelease") {
|
|
232
|
+
if (argumentIndex === 0)
|
|
233
|
+
return "acquire";
|
|
234
|
+
if (argumentIndex === 1)
|
|
235
|
+
return "use";
|
|
236
|
+
if (argumentIndex === 2)
|
|
237
|
+
return "release";
|
|
238
|
+
}
|
|
239
|
+
if (callee === "Effect.async" || callee === "Effect.promise")
|
|
240
|
+
return "register";
|
|
241
|
+
return undefined;
|
|
242
|
+
};
|
|
243
|
+
const nonEmptyString = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
244
|
+
const numericMetadata = (value) => typeof value === "number" && Number.isInteger(value) ? value : undefined;
|
|
245
|
+
export default effectProjectModule;
|
|
246
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,GAG9B,MAAM,oCAAoC,CAAA;AAE3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAgD,CAAA;AACxF,MAAM,CAAC,MAAM,mCAAmC,GAAG,uCAAgD,CAAA;AACnG,MAAM,CAAC,MAAM,oCAAoC,GAAG,iCAA0C,CAAA;AAC9F,MAAM,CAAC,MAAM,4CAA4C,GAAG,yCAAkD,CAAA;AAC9G,MAAM,CAAC,MAAM,qCAAqC,GAAG,kCAA2C,CAAA;AAEhG,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;IACrD,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE;QACV,eAAe,CAAC;YACd,EAAE,EAAE,8BAA8B;YAClC,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,kCAAkC,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAA;gBACtE,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE;oBAC9C,cAAc,EAAE,kBAAkB;oBAClC,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,mCAAmC;oBAC3C,MAAM,EAAE,8EAA8E;oBACtF,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;wBAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;qBAC9C;oBACD,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;iBACnC,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAC;QACF,eAAe,CAAC;YACd,EAAE,EAAE,uCAAuC;YAC3C,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,0CAA0C;YACvD,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,2CAA2C,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAA;gBAC/E,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE;oBAC9C,cAAc,EAAE,kBAAkB;oBAClC,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,4CAA4C;oBACpD,MAAM,EAAE,yFAAyF;oBACjG,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;wBAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;qBAC9C;oBACD,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE;iBACjE,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAC;QACF,eAAe,CAAC;YACd,EAAE,EAAE,gCAAgC;YACpC,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,qCAAqC,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAA;gBACzE,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE;oBAC9C,cAAc,EAAE,kBAAkB;oBAClC,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,qCAAqC;oBAC7C,MAAM,EAAE,+GAA+G;oBACvH,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;wBAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;qBAC9C;oBACD,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;iBACjE,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAC;QACF,eAAe,CAAC;YACd,EAAE,EAAE,+BAA+B;YACnC,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,kCAAkC;YAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CACtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,MAAM,YAAY,GAAG,gCAAgC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACpE,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC9E,OAAO,OAAO,CAAA;gBAChB,CAAC;gBAED,OAAO,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE;oBACrD,YAAY;oBACZ,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,oCAAoC;oBAC5C,MAAM,EAAE,gEAAgE;oBACxE,QAAQ,EAAE,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtD,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;iBACnC,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAC;KACH;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,KAAwC,EAC/B,EAAE;IACX,IAAI,KAAK,CAAC,cAAc,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAA;IAC7D,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1D,OAAO,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2CAA2C,GAAG,CACzD,KAAwC,EAC/B,EAAE;IACX,IAAI,KAAK,CAAC,cAAc,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAA;IAC7D,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,oCAAoC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,qCAAqC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qCAAqC,GAAG,CACnD,KAAwC,EAC/B,EAAE;IACX,IAAI,KAAK,CAAC,cAAc,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAA;IAC7D,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE1C,IAAI,qCAAqC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7D,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;IACzC,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE/D,OAAO;QACL,IAAI,MAAM,CAAC,qCAAqC,IAAI,OAAO,CAAC;QAC5D,IAAI,MAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC;QACtC,IAAI,MAAM,CAAC,qCAAqC,IAAI,OAAO,CAAC;QAC5D,IAAI,MAAM,CAAC,6BAA6B,IAAI,OAAO,CAAC;QACpD,IAAI,MAAM,CAAC,GAAG,IAAI,wBAAwB,CAAC;QAC3C,IAAI,MAAM,CAAC,GAAG,IAAI,2BAA2B,CAAC;KAC/C,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,qCAAqC,GAAG,CAC5C,KAAwC,EAC/B,EAAE;IACX,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;IACnC,IAAI,CAAC,kFAAkF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnG,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3F,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,IAAwB,EAAW,EAAE;IAChE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,OAAO,8DAA8D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrF,0DAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAwC,EAAW,EAAE,CAC7E,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAE5F,MAAM,aAAa,GAAG,CAAC,KAAa,EAAsB,EAAE;IAC1D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAC;IACnD,gBAAgB;IAChB,cAAc;IACd,sBAAsB;IACtB,IAAI;IACJ,SAAS;CACV,CAAC,CAAA;AAEF,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAC;IACpD,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,sBAAsB;CACvB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,KAAyC,EACrB,EAAE;IACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;IACrC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAErC,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACtD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAE7E,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IAE5F,MAAM,IAAI,GAAG,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,YAAY,IAAI,YAAY,CAAC;SAC5E,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SACpD,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACvC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAA;AAChE,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,CACpC,KAAyC,EACzC,EAAE;IACF,MAAM,QAAQ,GAAG;QACf,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;QACnC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KAC5C,CAAA;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC7D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,0BAA0B;IAC1B,YAAY;IACZ,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,YAAY;CACb,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAW,EAAE,CACrD,mBAAmB,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAA;AAE7D,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAU,EAAE,CAC5D,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAEhC,MAAM,kBAAkB,GAAG,CACzB,UAAkB,EAClB,aAAiC,EACb,EAAE;IACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,MAAM,KAAK,gBAAgB,IAAI,aAAa,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IACrE,IAAI,MAAM,KAAK,0BAA0B,EAAE,CAAC;QAC1C,IAAI,aAAa,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACzC,IAAI,aAAa,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACrC,IAAI,aAAa,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;IAC3C,CAAC;IACD,IAAI,MAAM,KAAK,cAAc,IAAI,MAAM,KAAK,gBAAgB;QAAE,OAAO,UAAU,CAAA;IAC/E,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAsB,EAAE,CAC5D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAEjF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAsB,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAE1E,eAAe,mBAAmB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@skastr0/pulsar-project-module-effect",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Effect technology project module for Pulsar calibration",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/skastr0/pulsar.git",
|
|
10
|
+
"directory": "packages/project-module-effect"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/skastr0/pulsar#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/skastr0/pulsar/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"pulsar",
|
|
18
|
+
"effect",
|
|
19
|
+
"calibration",
|
|
20
|
+
"project-module"
|
|
21
|
+
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"!dist/__tests__",
|
|
36
|
+
"!dist/__tests__/**"
|
|
37
|
+
],
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc -b",
|
|
40
|
+
"typecheck": "tsc -b",
|
|
41
|
+
"test": "bun test ./src",
|
|
42
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@skastr0/pulsar-project-module-sdk": "0.1.0",
|
|
46
|
+
"effect": "^3.0.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"typescript": "^5.8.0"
|
|
50
|
+
}
|
|
51
|
+
}
|