@pgflow/dsl 0.0.0-array-map-steps-fixed-types-38a198ae-20251011160533 → 0.0.0-condition-acd3e0e8-20260109190810
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/README.md +57 -50
- package/dist/CHANGELOG.md +55 -1
- package/dist/README.md +57 -50
- package/dist/compile-flow.js +16 -0
- package/dist/dsl.d.ts +297 -43
- package/dist/dsl.d.ts.map +1 -1
- package/dist/dsl.js +27 -22
- package/dist/example-flow.d.ts +8 -8
- package/dist/example-flow.d.ts.map +1 -1
- package/dist/example-flow.js +16 -7
- package/dist/flow-shape.d.ts +99 -0
- package/dist/flow-shape.d.ts.map +1 -0
- package/dist/flow-shape.js +148 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/package.json +7 -1
- package/dist/platforms/supabase.d.ts +4 -3
- package/dist/platforms/supabase.d.ts.map +1 -1
- package/package.json +7 -1
package/dist/example-flow.js
CHANGED
|
@@ -5,14 +5,23 @@ export const AnalyzeWebsite = new Flow({
|
|
|
5
5
|
baseDelay: 5,
|
|
6
6
|
timeout: 10,
|
|
7
7
|
})
|
|
8
|
-
.step({ slug: 'website' },
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
.step({ slug: '
|
|
8
|
+
.step({ slug: 'website' },
|
|
9
|
+
// Root step: receives flowInput directly
|
|
10
|
+
async (flowInput) => await scrapeWebsite(flowInput.url))
|
|
11
|
+
.step({ slug: 'sentiment', dependsOn: ['website'], timeout: 30, maxAttempts: 5 },
|
|
12
|
+
// Dependent step: receives deps, flowInput via context
|
|
13
|
+
async (deps) => await analyzeSentiment(deps.website.content))
|
|
14
|
+
.step({ slug: 'summary', dependsOn: ['website'] },
|
|
15
|
+
// Dependent step: receives deps
|
|
16
|
+
async (deps) => await summarizeWithAI(deps.website.content))
|
|
17
|
+
.step({ slug: 'saveToDb', dependsOn: ['sentiment', 'summary'] },
|
|
18
|
+
// Dependent step needing flowInput: access via await ctx.flowInput
|
|
19
|
+
async (deps, ctx) => {
|
|
20
|
+
const flowInput = await ctx.flowInput;
|
|
12
21
|
const results = await saveToDb({
|
|
13
|
-
websiteUrl:
|
|
14
|
-
sentiment:
|
|
15
|
-
summary:
|
|
22
|
+
websiteUrl: flowInput.url,
|
|
23
|
+
sentiment: deps.sentiment.score,
|
|
24
|
+
summary: deps.summary.aiSummary,
|
|
16
25
|
});
|
|
17
26
|
return results.status;
|
|
18
27
|
});
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { AnyFlow, WhenUnmetMode, RetriesExhaustedMode, Json } from './dsl.js';
|
|
2
|
+
/**
|
|
3
|
+
* Input pattern wrapper - explicit representation to avoid null vs JSON-null ambiguity.
|
|
4
|
+
* - { defined: false } means no pattern (don't check)
|
|
5
|
+
* - { defined: true, value: Json } means pattern is set (check against value)
|
|
6
|
+
*/
|
|
7
|
+
export type InputPattern = {
|
|
8
|
+
defined: false;
|
|
9
|
+
} | {
|
|
10
|
+
defined: true;
|
|
11
|
+
value: Json;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Step-level options that can be included in the shape for creation,
|
|
15
|
+
* but are NOT compared during shape comparison (runtime tunable).
|
|
16
|
+
*/
|
|
17
|
+
export interface StepShapeOptions {
|
|
18
|
+
maxAttempts?: number;
|
|
19
|
+
baseDelay?: number;
|
|
20
|
+
timeout?: number;
|
|
21
|
+
startDelay?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Flow-level options that can be included in the shape for creation,
|
|
25
|
+
* but are NOT compared during shape comparison (runtime tunable).
|
|
26
|
+
*/
|
|
27
|
+
export interface FlowShapeOptions {
|
|
28
|
+
maxAttempts?: number;
|
|
29
|
+
baseDelay?: number;
|
|
30
|
+
timeout?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* StepShape captures the structural definition of a step for drift detection.
|
|
34
|
+
*
|
|
35
|
+
* The `options` field is included for flow creation but NOT compared during
|
|
36
|
+
* shape comparison. Options can be tuned at runtime via SQL without
|
|
37
|
+
* requiring recompilation. See: /deploy/tune-flow-config/
|
|
38
|
+
*
|
|
39
|
+
* `whenUnmet`, `whenFailed`, and pattern fields ARE structural - they affect
|
|
40
|
+
* DAG execution semantics and must match between worker and database.
|
|
41
|
+
*/
|
|
42
|
+
export interface StepShape {
|
|
43
|
+
slug: string;
|
|
44
|
+
stepType: 'single' | 'map';
|
|
45
|
+
dependencies: string[];
|
|
46
|
+
whenUnmet: WhenUnmetMode;
|
|
47
|
+
whenFailed: RetriesExhaustedMode;
|
|
48
|
+
requiredInputPattern: InputPattern;
|
|
49
|
+
forbiddenInputPattern: InputPattern;
|
|
50
|
+
options?: StepShapeOptions;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* FlowShape captures the structural definition of a flow for drift detection.
|
|
54
|
+
*
|
|
55
|
+
* This represents the DAG topology - which steps exist, their types, and how
|
|
56
|
+
* they connect via dependencies.
|
|
57
|
+
*
|
|
58
|
+
* The `options` field is included for flow creation but NOT compared during
|
|
59
|
+
* shape comparison. Options can be tuned at runtime via SQL without recompilation.
|
|
60
|
+
*
|
|
61
|
+
* Note: flowSlug is intentionally excluded - it's an identifier, not structural
|
|
62
|
+
* data. The slug comes from context (URL, registry lookup, function parameter).
|
|
63
|
+
*/
|
|
64
|
+
export interface FlowShape {
|
|
65
|
+
steps: StepShape[];
|
|
66
|
+
options?: FlowShapeOptions;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Result of comparing two FlowShapes.
|
|
70
|
+
*/
|
|
71
|
+
export interface ShapeComparisonResult {
|
|
72
|
+
match: boolean;
|
|
73
|
+
differences: string[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Extracts a FlowShape from a Flow object.
|
|
77
|
+
* The shape captures structural information needed for drift detection,
|
|
78
|
+
* plus options for flow creation.
|
|
79
|
+
*
|
|
80
|
+
* Options are included in the shape for proper flow/step creation, but
|
|
81
|
+
* are NOT compared during shape comparison (they're runtime tunable).
|
|
82
|
+
*
|
|
83
|
+
* @param flow - The Flow object to extract shape from
|
|
84
|
+
* @returns A FlowShape representing the flow's structure and options
|
|
85
|
+
*/
|
|
86
|
+
export declare function extractFlowShape(flow: AnyFlow): FlowShape;
|
|
87
|
+
/**
|
|
88
|
+
* Compares two FlowShapes and returns detailed differences.
|
|
89
|
+
* Used by ControlPlane for Layer 1 comparison (Worker vs ControlPlane).
|
|
90
|
+
*
|
|
91
|
+
* Only compares structural aspects (steps, types, dependencies).
|
|
92
|
+
* Runtime options are not compared as they can be tuned independently.
|
|
93
|
+
*
|
|
94
|
+
* @param a - First FlowShape (typically from worker)
|
|
95
|
+
* @param b - Second FlowShape (typically from ControlPlane or database)
|
|
96
|
+
* @returns ShapeComparisonResult with match status and list of differences
|
|
97
|
+
*/
|
|
98
|
+
export declare function compareFlowShapes(a: FlowShape, b: FlowShape): ShapeComparisonResult;
|
|
99
|
+
//# sourceMappingURL=flow-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-shape.d.ts","sourceRoot":"","sources":["../src/flow-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAM9E;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnC;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,oBAAoB,CAAC;IACjC,oBAAoB,EAAE,YAAY,CAAC;IACnC,qBAAqB,EAAE,YAAY,CAAC;IACpC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAyBD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAoDzD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACX,qBAAqB,CAiCvB"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// ========================
|
|
2
|
+
// SHAPE EXTRACTION
|
|
3
|
+
// ========================
|
|
4
|
+
/**
|
|
5
|
+
* Checks if an options object has any defined (non-undefined) values.
|
|
6
|
+
*/
|
|
7
|
+
function hasDefinedOptions(options) {
|
|
8
|
+
return Object.values(options).some((v) => v !== undefined);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Filters out undefined values from an options object.
|
|
12
|
+
* Returns only the keys with defined values.
|
|
13
|
+
*/
|
|
14
|
+
function filterDefinedOptions(options) {
|
|
15
|
+
return Object.fromEntries(Object.entries(options).filter(([_, v]) => v !== undefined));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extracts a FlowShape from a Flow object.
|
|
19
|
+
* The shape captures structural information needed for drift detection,
|
|
20
|
+
* plus options for flow creation.
|
|
21
|
+
*
|
|
22
|
+
* Options are included in the shape for proper flow/step creation, but
|
|
23
|
+
* are NOT compared during shape comparison (they're runtime tunable).
|
|
24
|
+
*
|
|
25
|
+
* @param flow - The Flow object to extract shape from
|
|
26
|
+
* @returns A FlowShape representing the flow's structure and options
|
|
27
|
+
*/
|
|
28
|
+
export function extractFlowShape(flow) {
|
|
29
|
+
const steps = flow.stepOrder.map((stepSlug) => {
|
|
30
|
+
const stepDef = flow.getStepDefinition(stepSlug);
|
|
31
|
+
const stepShape = {
|
|
32
|
+
slug: stepSlug,
|
|
33
|
+
stepType: stepDef.stepType ?? 'single',
|
|
34
|
+
// Sort dependencies alphabetically for deterministic comparison
|
|
35
|
+
dependencies: [...stepDef.dependencies].sort(),
|
|
36
|
+
// Condition modes are structural - they affect DAG execution semantics
|
|
37
|
+
whenUnmet: stepDef.options.whenUnmet ?? 'skip',
|
|
38
|
+
whenFailed: stepDef.options.retriesExhausted ?? 'fail',
|
|
39
|
+
// Input patterns use explicit wrapper to avoid null vs JSON-null ambiguity
|
|
40
|
+
requiredInputPattern: stepDef.options.if !== undefined
|
|
41
|
+
? { defined: true, value: stepDef.options.if }
|
|
42
|
+
: { defined: false },
|
|
43
|
+
forbiddenInputPattern: stepDef.options.ifNot !== undefined
|
|
44
|
+
? { defined: true, value: stepDef.options.ifNot }
|
|
45
|
+
: { defined: false },
|
|
46
|
+
};
|
|
47
|
+
// Only include options if at least one is defined
|
|
48
|
+
const stepOptions = {
|
|
49
|
+
maxAttempts: stepDef.options.maxAttempts,
|
|
50
|
+
baseDelay: stepDef.options.baseDelay,
|
|
51
|
+
timeout: stepDef.options.timeout,
|
|
52
|
+
startDelay: stepDef.options.startDelay,
|
|
53
|
+
};
|
|
54
|
+
if (hasDefinedOptions(stepOptions)) {
|
|
55
|
+
stepShape.options = filterDefinedOptions(stepOptions);
|
|
56
|
+
}
|
|
57
|
+
return stepShape;
|
|
58
|
+
});
|
|
59
|
+
const shape = { steps };
|
|
60
|
+
// Only include flow options if at least one is defined
|
|
61
|
+
const flowOptions = {
|
|
62
|
+
maxAttempts: flow.options.maxAttempts,
|
|
63
|
+
baseDelay: flow.options.baseDelay,
|
|
64
|
+
timeout: flow.options.timeout,
|
|
65
|
+
};
|
|
66
|
+
if (hasDefinedOptions(flowOptions)) {
|
|
67
|
+
shape.options = filterDefinedOptions(flowOptions);
|
|
68
|
+
}
|
|
69
|
+
return shape;
|
|
70
|
+
}
|
|
71
|
+
// ========================
|
|
72
|
+
// SHAPE COMPARISON
|
|
73
|
+
// ========================
|
|
74
|
+
/**
|
|
75
|
+
* Compares two FlowShapes and returns detailed differences.
|
|
76
|
+
* Used by ControlPlane for Layer 1 comparison (Worker vs ControlPlane).
|
|
77
|
+
*
|
|
78
|
+
* Only compares structural aspects (steps, types, dependencies).
|
|
79
|
+
* Runtime options are not compared as they can be tuned independently.
|
|
80
|
+
*
|
|
81
|
+
* @param a - First FlowShape (typically from worker)
|
|
82
|
+
* @param b - Second FlowShape (typically from ControlPlane or database)
|
|
83
|
+
* @returns ShapeComparisonResult with match status and list of differences
|
|
84
|
+
*/
|
|
85
|
+
export function compareFlowShapes(a, b) {
|
|
86
|
+
const differences = [];
|
|
87
|
+
// Compare step counts
|
|
88
|
+
if (a.steps.length !== b.steps.length) {
|
|
89
|
+
differences.push(`Step count differs: ${a.steps.length} vs ${b.steps.length}`);
|
|
90
|
+
}
|
|
91
|
+
// Compare steps by index (order matters)
|
|
92
|
+
const maxLen = Math.max(a.steps.length, b.steps.length);
|
|
93
|
+
for (let i = 0; i < maxLen; i++) {
|
|
94
|
+
const aStep = a.steps[i];
|
|
95
|
+
const bStep = b.steps[i];
|
|
96
|
+
if (!aStep) {
|
|
97
|
+
differences.push(`Step at index ${i}: missing in first shape (second has '${bStep.slug}')`);
|
|
98
|
+
}
|
|
99
|
+
else if (!bStep) {
|
|
100
|
+
differences.push(`Step at index ${i}: missing in second shape (first has '${aStep.slug}')`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
compareSteps(aStep, bStep, i, differences);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
match: differences.length === 0,
|
|
108
|
+
differences,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Compares two steps at the same index and adds differences to the list.
|
|
113
|
+
*/
|
|
114
|
+
function compareSteps(a, b, index, differences) {
|
|
115
|
+
// Compare slug (order matters, so slugs must match at same index)
|
|
116
|
+
if (a.slug !== b.slug) {
|
|
117
|
+
differences.push(`Step at index ${index}: slug differs '${a.slug}' vs '${b.slug}'`);
|
|
118
|
+
}
|
|
119
|
+
// Compare step type
|
|
120
|
+
if (a.stepType !== b.stepType) {
|
|
121
|
+
differences.push(`Step at index ${index}: type differs '${a.stepType}' vs '${b.stepType}'`);
|
|
122
|
+
}
|
|
123
|
+
// Compare dependencies (already sorted)
|
|
124
|
+
const aDeps = a.dependencies.join(',');
|
|
125
|
+
const bDeps = b.dependencies.join(',');
|
|
126
|
+
if (aDeps !== bDeps) {
|
|
127
|
+
differences.push(`Step at index ${index}: dependencies differ [${a.dependencies.join(', ')}] vs [${b.dependencies.join(', ')}]`);
|
|
128
|
+
}
|
|
129
|
+
// Compare condition modes (structural - affects DAG execution semantics)
|
|
130
|
+
if (a.whenUnmet !== b.whenUnmet) {
|
|
131
|
+
differences.push(`Step at index ${index}: whenUnmet differs '${a.whenUnmet}' vs '${b.whenUnmet}'`);
|
|
132
|
+
}
|
|
133
|
+
if (a.whenFailed !== b.whenFailed) {
|
|
134
|
+
differences.push(`Step at index ${index}: whenFailed differs '${a.whenFailed}' vs '${b.whenFailed}'`);
|
|
135
|
+
}
|
|
136
|
+
// Compare pattern fields (structural - affects DAG execution semantics)
|
|
137
|
+
// Uses wrapper objects: { defined: false } or { defined: true, value: Json }
|
|
138
|
+
const aReqPattern = JSON.stringify(a.requiredInputPattern);
|
|
139
|
+
const bReqPattern = JSON.stringify(b.requiredInputPattern);
|
|
140
|
+
if (aReqPattern !== bReqPattern) {
|
|
141
|
+
differences.push(`Step at index ${index}: requiredInputPattern differs '${aReqPattern}' vs '${bReqPattern}'`);
|
|
142
|
+
}
|
|
143
|
+
const aForbPattern = JSON.stringify(a.forbiddenInputPattern);
|
|
144
|
+
const bForbPattern = JSON.stringify(b.forbiddenInputPattern);
|
|
145
|
+
if (aForbPattern !== bForbPattern) {
|
|
146
|
+
differences.push(`Step at index ${index}: forbiddenInputPattern differs '${aForbPattern}' vs '${bForbPattern}'`);
|
|
147
|
+
}
|
|
148
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/package.json
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pgflow/dsl",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-condition-acd3e0e8-20260109190810",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/pgflow-dev/pgflow",
|
|
8
|
+
"directory": "pkgs/dsl"
|
|
9
|
+
},
|
|
4
10
|
"type": "module",
|
|
5
11
|
"main": "./dist/index.js",
|
|
6
12
|
"module": "./dist/index.js",
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type postgres from 'postgres';
|
|
2
2
|
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
3
3
|
import { Flow as CoreFlow, type AnyInput, type AnySteps, type AnyDeps, EmptySteps, EmptyDeps, type Env } from '../index.js';
|
|
4
4
|
export interface SupabaseResources extends Record<string, unknown> {
|
|
5
|
-
sql: Sql;
|
|
5
|
+
sql: postgres.Sql;
|
|
6
6
|
/**
|
|
7
7
|
* Supabase client with service role key for full database access
|
|
8
8
|
*/
|
|
9
9
|
supabase: SupabaseClient;
|
|
10
10
|
}
|
|
11
11
|
export interface SupabaseEnv extends Env {
|
|
12
|
-
|
|
12
|
+
SUPABASE_DB_URL: string;
|
|
13
13
|
SUPABASE_URL: string;
|
|
14
14
|
SUPABASE_ANON_KEY: string;
|
|
15
15
|
SUPABASE_SERVICE_ROLE_KEY: string;
|
|
16
16
|
SB_EXECUTION_ID: string;
|
|
17
|
+
EDGE_WORKER_DB_URL?: string;
|
|
17
18
|
EDGE_WORKER_LOG_LEVEL?: string;
|
|
18
19
|
}
|
|
19
20
|
export type SupabasePlatformContext = SupabaseResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/platforms/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/platforms/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,IAAI,IAAI,QAAQ,EAChB,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAC1C,UAAU,EAAE,SAAS,EAAE,KAAK,GAAG,EAChC,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,GAAG,EAAc,QAAQ,CAAC,GAAG,CAAC;IAC9B;;OAEG;IACH,QAAQ,EAAS,cAAc,CAAC;CACjC;AAGD,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,eAAe,EAAY,MAAM,CAAC;IAClC,YAAY,EAAe,MAAM,CAAC;IAClC,iBAAiB,EAAU,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAY,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAQ,MAAM,CAAC;IAClC,qBAAqB,CAAC,EAAK,MAAM,CAAC;CACnC;AAMD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAGxD,qBAAa,IAAI,CACf,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAE7B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAC9C,CAAC,SAAS,QAAQ,GAAG,UAAU,EAC/B,CAAC,SAAS,OAAO,GAAK,SAAS,EAC/B,IAAI,SAAS,GAAG,GAAG,WAAW,CAC9B,SAAQ,QAAQ,CAChB,CAAC,EACD,uBAAuB,GAAG,SAAS,EACnC,CAAC,EAAE,CAAC,EACJ,IAAI,CACL;CAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pgflow/dsl",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-condition-acd3e0e8-20260109190810",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/pgflow-dev/pgflow",
|
|
8
|
+
"directory": "pkgs/dsl"
|
|
9
|
+
},
|
|
4
10
|
"type": "module",
|
|
5
11
|
"main": "./dist/index.js",
|
|
6
12
|
"module": "./dist/index.js",
|