@atlasauth/pca-policy-bridge 0.0.0-stage → 0.2.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cedar.js","sourceRoot":"","sources":["../src/cedar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @atlasauth/pca-policy-bridge
3
+ *
4
+ * Import external authorization policy into PCA so existing enterprise policy engines drive
5
+ * proof-carrying authority. Each translator compiles a policy source into PCA envelope
6
+ * predicates/caveats (the exact shapes from `@atlasauth/pca`) plus a report of what was and was
7
+ * not translated. Everything unmodeled fails closed (default deny).
8
+ *
9
+ * - cedarToPca(policyText) Cedar permit/forbid policies
10
+ * - regoToPca(moduleText) OPA/Rego allow-rule subset
11
+ * - openfgaToPca(model, tuples) OpenFGA/Zanzibar ReBAC model + relationship tuples
12
+ *
13
+ * The emitted `predicates` plug straight into `Envelope.predicates`; `denies` (Cedar forbid) is
14
+ * applied via `decide` (deny-overrides-permit) built on the core `evaluatePredicates`.
15
+ */
16
+ export { cedarToPca } from './cedar';
17
+ export { regoToPca } from './rego';
18
+ export { openfgaToPca } from './openfga';
19
+ export { decide } from './types';
20
+ export type { BridgeResult, TranslationReport, PolicySource } from './types';
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decide = exports.openfgaToPca = exports.regoToPca = exports.cedarToPca = void 0;
4
+ /**
5
+ * @atlasauth/pca-policy-bridge
6
+ *
7
+ * Import external authorization policy into PCA so existing enterprise policy engines drive
8
+ * proof-carrying authority. Each translator compiles a policy source into PCA envelope
9
+ * predicates/caveats (the exact shapes from `@atlasauth/pca`) plus a report of what was and was
10
+ * not translated. Everything unmodeled fails closed (default deny).
11
+ *
12
+ * - cedarToPca(policyText) Cedar permit/forbid policies
13
+ * - regoToPca(moduleText) OPA/Rego allow-rule subset
14
+ * - openfgaToPca(model, tuples) OpenFGA/Zanzibar ReBAC model + relationship tuples
15
+ *
16
+ * The emitted `predicates` plug straight into `Envelope.predicates`; `denies` (Cedar forbid) is
17
+ * applied via `decide` (deny-overrides-permit) built on the core `evaluatePredicates`.
18
+ */
19
+ var cedar_1 = require("./cedar");
20
+ Object.defineProperty(exports, "cedarToPca", { enumerable: true, get: function () { return cedar_1.cedarToPca; } });
21
+ var rego_1 = require("./rego");
22
+ Object.defineProperty(exports, "regoToPca", { enumerable: true, get: function () { return rego_1.regoToPca; } });
23
+ var openfga_1 = require("./openfga");
24
+ Object.defineProperty(exports, "openfgaToPca", { enumerable: true, get: function () { return openfga_1.openfgaToPca; } });
25
+ var types_1 = require("./types");
26
+ Object.defineProperty(exports, "decide", { enumerable: true, get: function () { return types_1.decide; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AACnB,+BAAmC;AAA1B,iGAAA,SAAS,OAAA;AAClB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,iCAAiC;AAAxB,+FAAA,MAAM,OAAA"}
@@ -0,0 +1,33 @@
1
+ import type { BridgeResult } from './types';
2
+ /**
3
+ * OpenFGA / Zanzibar ReBAC model + tuples → PCA predicate translator.
4
+ *
5
+ * The relation check "user U has relation R on object O" becomes a PCA permit:
6
+ * { verb: R, resource: O, where: [{ field: 'subject.id', op: 'eq', value: U }] }
7
+ * so admitting verb R on resource O requires the acting subject to be exactly U. The translator
8
+ * evaluates the model against the supplied tuples and emits one permit per (user, object, relation)
9
+ * triple that HOLDS. Default deny: triples that don't hold emit nothing.
10
+ *
11
+ * SUPPORTED REWRITES (documented boundary)
12
+ * ----------------------------------------
13
+ * - `this` ({}) direct relationship tuples
14
+ * - `computedUserset` "this relation is also granted by relation R on the same object"
15
+ * - `union` OR of children (nested unions flattened)
16
+ * - `intersection` AND of children (→ an `all_of` of the per-child checks)
17
+ * - `difference` base AND NOT subtract (→ a `not` on the subtract check)
18
+ * - `tupleToUserset` userset rewrite "from" a related object (e.g. "viewer from parent"):
19
+ * follows the `tupleset` relation to each related object and checks the
20
+ * `computedUserset` relation there, as a BOUNDED, CYCLE-GUARDED closure
21
+ *
22
+ * All rewrites are resolved against the supplied tuple set at translation time (the whole tuple set is
23
+ * in hand), so intersection/difference/tupleToUserset produce exact concrete permits. Resolution is
24
+ * bounded by a maximum recursion depth and a per-(object, relation) visited set (so a cyclic model —
25
+ * e.g. mutually-referential parents — terminates and fails closed on the cycle).
26
+ *
27
+ * NOT MODELED (reported; fails closed — the relation grants nothing):
28
+ * - userset-valued tuples (a tuple whose `user` is itself a userset, like "group:eng#member"):
29
+ * expanding these to concrete users needs group-membership resolution of the userset, which the
30
+ * concrete-user enumeration does not perform. Such tuples are reported and not expanded. (This is
31
+ * the real remaining boundary: everything structural in the model is now resolved.)
32
+ */
33
+ export declare function openfgaToPca(model: unknown, tuples: unknown): BridgeResult;
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openfgaToPca = openfgaToPca;
4
+ /**
5
+ * OpenFGA / Zanzibar ReBAC model + tuples → PCA predicate translator.
6
+ *
7
+ * The relation check "user U has relation R on object O" becomes a PCA permit:
8
+ * { verb: R, resource: O, where: [{ field: 'subject.id', op: 'eq', value: U }] }
9
+ * so admitting verb R on resource O requires the acting subject to be exactly U. The translator
10
+ * evaluates the model against the supplied tuples and emits one permit per (user, object, relation)
11
+ * triple that HOLDS. Default deny: triples that don't hold emit nothing.
12
+ *
13
+ * SUPPORTED REWRITES (documented boundary)
14
+ * ----------------------------------------
15
+ * - `this` ({}) direct relationship tuples
16
+ * - `computedUserset` "this relation is also granted by relation R on the same object"
17
+ * - `union` OR of children (nested unions flattened)
18
+ * - `intersection` AND of children (→ an `all_of` of the per-child checks)
19
+ * - `difference` base AND NOT subtract (→ a `not` on the subtract check)
20
+ * - `tupleToUserset` userset rewrite "from" a related object (e.g. "viewer from parent"):
21
+ * follows the `tupleset` relation to each related object and checks the
22
+ * `computedUserset` relation there, as a BOUNDED, CYCLE-GUARDED closure
23
+ *
24
+ * All rewrites are resolved against the supplied tuple set at translation time (the whole tuple set is
25
+ * in hand), so intersection/difference/tupleToUserset produce exact concrete permits. Resolution is
26
+ * bounded by a maximum recursion depth and a per-(object, relation) visited set (so a cyclic model —
27
+ * e.g. mutually-referential parents — terminates and fails closed on the cycle).
28
+ *
29
+ * NOT MODELED (reported; fails closed — the relation grants nothing):
30
+ * - userset-valued tuples (a tuple whose `user` is itself a userset, like "group:eng#member"):
31
+ * expanding these to concrete users needs group-membership resolution of the userset, which the
32
+ * concrete-user enumeration does not perform. Such tuples are reported and not expanded. (This is
33
+ * the real remaining boundary: everything structural in the model is now resolved.)
34
+ */
35
+ function openfgaToPca(model, tuples) {
36
+ const report = { source: 'openfga', translated: [], skipped: [], errors: [] };
37
+ const predicates = [];
38
+ const typeRelations = parseModel(model, report);
39
+ const tupleList = parseTuples(tuples, report);
40
+ if (typeRelations === null)
41
+ return { predicates, denies: [], caveats: [], report };
42
+ // Index direct tuples: `${object}\u0000${relation}` -> Set<user>. Userset-valued users are noted.
43
+ const direct = new Map();
44
+ const usersSeen = new Set();
45
+ const objectsSeen = new Set();
46
+ let usersetTuples = 0;
47
+ for (const t of tupleList) {
48
+ objectsSeen.add(t.object);
49
+ const key = `${t.object}\u0000${t.relation}`;
50
+ let set = direct.get(key);
51
+ if (!set) {
52
+ set = new Set();
53
+ direct.set(key, set);
54
+ }
55
+ set.add(t.user);
56
+ if (t.user.includes('#'))
57
+ usersetTuples++;
58
+ else
59
+ usersSeen.add(t.user);
60
+ }
61
+ if (usersetTuples > 0) {
62
+ report.skipped.push(`${usersetTuples} userset-valued tuple(s) (user contains '#') not expanded to concrete users`);
63
+ }
64
+ // Build a resolution plan per (type, relation); report unsupported ones.
65
+ const plans = new Map();
66
+ for (const [type, relations] of typeRelations) {
67
+ for (const [relation, node] of relations) {
68
+ const built = buildPlan(node);
69
+ const key = `${type}\u0000${relation}`;
70
+ if (!built.ok || built.plan === undefined) {
71
+ report.skipped.push(`relation ${type}#${relation}: ${built.reason ?? 'unsupported rewrite'} — skipped`);
72
+ continue;
73
+ }
74
+ if (built.partial) {
75
+ report.skipped.push(`relation ${type}#${relation}: some union children unsupported and dropped (under-approximated)`);
76
+ }
77
+ plans.set(key, built.plan);
78
+ report.translated.push(`relation ${type}#${relation} (${describePlan(built.plan)})`);
79
+ }
80
+ }
81
+ const typeOf = (object) => {
82
+ const i = object.indexOf(':');
83
+ return i < 0 ? object : object.slice(0, i);
84
+ };
85
+ const objectOfUserset = (p) => {
86
+ const i = p.indexOf('#');
87
+ return i < 0 ? p : p.slice(0, i);
88
+ };
89
+ const MAX_DEPTH = 32;
90
+ const holdsRel = (user, object, relation, depth, visited) => {
91
+ const key = `${object}\u0000${relation}`;
92
+ if (depth > MAX_DEPTH || visited.has(key))
93
+ return false;
94
+ const plan = plans.get(`${typeOf(object)}\u0000${relation}`);
95
+ if (plan === undefined)
96
+ return false;
97
+ const next = new Set(visited);
98
+ next.add(key);
99
+ return evalPlan(user, object, relation, plan, depth, next);
100
+ };
101
+ const evalPlan = (user, object, relation, plan, depth, visited) => {
102
+ switch (plan.kind) {
103
+ case 'direct':
104
+ return direct.get(`${object}\u0000${relation}`)?.has(user) ?? false;
105
+ case 'computed':
106
+ return holdsRel(user, object, plan.relation, depth + 1, visited);
107
+ case 'union':
108
+ return plan.children.some((c) => evalPlan(user, object, relation, c, depth, visited));
109
+ case 'intersection':
110
+ return plan.children.every((c) => evalPlan(user, object, relation, c, depth, visited));
111
+ case 'difference':
112
+ return (evalPlan(user, object, relation, plan.base, depth, visited) &&
113
+ !evalPlan(user, object, relation, plan.subtract, depth, visited));
114
+ case 'ttu': {
115
+ const related = direct.get(`${object}\u0000${plan.tupleset}`);
116
+ if (!related)
117
+ return false;
118
+ for (const p of related) {
119
+ if (holdsRel(user, objectOfUserset(p), plan.computed, depth + 1, visited))
120
+ return true;
121
+ }
122
+ return false;
123
+ }
124
+ }
125
+ };
126
+ // Enumerate every (user, object, relation-defined-on-that-object's-type) triple that holds.
127
+ const sortedUsers = [...usersSeen].sort();
128
+ const sortedObjects = [...objectsSeen].sort();
129
+ for (const object of sortedObjects) {
130
+ const type = typeOf(object);
131
+ const relations = typeRelations.get(type);
132
+ if (!relations) {
133
+ report.skipped.push(`object ${object}: type "${type}" not defined in model — ignored`);
134
+ continue;
135
+ }
136
+ for (const relation of [...relations.keys()].sort()) {
137
+ if (!plans.has(`${type}\u0000${relation}`))
138
+ continue; // unsupported relation
139
+ for (const user of sortedUsers) {
140
+ if (holdsRel(user, object, relation, 0, new Set())) {
141
+ predicates.push({ verb: relation, resource: object, where: [{ field: 'subject.id', op: 'eq', value: user }] });
142
+ }
143
+ }
144
+ }
145
+ }
146
+ return { predicates, denies: [], caveats: [], report };
147
+ }
148
+ function describePlan(plan) {
149
+ switch (plan.kind) {
150
+ case 'direct':
151
+ return 'direct';
152
+ case 'computed':
153
+ return `computed ${plan.relation}`;
154
+ case 'union':
155
+ return `union[${plan.children.map(describePlan).join(', ')}]`;
156
+ case 'intersection':
157
+ return `intersection[${plan.children.map(describePlan).join(', ')}]`;
158
+ case 'difference':
159
+ return `difference(${describePlan(plan.base)} - ${describePlan(plan.subtract)})`;
160
+ case 'ttu':
161
+ return `${plan.computed} from ${plan.tupleset}`;
162
+ }
163
+ }
164
+ function childNodes(container) {
165
+ if (container === null || typeof container !== 'object')
166
+ return null;
167
+ const child = container.child;
168
+ return Array.isArray(child) ? child : null;
169
+ }
170
+ /** Build a resolution plan from a userset-rewrite node. */
171
+ function buildPlan(node) {
172
+ if (hasOwn(node, 'this'))
173
+ return { ok: true, plan: { kind: 'direct' }, partial: false };
174
+ if (hasOwn(node, 'computedUserset')) {
175
+ const cu = node.computedUserset;
176
+ const rel = cu && typeof cu === 'object' ? cu.relation : undefined;
177
+ if (typeof rel !== 'string' || rel.length === 0) {
178
+ return { ok: false, partial: false, reason: 'computedUserset without a relation' };
179
+ }
180
+ return { ok: true, plan: { kind: 'computed', relation: rel }, partial: false };
181
+ }
182
+ if (hasOwn(node, 'union')) {
183
+ const children = childNodes(node.union);
184
+ if (children === null)
185
+ return { ok: false, partial: false, reason: 'union without children' };
186
+ const subs = [];
187
+ let partial = false;
188
+ for (const child of children) {
189
+ if (!isRewrite(child)) {
190
+ partial = true;
191
+ continue;
192
+ }
193
+ const sub = buildPlan(child);
194
+ if (!sub.ok || sub.plan === undefined) {
195
+ partial = true; // OR under-approximates safely: drop the unmodeled child
196
+ continue;
197
+ }
198
+ if (sub.partial)
199
+ partial = true;
200
+ subs.push(sub.plan);
201
+ }
202
+ if (subs.length === 0)
203
+ return { ok: false, partial, reason: 'union with no modeled children' };
204
+ return { ok: true, plan: { kind: 'union', children: subs }, partial };
205
+ }
206
+ if (hasOwn(node, 'intersection')) {
207
+ const children = childNodes(node.intersection);
208
+ if (children === null)
209
+ return { ok: false, partial: false, reason: 'intersection without children' };
210
+ const subs = [];
211
+ for (const child of children) {
212
+ // An AND cannot drop a child without OVER-granting: every conjunct must be modeled.
213
+ if (!isRewrite(child))
214
+ return { ok: false, partial: false, reason: 'intersection child is not a rewrite' };
215
+ const sub = buildPlan(child);
216
+ if (!sub.ok || sub.plan === undefined) {
217
+ return { ok: false, partial: false, reason: `intersection child unmodeled (${sub.reason ?? 'unsupported'})` };
218
+ }
219
+ subs.push(sub.plan);
220
+ }
221
+ if (subs.length === 0)
222
+ return { ok: false, partial: false, reason: 'intersection with no children' };
223
+ return { ok: true, plan: { kind: 'intersection', children: subs }, partial: false };
224
+ }
225
+ if (hasOwn(node, 'difference')) {
226
+ const diff = node.difference;
227
+ if (diff === null || typeof diff !== 'object')
228
+ return { ok: false, partial: false, reason: 'malformed difference' };
229
+ const baseNode = diff.base;
230
+ const subNode = diff.subtract;
231
+ if (!isRewrite(baseNode) || !isRewrite(subNode)) {
232
+ return { ok: false, partial: false, reason: 'difference needs both base and subtract' };
233
+ }
234
+ const base = buildPlan(baseNode);
235
+ const subtract = buildPlan(subNode);
236
+ // Both halves must be modeled: dropping `base` or `subtract` would change the result unsafely.
237
+ if (!base.ok || base.plan === undefined)
238
+ return { ok: false, partial: false, reason: `difference base unmodeled (${base.reason ?? '?'})` };
239
+ if (!subtract.ok || subtract.plan === undefined)
240
+ return { ok: false, partial: false, reason: `difference subtract unmodeled (${subtract.reason ?? '?'})` };
241
+ return { ok: true, plan: { kind: 'difference', base: base.plan, subtract: subtract.plan }, partial: base.partial || subtract.partial };
242
+ }
243
+ if (hasOwn(node, 'tupleToUserset')) {
244
+ const ttu = node.tupleToUserset;
245
+ if (ttu === null || typeof ttu !== 'object')
246
+ return { ok: false, partial: false, reason: 'malformed tupleToUserset' };
247
+ const tuplesetRel = relationOf(ttu.tupleset);
248
+ const computedRel = relationOf(ttu.computedUserset);
249
+ if (tuplesetRel === null)
250
+ return { ok: false, partial: false, reason: 'tupleToUserset without a tupleset relation' };
251
+ if (computedRel === null)
252
+ return { ok: false, partial: false, reason: 'tupleToUserset without a computedUserset relation' };
253
+ return { ok: true, plan: { kind: 'ttu', tupleset: tuplesetRel, computed: computedRel }, partial: false };
254
+ }
255
+ return { ok: false, partial: false, reason: 'unknown rewrite node' };
256
+ }
257
+ /** The `.relation` string of a `{ relation }` object, or null. */
258
+ function relationOf(v) {
259
+ if (v === null || typeof v !== 'object')
260
+ return null;
261
+ const rel = v.relation;
262
+ return typeof rel === 'string' && rel.length > 0 ? rel : null;
263
+ }
264
+ function hasOwn(o, k) {
265
+ return Object.prototype.hasOwnProperty.call(o, k);
266
+ }
267
+ function isRewrite(v) {
268
+ return v !== null && typeof v === 'object';
269
+ }
270
+ /** Parse the authorization model into type -> (relation -> rewrite node). Null if unusable. */
271
+ function parseModel(model, report) {
272
+ if (model === null || typeof model !== 'object') {
273
+ report.errors.push('model is not an object');
274
+ return null;
275
+ }
276
+ const defs = model.type_definitions;
277
+ if (!Array.isArray(defs)) {
278
+ report.errors.push('model.type_definitions is missing or not an array');
279
+ return null;
280
+ }
281
+ const out = new Map();
282
+ for (const def of defs) {
283
+ if (def === null || typeof def !== 'object')
284
+ continue;
285
+ const type = def.type;
286
+ if (typeof type !== 'string' || type.length === 0)
287
+ continue;
288
+ const rels = def.relations;
289
+ const relMap = new Map();
290
+ if (rels !== null && typeof rels === 'object') {
291
+ for (const [name, node] of Object.entries(rels)) {
292
+ if (isRewrite(node))
293
+ relMap.set(name, node);
294
+ }
295
+ }
296
+ out.set(type, relMap);
297
+ }
298
+ return out;
299
+ }
300
+ function parseTuples(tuples, report) {
301
+ if (!Array.isArray(tuples)) {
302
+ if (tuples !== undefined)
303
+ report.errors.push('tuples is not an array');
304
+ return [];
305
+ }
306
+ const out = [];
307
+ for (const t of tuples) {
308
+ if (t === null || typeof t !== 'object')
309
+ continue;
310
+ const user = t.user;
311
+ const relation = t.relation;
312
+ const object = t.object;
313
+ if (typeof user === 'string' && typeof relation === 'string' && typeof object === 'string') {
314
+ out.push({ user, relation, object });
315
+ }
316
+ }
317
+ return out;
318
+ }
319
+ //# sourceMappingURL=openfga.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openfga.js","sourceRoot":"","sources":["../src/openfga.ts"],"names":[],"mappings":"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"}
package/dist/rego.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import type { BridgeResult } from './types';
2
+ /**
3
+ * OPA/Rego → PCA predicate translator.
4
+ *
5
+ * Rego is Turing-complete. This translator models ONLY the ubiquitous "allow-rule as a conjunction
6
+ * of input comparisons" idiom and fails closed on everything else — an unmodeled construct never
7
+ * widens an allow.
8
+ *
9
+ * SUPPORTED SUBSET (documented boundary)
10
+ * --------------------------------------
11
+ * package <name> — recorded, otherwise ignored
12
+ * default allow = false — the only safe default; anything else is reported & ignored
13
+ * allow { <body> } — also `allow = true { }`, `allow := true { }`, `allow if { }`
14
+ *
15
+ * Each `allow` rule body is a conjunction of statements (one per line or `;`). Each `allow` rule is
16
+ * an independent predicate (rules OR together — Rego's multiple-definition semantics).
17
+ *
18
+ * Statements, where a path is `input.<dotted>`:
19
+ * - `input.action == "x"` — sets the predicate VERB (special field)
20
+ * - `input.action in {"a","b"}` — verb = ["a","b"]
21
+ * - `input.resource == "r"` — sets the predicate RESOURCE (special field)
22
+ * - `input.<p> == <lit>` / `!=` — eq / ne condition on env.<p>
23
+ * - `input.<p> in {set}` / `[array]` — in condition (membership in a literal set)
24
+ * - `input.<p> < <num>` `<=` `>` `>=`— numeric comparison (lt/lte/gt/gte)
25
+ * - `input.<p> == input.<q>` — ref comparison (env.<p> == env.<q>)
26
+ * - `not <stmt>` — negation (→ a `not` grouping); the inner must itself be a
27
+ * modeled CONDITION (not a verb/resource selector)
28
+ * - `startswith(input.<p>, "pre")` — prefix condition (exact: startswith is anchored-at-start)
29
+ * - `glob.match("pat", [], input.<p>)` / `glob.match("pat", null, input.<p>)` — like condition
30
+ * (glob.match is whole-string/anchored; with empty/null delimiters `*` spans everything)
31
+ * Literals: "string", number, true/false.
32
+ *
33
+ * NOT MODELED (reported; the ENTIRE containing rule is dropped — a conjunct we cannot model could
34
+ * only be dropped by WIDENING the allow, which is unsafe). This is the honest minimum, all of it
35
+ * genuinely beyond a finite predicate:
36
+ * - `:=` local assignment; `some`/`every`, comprehensions, iteration/wildcards (`input.xs[_]`) —
37
+ * bounded quantification / iteration with side conditions;
38
+ * - arbitrary function/builtin calls other than the pure anchored matchers above (`count(...)`,
39
+ * `regex.match(...)` — unanchored, so not faithfully an anchored `matches` — `endswith(...)` —
40
+ * no suffix op — `net.cidr_contains(...)`, …);
41
+ * - references to other rules, object/set construction in the body, bare truthiness (`input.flag`),
42
+ * and reverse membership `"lit" in input.coll` (a literal inside an input collection).
43
+ */
44
+ export declare function regoToPca(moduleText: string): BridgeResult;