@pattern-stack/codegen 0.6.4 → 0.6.6
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/CHANGELOG.md +20 -0
- package/README.md +2 -0
- package/dist/runtime/subsystems/auth/auth-oauth-state.schema.d.ts +81 -0
- package/dist/runtime/subsystems/auth/auth-oauth-state.schema.js +12 -0
- package/dist/runtime/subsystems/auth/auth-oauth-state.schema.js.map +1 -0
- package/dist/runtime/subsystems/auth/auth.module.d.ts +39 -24
- package/dist/runtime/subsystems/auth/auth.module.js +247 -14
- package/dist/runtime/subsystems/auth/auth.module.js.map +1 -1
- package/dist/runtime/subsystems/auth/auth.tokens.d.ts +15 -2
- package/dist/runtime/subsystems/auth/auth.tokens.js +9 -1
- package/dist/runtime/subsystems/auth/auth.tokens.js.map +1 -1
- package/dist/runtime/subsystems/auth/backends/encryption-key/env.d.ts +1 -1
- package/dist/runtime/subsystems/auth/backends/encryption-key/env.js +1 -1
- package/dist/runtime/subsystems/auth/backends/encryption-key/env.js.map +1 -1
- package/dist/runtime/subsystems/auth/backends/state-store.drizzle-backend.d.ts +23 -0
- package/dist/runtime/subsystems/auth/backends/state-store.drizzle-backend.js +68 -0
- package/dist/runtime/subsystems/auth/backends/state-store.drizzle-backend.js.map +1 -0
- package/dist/runtime/subsystems/auth/backends/state-store.memory-backend.d.ts +21 -0
- package/dist/runtime/subsystems/auth/backends/state-store.memory-backend.js +51 -0
- package/dist/runtime/subsystems/auth/backends/state-store.memory-backend.js.map +1 -0
- package/dist/runtime/subsystems/auth/controllers/auth.controller.d.ts +31 -0
- package/dist/runtime/subsystems/auth/controllers/auth.controller.js +137 -0
- package/dist/runtime/subsystems/auth/controllers/auth.controller.js.map +1 -0
- package/dist/runtime/subsystems/auth/index.d.ts +13 -4
- package/dist/runtime/subsystems/auth/index.js +254 -15
- package/dist/runtime/subsystems/auth/index.js.map +1 -1
- package/dist/runtime/subsystems/auth/protocols/auth-strategy.d.ts +1 -1
- package/dist/runtime/subsystems/auth/protocols/integration-store.d.ts +37 -2
- package/dist/runtime/subsystems/auth/protocols/oauth-state-store.d.ts +33 -7
- package/dist/runtime/subsystems/auth/protocols/oauth-state-store.js +12 -0
- package/dist/runtime/subsystems/auth/protocols/oauth-state-store.js.map +1 -1
- package/dist/runtime/subsystems/auth/protocols/provider-strategy.d.ts +54 -0
- package/dist/runtime/subsystems/auth/protocols/provider-strategy.js +1 -0
- package/dist/runtime/subsystems/auth/protocols/provider-strategy.js.map +1 -0
- package/dist/runtime/subsystems/auth/protocols/user-context.d.ts +24 -0
- package/dist/runtime/subsystems/auth/protocols/user-context.js +1 -0
- package/dist/runtime/subsystems/auth/protocols/user-context.js.map +1 -0
- package/dist/runtime/subsystems/auth/runtime/oauth2-refresh.strategy.d.ts +2 -2
- package/dist/runtime/subsystems/auth/runtime/oauth2-refresh.strategy.js.map +1 -1
- package/dist/runtime/subsystems/auth/runtime/session-expired.error.d.ts +2 -2
- package/dist/runtime/subsystems/auth/runtime/session-expired.error.js.map +1 -1
- package/dist/runtime/subsystems/auth/runtime/with-auth-retry.d.ts +1 -1
- package/dist/runtime/subsystems/auth/runtime/with-auth-retry.js.map +1 -1
- package/dist/runtime/subsystems/index.d.ts +9 -4
- package/dist/runtime/subsystems/index.js +248 -15
- package/dist/runtime/subsystems/index.js.map +1 -1
- package/dist/runtime/subsystems/sync/deep-equal.differ.js.map +1 -1
- package/dist/runtime/subsystems/sync/execute-sync.use-case.js.map +1 -1
- package/dist/runtime/subsystems/sync/index.js.map +1 -1
- package/dist/runtime/subsystems/sync/sync-change-source.protocol.d.ts +1 -1
- package/dist/runtime/subsystems/sync/sync-cursor-store.memory-backend.js.map +1 -1
- package/dist/runtime/subsystems/sync/sync-loopback.protocol.d.ts +3 -4
- package/dist/runtime/subsystems/sync/sync-run-recorder.drizzle-backend.js.map +1 -1
- package/dist/runtime/subsystems/sync/sync.module.js.map +1 -1
- package/dist/src/cli/index.js +574 -142
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/runtime/subsystems/auth/auth-oauth-state.schema.ts +30 -0
- package/runtime/subsystems/auth/auth.module.ts +89 -32
- package/runtime/subsystems/auth/auth.tokens.ts +14 -1
- package/runtime/subsystems/auth/backends/encryption-key/env.ts +3 -3
- package/runtime/subsystems/auth/backends/state-store.drizzle-backend.ts +83 -0
- package/runtime/subsystems/auth/backends/state-store.memory-backend.ts +76 -0
- package/runtime/subsystems/auth/controllers/auth.controller.ts +155 -0
- package/runtime/subsystems/auth/index.ts +43 -4
- package/runtime/subsystems/auth/protocols/auth-strategy.ts +1 -1
- package/runtime/subsystems/auth/protocols/integration-store.ts +38 -1
- package/runtime/subsystems/auth/protocols/oauth-state-store.ts +38 -6
- package/runtime/subsystems/auth/protocols/provider-strategy.ts +48 -0
- package/runtime/subsystems/auth/protocols/user-context.ts +22 -0
- package/runtime/subsystems/auth/runtime/oauth2-refresh.strategy.ts +2 -2
- package/runtime/subsystems/auth/runtime/session-expired.error.ts +2 -2
- package/runtime/subsystems/auth/runtime/with-auth-retry.ts +1 -1
- package/runtime/subsystems/index.ts +17 -2
- package/runtime/subsystems/sync/deep-equal.differ.ts +1 -1
- package/runtime/subsystems/sync/execute-sync.use-case.ts +1 -1
- package/runtime/subsystems/sync/sync-change-source.protocol.ts +1 -1
- package/runtime/subsystems/sync/sync-cursor-store.memory-backend.ts +1 -1
- package/runtime/subsystems/sync/sync-loopback.protocol.ts +3 -4
- package/runtime/subsystems/sync/sync-run-recorder.drizzle-backend.ts +1 -1
- package/templates/subsystem/auth/app-module-hook.ejs.t +21 -0
- package/templates/subsystem/auth/auth-oauth-state.schema.ejs.t +35 -0
- package/templates/subsystem/auth/env-config.ejs.t +20 -0
- package/templates/subsystem/auth/prompt.js +46 -0
- package/templates/subsystem/auth-config/codegen-config-auth-block.ejs.t +20 -0
- package/templates/subsystem/auth-config/prompt.js +20 -0
- package/templates/subsystem/auth-integrations/app-module-hook.ejs.t +16 -0
- package/templates/subsystem/auth-integrations/prompt.js +23 -0
- package/dist/runtime/subsystems/auth/backends/oauth-state-store/in-memory.d.ts +0 -24
- package/dist/runtime/subsystems/auth/backends/oauth-state-store/in-memory.js +0 -24
- package/dist/runtime/subsystems/auth/backends/oauth-state-store/in-memory.js.map +0 -1
- package/runtime/subsystems/auth/backends/oauth-state-store/in-memory.ts +0 -42
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { IOAuthStateStore, OAuthStateEntry } from '../../protocols/oauth-state-store.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* In-memory OAuth state store.
|
|
5
|
-
*
|
|
6
|
-
* Single-process dev store. Production deployments need a Redis-backed impl
|
|
7
|
-
* (follow-up) so state survives restarts + is shared across workers.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
interface InMemoryOAuthStateStoreOptions {
|
|
11
|
-
/** TTL in ms. Entries older than this are treated as absent. Default 10min. */
|
|
12
|
-
ttlMs?: number;
|
|
13
|
-
now?: () => number;
|
|
14
|
-
}
|
|
15
|
-
declare class InMemoryOAuthStateStore implements IOAuthStateStore {
|
|
16
|
-
private readonly store;
|
|
17
|
-
private readonly ttlMs;
|
|
18
|
-
private readonly now;
|
|
19
|
-
constructor(opts?: InMemoryOAuthStateStoreOptions);
|
|
20
|
-
put(state: string, entry: OAuthStateEntry): Promise<void>;
|
|
21
|
-
consume(state: string): Promise<OAuthStateEntry | null>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { InMemoryOAuthStateStore, type InMemoryOAuthStateStoreOptions };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// runtime/subsystems/auth/backends/oauth-state-store/in-memory.ts
|
|
2
|
-
var InMemoryOAuthStateStore = class {
|
|
3
|
-
store = /* @__PURE__ */ new Map();
|
|
4
|
-
ttlMs;
|
|
5
|
-
now;
|
|
6
|
-
constructor(opts = {}) {
|
|
7
|
-
this.ttlMs = opts.ttlMs ?? 10 * 60 * 1e3;
|
|
8
|
-
this.now = opts.now ?? (() => Date.now());
|
|
9
|
-
}
|
|
10
|
-
async put(state, entry) {
|
|
11
|
-
this.store.set(state, { entry, expiresAt: this.now() + this.ttlMs });
|
|
12
|
-
}
|
|
13
|
-
async consume(state) {
|
|
14
|
-
const slot = this.store.get(state);
|
|
15
|
-
if (!slot) return null;
|
|
16
|
-
this.store.delete(state);
|
|
17
|
-
if (slot.expiresAt <= this.now()) return null;
|
|
18
|
-
return slot.entry;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
InMemoryOAuthStateStore
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=in-memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../runtime/subsystems/auth/backends/oauth-state-store/in-memory.ts"],"sourcesContent":["/**\n * In-memory OAuth state store.\n *\n * Single-process dev store. Production deployments need a Redis-backed impl\n * (follow-up) so state survives restarts + is shared across workers.\n */\nimport type {\n IOAuthStateStore,\n OAuthStateEntry,\n} from '../../protocols/oauth-state-store';\n\nexport interface InMemoryOAuthStateStoreOptions {\n /** TTL in ms. Entries older than this are treated as absent. Default 10min. */\n ttlMs?: number;\n now?: () => number;\n}\n\nexport class InMemoryOAuthStateStore implements IOAuthStateStore {\n private readonly store = new Map<\n string,\n { entry: OAuthStateEntry; expiresAt: number }\n >();\n private readonly ttlMs: number;\n private readonly now: () => number;\n\n constructor(opts: InMemoryOAuthStateStoreOptions = {}) {\n this.ttlMs = opts.ttlMs ?? 10 * 60 * 1000;\n this.now = opts.now ?? (() => Date.now());\n }\n\n async put(state: string, entry: OAuthStateEntry): Promise<void> {\n this.store.set(state, { entry, expiresAt: this.now() + this.ttlMs });\n }\n\n async consume(state: string): Promise<OAuthStateEntry | null> {\n const slot = this.store.get(state);\n if (!slot) return null;\n this.store.delete(state);\n if (slot.expiresAt <= this.now()) return null;\n return slot.entry;\n }\n}\n"],"mappings":";AAiBO,IAAM,0BAAN,MAA0D;AAAA,EAC9C,QAAQ,oBAAI,IAG3B;AAAA,EACe;AAAA,EACA;AAAA,EAEjB,YAAY,OAAuC,CAAC,GAAG;AACrD,SAAK,QAAQ,KAAK,SAAS,KAAK,KAAK;AACrC,SAAK,MAAM,KAAK,QAAQ,MAAM,KAAK,IAAI;AAAA,EACzC;AAAA,EAEA,MAAM,IAAI,OAAe,OAAuC;AAC9D,SAAK,MAAM,IAAI,OAAO,EAAE,OAAO,WAAW,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,QAAQ,OAAgD;AAC5D,UAAM,OAAO,KAAK,MAAM,IAAI,KAAK;AACjC,QAAI,CAAC,KAAM,QAAO;AAClB,SAAK,MAAM,OAAO,KAAK;AACvB,QAAI,KAAK,aAAa,KAAK,IAAI,EAAG,QAAO;AACzC,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory OAuth state store.
|
|
3
|
-
*
|
|
4
|
-
* Single-process dev store. Production deployments need a Redis-backed impl
|
|
5
|
-
* (follow-up) so state survives restarts + is shared across workers.
|
|
6
|
-
*/
|
|
7
|
-
import type {
|
|
8
|
-
IOAuthStateStore,
|
|
9
|
-
OAuthStateEntry,
|
|
10
|
-
} from '../../protocols/oauth-state-store';
|
|
11
|
-
|
|
12
|
-
export interface InMemoryOAuthStateStoreOptions {
|
|
13
|
-
/** TTL in ms. Entries older than this are treated as absent. Default 10min. */
|
|
14
|
-
ttlMs?: number;
|
|
15
|
-
now?: () => number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class InMemoryOAuthStateStore implements IOAuthStateStore {
|
|
19
|
-
private readonly store = new Map<
|
|
20
|
-
string,
|
|
21
|
-
{ entry: OAuthStateEntry; expiresAt: number }
|
|
22
|
-
>();
|
|
23
|
-
private readonly ttlMs: number;
|
|
24
|
-
private readonly now: () => number;
|
|
25
|
-
|
|
26
|
-
constructor(opts: InMemoryOAuthStateStoreOptions = {}) {
|
|
27
|
-
this.ttlMs = opts.ttlMs ?? 10 * 60 * 1000;
|
|
28
|
-
this.now = opts.now ?? (() => Date.now());
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async put(state: string, entry: OAuthStateEntry): Promise<void> {
|
|
32
|
-
this.store.set(state, { entry, expiresAt: this.now() + this.ttlMs });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async consume(state: string): Promise<OAuthStateEntry | null> {
|
|
36
|
-
const slot = this.store.get(state);
|
|
37
|
-
if (!slot) return null;
|
|
38
|
-
this.store.delete(state);
|
|
39
|
-
if (slot.expiresAt <= this.now()) return null;
|
|
40
|
-
return slot.entry;
|
|
41
|
-
}
|
|
42
|
-
}
|