@northstartech/cipher 0.0.0-stage → 1.0.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.
Files changed (41) hide show
  1. package/README.md +541 -2
  2. package/dist/client.d.ts +237 -0
  3. package/dist/client.js +555 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/crypto.d.ts +72 -0
  6. package/dist/crypto.js +244 -0
  7. package/dist/crypto.js.map +1 -0
  8. package/dist/encoding.d.ts +17 -0
  9. package/dist/encoding.js +79 -0
  10. package/dist/encoding.js.map +1 -0
  11. package/dist/errors.d.ts +14 -0
  12. package/dist/errors.js +22 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/index.d.ts +8 -0
  15. package/dist/index.js +6 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/integrations/drizzle.d.ts +96 -0
  18. package/dist/integrations/drizzle.js +285 -0
  19. package/dist/integrations/drizzle.js.map +1 -0
  20. package/dist/integrations/mongoose.d.ts +72 -0
  21. package/dist/integrations/mongoose.js +582 -0
  22. package/dist/integrations/mongoose.js.map +1 -0
  23. package/dist/integrations/prisma.d.ts +65 -0
  24. package/dist/integrations/prisma.js +588 -0
  25. package/dist/integrations/prisma.js.map +1 -0
  26. package/dist/integrations/sequelize.d.ts +62 -0
  27. package/dist/integrations/sequelize.js +677 -0
  28. package/dist/integrations/sequelize.js.map +1 -0
  29. package/dist/integrations/shared.d.ts +268 -0
  30. package/dist/integrations/shared.js +513 -0
  31. package/dist/integrations/shared.js.map +1 -0
  32. package/dist/integrations/typeorm.d.ts +109 -0
  33. package/dist/integrations/typeorm.js +457 -0
  34. package/dist/integrations/typeorm.js.map +1 -0
  35. package/dist/object.d.ts +53 -0
  36. package/dist/object.js +226 -0
  37. package/dist/object.js.map +1 -0
  38. package/dist/search.d.ts +250 -0
  39. package/dist/search.js +258 -0
  40. package/dist/search.js.map +1 -0
  41. package/package.json +101 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequelize.js","sourceRoot":"","sources":["../../src/integrations/sequelize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Shared building blocks for the ORM integrations (docs/sdk-conventions.md,
3
+ * "ORM integration conventions"). Internal module: the public entry points are
4
+ * `@northstartech/cipher/{prisma,sequelize,mongoose,drizzle,typeorm}`.
5
+ *
6
+ * Every helper here fails closed: nothing returns or writes plaintext when a
7
+ * cryptographic operation fails, and stored values that are not `nsc:v1:`
8
+ * ciphertext are never handed back to the application (unless the caller
9
+ * explicitly opted into reading legacy plaintext during a migration).
10
+ */
11
+ import type { Normalization, NorthstarCipher, Settled } from '../client.js';
12
+ import { CipherError } from '../errors.js';
13
+ import { SearchIndex, type SearchDocument, type SearchValue } from '../search.js';
14
+ /** Text prefix of every stored ciphertext (protocol §3). */
15
+ export declare const CIPHERTEXT_PREFIX = "nsc:v1:";
16
+ /** Placeholder written by the two-phase insert before the real id is known. Never decryptable. */
17
+ export declare const PENDING_SENTINEL = "nsc:pending:v1";
18
+ /** Default suffix of the blind-index column next to a searchable field (`email` → `email_bidx`). */
19
+ export declare const INDEX_SUFFIX = "_bidx";
20
+ /** Per-field options shared by every integration. */
21
+ export interface EncryptedFieldOptions {
22
+ /**
23
+ * Store a blind index for exact-match search in `<field>_bidx` (or `indexField`).
24
+ * `true` uses the `exact` normalization; pass a normalization id (`'email'`,
25
+ * `'case_insensitive'`, `'alphanumeric'`, `'digits'`) to match loosely.
26
+ */
27
+ searchable?: boolean | Normalization;
28
+ /** ORM attribute/property that holds the blind index. Default `<field>_bidx`. */
29
+ indexField?: string;
30
+ }
31
+ /** `true` for a plain encrypted field, or options. */
32
+ export type EncryptedFieldSpec = true | EncryptedFieldOptions;
33
+ /** Options understood by every integration. */
34
+ export interface CipherIntegrationOptions {
35
+ /** Key alias (or key id) used for writes and search tokens. Default: the client's key. */
36
+ keyId?: string;
37
+ /** Decrypt purpose recorded in the audit log and matched by policy (protocol §9). */
38
+ purpose?: string;
39
+ /**
40
+ * MIGRATION ONLY. Return stored values that are not ciphertext as-is instead of
41
+ * throwing. The two-phase sentinel still throws. Leave off in production.
42
+ */
43
+ readLegacyPlaintext?: boolean;
44
+ }
45
+ export interface NormalizedFieldSpec {
46
+ searchable: boolean;
47
+ normalization?: Normalization;
48
+ indexField?: string;
49
+ }
50
+ export declare function configError(message: string): CipherError;
51
+ export declare function requestError(message: string): CipherError;
52
+ /** Validate and normalize a field spec (`true` or options). */
53
+ export declare function normalizeFieldSpec(spec: unknown, label: string): NormalizedFieldSpec;
54
+ /**
55
+ * Canonical `record_id` for a primary-key value. UUIDs are lowercased because
56
+ * PostgreSQL returns them lowercase whatever case was inserted; ObjectIds use
57
+ * their hex form; integers their decimal form.
58
+ */
59
+ export declare function recordIdOf(value: unknown, label: string): string;
60
+ /** Plaintext of an encrypted field: strings only (store other types serialized). */
61
+ export declare function plaintextOf(value: unknown, label: string): string;
62
+ /** True for a value written by Northstar Cipher (`nsc:v1:…`). */
63
+ export declare function isCiphertext(value: unknown): value is string;
64
+ export interface EncryptItem {
65
+ collection: string;
66
+ field: string;
67
+ recordId: string;
68
+ plaintext: string;
69
+ /** Set for searchable fields: the blind index is computed in the same request. */
70
+ normalization?: Normalization;
71
+ /** Human-readable location used in error messages (never contains values). */
72
+ label: string;
73
+ }
74
+ export interface EncryptedValue {
75
+ ciphertext: string;
76
+ /** Blind-index token, present when `normalization` was requested. */
77
+ index?: string;
78
+ }
79
+ /** Encrypt values in ONE logical batch (the SDK chunks at 1 000 items), reporting per-item outcomes. */
80
+ export declare function encryptSettled(cipher: NorthstarCipher, items: EncryptItem[], opts?: {
81
+ keyId?: string;
82
+ }): Promise<Settled<EncryptedValue>[]>;
83
+ /**
84
+ * Encrypt values in ONE logical batch. Throws on the first failed item: callers
85
+ * must not write anything in that case.
86
+ */
87
+ export declare function encryptValues(cipher: NorthstarCipher, items: EncryptItem[], opts?: {
88
+ keyId?: string;
89
+ }): Promise<EncryptedValue[]>;
90
+ /**
91
+ * Coalesce encryptions requested in the same tick (e.g. per-entity ORM hooks
92
+ * fired for one `save([...])`) into one batch request. Each caller still gets
93
+ * all of its own items or an error (records stay independent).
94
+ */
95
+ export declare function encryptCoalescer(cipher: NorthstarCipher, opts?: {
96
+ keyId?: string;
97
+ }): (items: EncryptItem[]) => Promise<EncryptedValue[]>;
98
+ export interface DecryptItem {
99
+ collection: string;
100
+ field: string;
101
+ recordId: string;
102
+ /** Raw stored value (anything; validated here). */
103
+ stored: unknown;
104
+ label: string;
105
+ }
106
+ /**
107
+ * Classify and decrypt stored values in ONE logical batch. `null`/`undefined`
108
+ * pass through without a request. Plaintext, the pending sentinel and foreign
109
+ * values throw `INVALID_CIPHERTEXT` before anything is sent.
110
+ */
111
+ export declare function decryptValues(cipher: NorthstarCipher, items: DecryptItem[], opts?: {
112
+ purpose?: string;
113
+ readLegacyPlaintext?: boolean;
114
+ }): Promise<(string | null)[]>;
115
+ /** Decrypt one stored value through the client's auto-batching (`cipher.decrypt`). */
116
+ export declare function decryptOne(cipher: NorthstarCipher, item: DecryptItem, opts?: {
117
+ purpose?: string;
118
+ readLegacyPlaintext?: boolean;
119
+ }): Promise<string | null>;
120
+ /**
121
+ * Exact-match search tokens for one or more values: the union of every token
122
+ * (active and query-only index versions) to match with `IN (…)`.
123
+ */
124
+ export declare function searchTokensFor(cipher: NorthstarCipher, input: {
125
+ collection: string;
126
+ field: string;
127
+ normalization?: Normalization;
128
+ values: unknown;
129
+ keyId?: string;
130
+ label: string;
131
+ }): Promise<string[]>;
132
+ /**
133
+ * Keep a Northstar Search index in sync with a model (integrations with
134
+ * lifecycle hooks). Create the index once with `index.ensure(schema)`.
135
+ */
136
+ export interface SearchSyncOptions {
137
+ /** The index, e.g. `cipher.index('todos')`. */
138
+ index: SearchIndex;
139
+ /**
140
+ * Attributes to index (names of the index schema fields). Encrypted attributes
141
+ * are sent as their stored ciphertext with the context they are bound to: the
142
+ * enclave decrypts them, the application never does.
143
+ */
144
+ fields: string[];
145
+ /** Return from the ORM call only once the change is searchable. Default: searchable within about a second. */
146
+ wait?: boolean;
147
+ /**
148
+ * Index writes run after the database write (after the commit inside a
149
+ * transaction). Without `onError`, a failure rejects the ORM call, or is
150
+ * logged when it happened after a commit.
151
+ */
152
+ onError?: (error: unknown, change: {
153
+ upserted: string[];
154
+ deleted: string[];
155
+ }) => void;
156
+ }
157
+ /** An attribute of a search document; `encrypted` is the context its stored ciphertext is bound to. */
158
+ export interface SearchFieldPlan {
159
+ attr: string;
160
+ encrypted?: {
161
+ collection: string;
162
+ field: string;
163
+ };
164
+ }
165
+ /** Validate `search` integration options. */
166
+ export declare function normalizeSearchSync(o: unknown, label: string): SearchSyncOptions;
167
+ /**
168
+ * Value of one search field: stored ciphertext of an encrypted attribute becomes
169
+ * `{ ciphertext, context }` (decrypted inside the enclave), other values become
170
+ * JSON scalars (dates as RFC 3339). Objects (JSON columns, relations) are skipped.
171
+ */
172
+ export declare function searchValue(value: unknown, encrypted: {
173
+ collection: string;
174
+ field: string;
175
+ recordId: string;
176
+ } | undefined, label: string): SearchValue | undefined;
177
+ /**
178
+ * Build the search document of a record (stored row or ORM instance): the id is
179
+ * the canonical record id, encrypted attributes holding ciphertext keep it, and
180
+ * attributes holding plaintext (already decrypted records) are sent as values.
181
+ * Attributes missing from the record are left out.
182
+ */
183
+ export declare function searchDocumentOf(record: Record<string, unknown>, plan: {
184
+ id: unknown;
185
+ fields: SearchFieldPlan[];
186
+ label: string;
187
+ }): SearchDocument;
188
+ /**
189
+ * Apply a change to a synced index (merge mode: attributes a partially loaded
190
+ * record lacks keep their indexed values). `deferred`: running after a commit,
191
+ * so a failure without `onError` is logged instead of thrown.
192
+ */
193
+ export declare function applySearchChange(sync: SearchSyncOptions, change: {
194
+ upsert?: SearchDocument[];
195
+ delete?: string[];
196
+ }, deferred?: boolean): Promise<void>;
197
+ /**
198
+ * Index changes collected during a transaction and applied once it commits:
199
+ * one request per index, the last write of each record wins (a record deleted
200
+ * and written again is reset first).
201
+ */
202
+ export declare class SearchChangeSet {
203
+ private readonly byIndex;
204
+ add(sync: SearchSyncOptions, change: {
205
+ upsert?: SearchDocument[];
206
+ delete?: string[];
207
+ }): void;
208
+ /** Fold a committed savepoint's changes into its parent. */
209
+ merge(other: SearchChangeSet): void;
210
+ apply(deferred: boolean): Promise<void>;
211
+ }
212
+ /** Quote a PostgreSQL identifier. */
213
+ export declare function quoteIdent(name: string): string;
214
+ /** `"schema"."table"` (schema optional) for `pg_get_serial_sequence`, which parses its first argument as an identifier. */
215
+ export declare function qualifiedTable(table: string, schema?: string | null): string;
216
+ /** SQL reserving `$3` values from the serial/identity sequence of `$1` (qualified table) `$2` (column). */
217
+ export declare const RESERVE_IDS_SQL = "SELECT nextval(pg_get_serial_sequence($1, $2))::text AS id FROM generate_series(1, $3::int)";
218
+ /** Check rows returned by {@link RESERVE_IDS_SQL}. */
219
+ export declare function reservedIdsFrom(rows: unknown, count: number, label: string): string[];
220
+ declare function uuidV4(): string;
221
+ declare function uuidV7(): string;
222
+ /** cuid (v1 layout: `c` + time + counter + fingerprint + random, 25 chars). */
223
+ declare function cuidV1(): string;
224
+ /** cuid2-compatible id: a lowercase letter followed by 23 random base-36 chars. */
225
+ declare function cuidV2(): string;
226
+ declare function ulid(): string;
227
+ declare function nanoid(): string;
228
+ /** Client-side id generators (all CSPRNG based, no dependencies). */
229
+ export declare const ID_GENERATORS: {
230
+ readonly uuid: typeof uuidV4;
231
+ readonly uuidv4: typeof uuidV4;
232
+ readonly uuidv7: typeof uuidV7;
233
+ readonly cuid: typeof cuidV1;
234
+ readonly cuid2: typeof cuidV2;
235
+ readonly ulid: typeof ulid;
236
+ readonly nanoid: typeof nanoid;
237
+ };
238
+ export type IdGeneratorName = keyof typeof ID_GENERATORS;
239
+ export declare function isIdGeneratorName(v: unknown): v is IdGeneratorName;
240
+ /** True for a UUID-shaped string. */
241
+ export declare function isUuid(v: unknown): v is string;
242
+ /**
243
+ * Remembers, per model instance/document, the plaintext of fields whose stored
244
+ * representation was just swapped for ciphertext, so integrations can restore
245
+ * plaintext after the write (or after a failed write) and never re-encrypt their
246
+ * own ciphertext on a retry.
247
+ */
248
+ export declare class PlaintextLedger<K extends object = object> {
249
+ private readonly map;
250
+ set(owner: K, attr: string, plaintext: string | null, ciphertext: string | null): void;
251
+ get(owner: K, attr: string): {
252
+ plaintext: string | null;
253
+ ciphertext: string | null;
254
+ } | undefined;
255
+ entries(owner: K): [string, {
256
+ plaintext: string | null;
257
+ ciphertext: string | null;
258
+ }][];
259
+ has(owner: K): boolean;
260
+ clear(owner: K): void;
261
+ /**
262
+ * The plaintext a current value stands for: if `current` is exactly the
263
+ * ciphertext (or sentinel) this ledger produced for `attr`, the remembered
264
+ * plaintext; otherwise `current` itself.
265
+ */
266
+ resolve(owner: K, attr: string, current: unknown): unknown;
267
+ }
268
+ export {};