@openpolicy/core 0.0.12 → 0.0.15
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 +5 -4
- package/dist/index.d.ts +77 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +424 -615
- package/dist/index.js.map +1 -1
- package/package.json +2 -4
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/privacy.d.ts +0 -7
- package/dist/privacy.d.ts.map +0 -1
- package/dist/privacy.test.d.ts +0 -2
- package/dist/privacy.test.d.ts.map +0 -1
- package/dist/renderers/html.d.ts +0 -3
- package/dist/renderers/html.d.ts.map +0 -1
- package/dist/renderers/markdown.d.ts +0 -3
- package/dist/renderers/markdown.d.ts.map +0 -1
- package/dist/templates/privacy/ccpa-supplement.d.ts +0 -3
- package/dist/templates/privacy/ccpa-supplement.d.ts.map +0 -1
- package/dist/templates/privacy/contact.d.ts +0 -3
- package/dist/templates/privacy/contact.d.ts.map +0 -1
- package/dist/templates/privacy/cookies.d.ts +0 -3
- package/dist/templates/privacy/cookies.d.ts.map +0 -1
- package/dist/templates/privacy/data-collected.d.ts +0 -3
- package/dist/templates/privacy/data-collected.d.ts.map +0 -1
- package/dist/templates/privacy/data-retention.d.ts +0 -3
- package/dist/templates/privacy/data-retention.d.ts.map +0 -1
- package/dist/templates/privacy/gdpr-supplement.d.ts +0 -3
- package/dist/templates/privacy/gdpr-supplement.d.ts.map +0 -1
- package/dist/templates/privacy/introduction.d.ts +0 -3
- package/dist/templates/privacy/introduction.d.ts.map +0 -1
- package/dist/templates/privacy/legal-basis.d.ts +0 -3
- package/dist/templates/privacy/legal-basis.d.ts.map +0 -1
- package/dist/templates/privacy/third-parties.d.ts +0 -3
- package/dist/templates/privacy/third-parties.d.ts.map +0 -1
- package/dist/templates/privacy/user-rights.d.ts +0 -3
- package/dist/templates/privacy/user-rights.d.ts.map +0 -1
- package/dist/templates/terms/acceptance.d.ts +0 -3
- package/dist/templates/terms/acceptance.d.ts.map +0 -1
- package/dist/templates/terms/accounts.d.ts +0 -3
- package/dist/templates/terms/accounts.d.ts.map +0 -1
- package/dist/templates/terms/availability.d.ts +0 -3
- package/dist/templates/terms/availability.d.ts.map +0 -1
- package/dist/templates/terms/changes-to-terms.d.ts +0 -3
- package/dist/templates/terms/changes-to-terms.d.ts.map +0 -1
- package/dist/templates/terms/contact.d.ts +0 -3
- package/dist/templates/terms/contact.d.ts.map +0 -1
- package/dist/templates/terms/disclaimers.d.ts +0 -3
- package/dist/templates/terms/disclaimers.d.ts.map +0 -1
- package/dist/templates/terms/dispute-resolution.d.ts +0 -3
- package/dist/templates/terms/dispute-resolution.d.ts.map +0 -1
- package/dist/templates/terms/eligibility.d.ts +0 -3
- package/dist/templates/terms/eligibility.d.ts.map +0 -1
- package/dist/templates/terms/governing-law.d.ts +0 -3
- package/dist/templates/terms/governing-law.d.ts.map +0 -1
- package/dist/templates/terms/indemnification.d.ts +0 -3
- package/dist/templates/terms/indemnification.d.ts.map +0 -1
- package/dist/templates/terms/intellectual-property.d.ts +0 -3
- package/dist/templates/terms/intellectual-property.d.ts.map +0 -1
- package/dist/templates/terms/introduction.d.ts +0 -3
- package/dist/templates/terms/introduction.d.ts.map +0 -1
- package/dist/templates/terms/limitation-of-liability.d.ts +0 -3
- package/dist/templates/terms/limitation-of-liability.d.ts.map +0 -1
- package/dist/templates/terms/payments.d.ts +0 -3
- package/dist/templates/terms/payments.d.ts.map +0 -1
- package/dist/templates/terms/prohibited-use.d.ts +0 -3
- package/dist/templates/terms/prohibited-use.d.ts.map +0 -1
- package/dist/templates/terms/termination.d.ts +0 -3
- package/dist/templates/terms/termination.d.ts.map +0 -1
- package/dist/templates/terms/third-party-services.d.ts +0 -3
- package/dist/templates/terms/third-party-services.d.ts.map +0 -1
- package/dist/templates/terms/user-content.d.ts +0 -3
- package/dist/templates/terms/user-content.d.ts.map +0 -1
- package/dist/terms.d.ts +0 -7
- package/dist/terms.d.ts.map +0 -1
- package/dist/terms.test.d.ts +0 -2
- package/dist/terms.test.d.ts.map +0 -1
- package/dist/types.d.ts +0 -119
- package/dist/types.d.ts.map +0 -1
- package/dist/validate-terms.d.ts +0 -3
- package/dist/validate-terms.d.ts.map +0 -1
- package/dist/validate-terms.test.d.ts +0 -2
- package/dist/validate-terms.test.d.ts.map +0 -1
- package/dist/validate.d.ts +0 -3
- package/dist/validate.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ This is an internal package used by `@openpolicy/sdk`, `@openpolicy/vite`, and `
|
|
|
6
6
|
|
|
7
7
|
## What it does
|
|
8
8
|
|
|
9
|
-
- Compiles `PrivacyPolicyConfig` and `TermsOfServiceConfig` definitions to Markdown and
|
|
9
|
+
- Compiles `PrivacyPolicyConfig` and `TermsOfServiceConfig` definitions to Markdown, HTML, and PDF
|
|
10
10
|
- Validates policy configs and returns structured warnings and errors
|
|
11
11
|
- Exports section builders, renderers, and all core types
|
|
12
12
|
|
|
@@ -17,18 +17,19 @@ If you're building a custom integration (e.g. a framework plugin not covered by
|
|
|
17
17
|
```ts
|
|
18
18
|
import { compilePolicy } from "@openpolicy/core";
|
|
19
19
|
|
|
20
|
-
const results = compilePolicy(
|
|
20
|
+
const results = await compilePolicy(
|
|
21
21
|
{
|
|
22
22
|
type: "privacy",
|
|
23
23
|
effectiveDate: "2026-01-01",
|
|
24
24
|
company: { name: "Acme", legalName: "Acme, Inc.", address: "...", contact: "privacy@acme.com" },
|
|
25
25
|
// ... rest of config
|
|
26
26
|
},
|
|
27
|
-
{ formats: ["markdown", "html"] },
|
|
27
|
+
{ formats: ["markdown", "html", "pdf"] },
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
for (const result of results) {
|
|
31
|
-
|
|
31
|
+
// result.content is string for markdown/html, Buffer for pdf
|
|
32
|
+
console.log(result.format, result.filename);
|
|
32
33
|
}
|
|
33
34
|
```
|
|
34
35
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,6 @@ type OutputFormat = "markdown" | "html" | "pdf" | "jsx";
|
|
|
3
3
|
type CompileOptions = {
|
|
4
4
|
formats: OutputFormat[];
|
|
5
5
|
};
|
|
6
|
-
type PolicySection = {
|
|
7
|
-
id: string;
|
|
8
|
-
title: string;
|
|
9
|
-
body: string;
|
|
10
|
-
};
|
|
11
6
|
type Jurisdiction = "us" | "eu" | "ca" | "au" | "nz" | "other";
|
|
12
7
|
type CompanyConfig = {
|
|
13
8
|
name: string;
|
|
@@ -149,26 +144,84 @@ type ValidationIssue = {
|
|
|
149
144
|
message: string;
|
|
150
145
|
};
|
|
151
146
|
//#endregion
|
|
152
|
-
//#region src/
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
147
|
+
//#region src/documents/types.d.ts
|
|
148
|
+
type NodeContext = {
|
|
149
|
+
reason?: string;
|
|
150
|
+
};
|
|
151
|
+
type TextNode = {
|
|
152
|
+
type: "text";
|
|
153
|
+
value: string;
|
|
154
|
+
context?: NodeContext;
|
|
155
|
+
};
|
|
156
|
+
type BoldNode = {
|
|
157
|
+
type: "bold";
|
|
158
|
+
value: string;
|
|
159
|
+
context?: NodeContext;
|
|
160
|
+
};
|
|
161
|
+
type ItalicNode = {
|
|
162
|
+
type: "italic";
|
|
163
|
+
value: string;
|
|
164
|
+
context?: NodeContext;
|
|
165
|
+
};
|
|
166
|
+
type LinkNode = {
|
|
167
|
+
type: "link";
|
|
168
|
+
href: string;
|
|
169
|
+
value: string;
|
|
170
|
+
context?: NodeContext;
|
|
171
|
+
};
|
|
172
|
+
type InlineNode = TextNode | BoldNode | ItalicNode | LinkNode;
|
|
173
|
+
type HeadingNode = {
|
|
174
|
+
type: "heading";
|
|
175
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
176
|
+
value: string;
|
|
177
|
+
context?: NodeContext;
|
|
178
|
+
};
|
|
179
|
+
type ParagraphNode = {
|
|
180
|
+
type: "paragraph";
|
|
181
|
+
children: InlineNode[];
|
|
182
|
+
context?: NodeContext;
|
|
183
|
+
};
|
|
184
|
+
type ListItemNode = {
|
|
185
|
+
type: "listItem";
|
|
186
|
+
children: (InlineNode | ListNode)[];
|
|
187
|
+
context?: NodeContext;
|
|
188
|
+
};
|
|
189
|
+
type ListNode = {
|
|
190
|
+
type: "list";
|
|
191
|
+
ordered?: boolean;
|
|
192
|
+
items: ListItemNode[];
|
|
193
|
+
context?: NodeContext;
|
|
194
|
+
};
|
|
195
|
+
type ContentNode = HeadingNode | ParagraphNode | ListNode;
|
|
196
|
+
type DocumentSection = {
|
|
197
|
+
type: "section";
|
|
198
|
+
id: string;
|
|
199
|
+
content: ContentNode[];
|
|
200
|
+
context?: NodeContext;
|
|
201
|
+
};
|
|
202
|
+
type PolicyType = "privacy" | "terms" | "cookie";
|
|
203
|
+
type Document = {
|
|
204
|
+
type: "document";
|
|
205
|
+
policyType: PolicyType;
|
|
206
|
+
sections: DocumentSection[];
|
|
207
|
+
context?: NodeContext;
|
|
208
|
+
};
|
|
209
|
+
type Node = Document | DocumentSection | ContentNode | ListItemNode | InlineNode;
|
|
158
210
|
//#endregion
|
|
159
|
-
//#region src/
|
|
160
|
-
declare
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
211
|
+
//#region src/documents/helpers.d.ts
|
|
212
|
+
declare const heading: (value: string, levelOrContext?: (1 | 2 | 3 | 4 | 5 | 6) | NodeContext, context?: NodeContext) => HeadingNode;
|
|
213
|
+
declare const text: (value: string, context?: NodeContext) => TextNode;
|
|
214
|
+
declare const bold: (value: string, context?: NodeContext) => BoldNode;
|
|
215
|
+
declare const italic: (value: string, context?: NodeContext) => ItalicNode;
|
|
216
|
+
declare const link: (href: string, value: string, context?: NodeContext) => LinkNode;
|
|
217
|
+
declare const p: (children: (string | InlineNode)[], context?: NodeContext) => ParagraphNode;
|
|
218
|
+
declare const li: (children: (string | InlineNode | ListNode)[], context?: NodeContext) => ListItemNode;
|
|
219
|
+
declare const ul: (items: ListItemNode[], context?: NodeContext) => ListNode;
|
|
220
|
+
declare const ol: (items: ListItemNode[], context?: NodeContext) => ListNode;
|
|
221
|
+
declare const section: (id: string, content: ContentNode[], context?: NodeContext) => DocumentSection;
|
|
165
222
|
//#endregion
|
|
166
|
-
//#region src/
|
|
167
|
-
declare function
|
|
168
|
-
format: OutputFormat;
|
|
169
|
-
content: string;
|
|
170
|
-
sections: PolicySection[];
|
|
171
|
-
}[];
|
|
223
|
+
//#region src/documents/index.d.ts
|
|
224
|
+
declare function compile(input: PolicyInput): Document;
|
|
172
225
|
//#endregion
|
|
173
226
|
//#region src/validate.d.ts
|
|
174
227
|
declare function validatePrivacyPolicy(config: PrivacyPolicyConfig): ValidationIssue[];
|
|
@@ -181,11 +234,6 @@ declare function validateTermsOfService(config: TermsOfServiceConfig): Validatio
|
|
|
181
234
|
//#endregion
|
|
182
235
|
//#region src/index.d.ts
|
|
183
236
|
declare function expandOpenPolicyConfig(config: OpenPolicyConfig): PolicyInput[];
|
|
184
|
-
declare function compilePolicy(input: PolicyInput, options?: CompileOptions): {
|
|
185
|
-
format: OutputFormat;
|
|
186
|
-
content: string;
|
|
187
|
-
sections: PolicySection[];
|
|
188
|
-
}[];
|
|
189
237
|
//#endregion
|
|
190
|
-
export { type CompanyConfig, type CompileOptions, type CookiePolicyConfig, type DisputeResolutionMethod, type Jurisdiction, type OpenPolicyConfig, type OutputFormat, type PolicyInput, type
|
|
238
|
+
export { type BoldNode, type CompanyConfig, type CompileOptions, type ContentNode, type CookiePolicyConfig, type DisputeResolutionMethod, type Document, type DocumentSection, type HeadingNode, type InlineNode, type ItalicNode, type Jurisdiction, type LinkNode, type ListItemNode, type ListNode, type Node, type NodeContext, type OpenPolicyConfig, type OutputFormat, type ParagraphNode, type PolicyInput, type PolicyType, type PrivacyPolicyConfig, type TermsOfServiceConfig, type TextNode, type ValidationIssue, bold, compile, expandOpenPolicyConfig, heading, isOpenPolicyConfig, italic, li, link, ol, p, section, text, ul, validateCookiePolicy, validatePrivacyPolicy, validateTermsOfService };
|
|
191
239
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/documents/types.ts","../src/documents/helpers.ts","../src/documents/index.ts","../src/validate.ts","../src/validate-cookie.ts","../src/validate-terms.ts","../src/index.ts"],"mappings":"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"}
|