@atlasauth/cli 0.5.0 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlasauth/cli changelog
2
2
 
3
+ ## 0.7.0 — 2026-10-24
4
+
5
+ ### Added
6
+
7
+ - `atlas migrate code --from <clerk|authjs|supabase|auth0|better-auth> [path]`: rewrites an app's auth code onto Atlas. A dry run with a diff unless `--yes`; prints what needs a manual look with file and line, the packages to add and remove, and the env vars to set; `--json`.
8
+ - `atlas info [path]`: CLI, Node and OS versions, the framework and Atlas SDK packages with update-available from npm, the configured instance (key prefixes only) and whether the app's publishable key belongs to it, API reachability and latency, and the preflight summary; `--json`; secrets redacted.
9
+ - `atlas actions gallery | show | install | installs | update | publish`: the Actions gallery. Secret values come from `--secrets-file` (dotenv), never argv.
10
+
11
+ ## 0.6.0 — 2026-10-23
12
+
13
+ ### Added
14
+
15
+ - `atlas import --from <auth0|clerk|supabase|firebase|cognito|authjs|workos|better-auth> <file>`: maps each provider's export onto the bulk import, with `--dry-run`, resumable upsert batches (`--state-file`), `--hashes`, `--hash-config` and `--create-orgs`.
16
+ - `atlas mcp install --cursor | --claude-code | --codex | --vscode`: adds the Atlas MCP server (docs search) to the agent's config.
17
+
3
18
  ## 0.5.0
4
19
 
5
20
  ### Added
package/README.md CHANGED
@@ -48,6 +48,11 @@ atlas init --product <name> [--domain <d>] [--instance-env development|produ
48
48
  atlas preflight [--instance <id> | --product <name>] [--fail-on error|warning]
49
49
  atlas env --product <name> --format dotenv|coolify|vercel
50
50
  atlas client rotate <client-id> [--now | --overlap <seconds>]
51
+ atlas import --from <vendor> <export-file> [--dry-run]
52
+ atlas migrate code --from <clerk|authjs|supabase|auth0|better-auth> [path] [--yes]
53
+ atlas info [path]
54
+ atlas actions list | deploy <file> | test <file> | gallery [query] | show <slug>
55
+ | install <slug> [--secrets-file f] | installs | update <id> | publish <template.json>
51
56
  ```
52
57
 
53
58
  Every command takes `--json` for raw JSON (otherwise a human table). Paginated
package/dist/args.d.ts CHANGED
@@ -67,6 +67,12 @@ declare const OPTIONS: {
67
67
  readonly trigger: {
68
68
  readonly type: "string";
69
69
  };
70
+ readonly 'secrets-file': {
71
+ readonly type: "string";
72
+ };
73
+ readonly draft: {
74
+ readonly type: "boolean";
75
+ };
70
76
  readonly product: {
71
77
  readonly type: "string";
72
78
  };
@@ -177,6 +183,39 @@ declare const OPTIONS: {
177
183
  readonly wait: {
178
184
  readonly type: "boolean";
179
185
  };
186
+ readonly from: {
187
+ readonly type: "string";
188
+ };
189
+ readonly 'batch-size': {
190
+ readonly type: "string";
191
+ };
192
+ readonly 'state-file': {
193
+ readonly type: "string";
194
+ };
195
+ readonly 'hash-config': {
196
+ readonly type: "string";
197
+ };
198
+ readonly hashes: {
199
+ readonly type: "string";
200
+ };
201
+ readonly 'create-orgs': {
202
+ readonly type: "boolean";
203
+ };
204
+ readonly cursor: {
205
+ readonly type: "boolean";
206
+ };
207
+ readonly 'claude-code': {
208
+ readonly type: "boolean";
209
+ };
210
+ readonly codex: {
211
+ readonly type: "boolean";
212
+ };
213
+ readonly vscode: {
214
+ readonly type: "boolean";
215
+ };
216
+ readonly global: {
217
+ readonly type: "boolean";
218
+ };
180
219
  };
181
220
  type OptionValue<O> = O extends {
182
221
  type: 'boolean';
package/dist/args.js CHANGED
@@ -39,6 +39,10 @@ const OPTIONS = {
39
39
  prune: { type: 'boolean' },
40
40
  // actions.
41
41
  trigger: { type: 'string' },
42
+ // actions install / update: secret values from a dotenv file, never argv.
43
+ 'secrets-file': { type: 'string' },
44
+ // actions publish: keep the new version a draft instead of submitting it.
45
+ draft: { type: 'boolean' },
42
46
  // init / preflight / env / client rotate.
43
47
  product: { type: 'string' },
44
48
  domain: { type: 'string' },
@@ -80,6 +84,19 @@ const OPTIONS = {
80
84
  map: { type: 'string' },
81
85
  'metadata-path': { type: 'string' },
82
86
  wait: { type: 'boolean' },
87
+ // import --from <vendor>.
88
+ from: { type: 'string' },
89
+ 'batch-size': { type: 'string' },
90
+ 'state-file': { type: 'string' },
91
+ 'hash-config': { type: 'string' },
92
+ hashes: { type: 'string' },
93
+ 'create-orgs': { type: 'boolean' },
94
+ // mcp install.
95
+ cursor: { type: 'boolean' },
96
+ 'claude-code': { type: 'boolean' },
97
+ codex: { type: 'boolean' },
98
+ vscode: { type: 'boolean' },
99
+ global: { type: 'boolean' },
83
100
  };
84
101
  /** Parse argv, turning parseArgs' own errors (unknown/invalid flag) into clean CliErrors. */
85
102
  function parse(argv) {
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":";;AA+FA,sBAeC;AAGD,kBAGC;AAGD,oBAOC;AAGD,sBAQC;AAzID,yCAAsC;AACtC,qCAAoC;AAEpC;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,UAAU;IACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACxC,qDAAqD;IACrD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,gBAAgB;IAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,YAAY;IACZ,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,0BAA0B;IAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,WAAW;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,0CAA0C;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,qFAAqF;IACrF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACpC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,+EAA+E;IAC/E,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACnC,mBAAmB;IACnB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,gCAAgC;IAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CACjB,CAAC;AAiBX,6FAA6F;AAC7F,SAAgB,KAAK,CAAC,IAAc;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;YACxC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,MAAgB,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,iBAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAgB,GAAG,CAAC,MAAc,EAAE,GAAiB;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,mFAAmF;AACnF,SAAgB,IAAI,CAAC,MAAc,EAAE,GAAiB;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,GAAG;SACP,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,yFAAyF;AACzF,SAAgB,KAAK,CAAC,MAAc;IAClC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,iBAAQ,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":";;AAgHA,sBAeC;AAGD,kBAGC;AAGD,oBAOC;AAGD,sBAQC;AA1JD,yCAAsC;AACtC,qCAAoC;AAEpC;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,UAAU;IACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACxC,qDAAqD;IACrD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,gBAAgB;IAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,YAAY;IACZ,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,0BAA0B;IAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,WAAW;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,0EAA0E;IAC1E,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,0EAA0E;IAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,0CAA0C;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,qFAAqF;IACrF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;IACpC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,+EAA+E;IAC/E,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACnC,mBAAmB;IACnB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,gCAAgC;IAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,0BAA0B;IAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,eAAe;IACf,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3B,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CACnB,CAAC;AAiBX,6FAA6F;AAC7F,SAAgB,KAAK,CAAC,IAAc;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;YACxC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,MAAgB,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,iBAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAgB,GAAG,CAAC,MAAc,EAAE,GAAiB;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,mFAAmF;AACnF,SAAgB,IAAI,CAAC,MAAc,EAAE,GAAiB;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,GAAG;SACP,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,yFAAyF;AACzF,SAAgB,KAAK,CAAC,MAAc;IAClC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,iBAAQ,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ParsedArgs } from '../args';
2
+ import type { RunContext } from '../context';
3
+ export declare function gallery(ctx: RunContext, args: ParsedArgs): Promise<number>;
4
+ export declare function show(ctx: RunContext, args: ParsedArgs): Promise<number>;
5
+ export declare function install(ctx: RunContext, args: ParsedArgs): Promise<number>;
6
+ export declare function installs(ctx: RunContext, args: ParsedArgs): Promise<number>;
7
+ export declare function update(ctx: RunContext, args: ParsedArgs): Promise<number>;
8
+ export declare function publish(ctx: RunContext, args: ParsedArgs): Promise<number>;
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gallery = gallery;
4
+ exports.show = show;
5
+ exports.install = install;
6
+ exports.installs = installs;
7
+ exports.update = update;
8
+ exports.publish = publish;
9
+ const node_path_1 = require("node:path");
10
+ const args_1 = require("../args");
11
+ const errors_1 = require("../errors");
12
+ const output_1 = require("../output");
13
+ const secrets_1 = require("../secrets");
14
+ const shared_1 = require("./shared");
15
+ /**
16
+ * The gallery half of `atlas actions`:
17
+ *
18
+ * gallery [query] [--trigger t] browse first-party and community templates
19
+ * show <slug> a template's description, secrets and code
20
+ * install <slug> [--secrets-file f] install as a DISABLED action (secrets from a dotenv file)
21
+ * installs actions from the gallery, with update status
22
+ * update <action-id> [--secrets-file f]
23
+ * move an installed action to the latest version
24
+ * publish <template.json> [--draft] create or version your own template and submit it
25
+ *
26
+ * Secret VALUES come from a dotenv file, never from argv (shell history).
27
+ */
28
+ const GALLERY_COLUMNS = [
29
+ { header: 'SLUG', get: (t) => t.slug },
30
+ { header: 'NAME', get: (t) => t.name },
31
+ { header: 'TRIGGER', get: (t) => t.trigger },
32
+ { header: 'BY', get: (t) => (t.author.first_party ? 'Atlas' : `${t.author.name}${t.verified ? ' ✓' : ''}`) },
33
+ { header: 'VERSION', get: (t) => t.latest_version },
34
+ { header: 'INSTALLS', get: (t) => t.install_count },
35
+ { header: 'CALLS OUT', get: (t) => (t.uses_http ? 'yes' : '') },
36
+ ];
37
+ const INSTALL_COLUMNS = [
38
+ { header: 'ACTION', get: (i) => i.action_id },
39
+ { header: 'NAME', get: (i) => i.action_name },
40
+ { header: 'TEMPLATE', get: (i) => i.template_slug },
41
+ { header: 'VERSION', get: (i) => i.installed_version },
42
+ { header: 'LATEST', get: (i) => i.latest_version ?? 'removed' },
43
+ { header: 'UPDATE', get: (i) => (i.update_available ? 'available' : '') },
44
+ { header: 'ENABLED', get: (i) => i.enabled },
45
+ { header: 'MISSING SECRETS', get: (i) => i.missing_secrets },
46
+ ];
47
+ function secretsFrom(ctx, args) {
48
+ const file = (0, args_1.str)(args.values, 'secrets-file');
49
+ if (!file)
50
+ return undefined;
51
+ return (0, secrets_1.parseDotenv)(ctx.readFile(file));
52
+ }
53
+ async function gallery(ctx, args) {
54
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
55
+ const q = args.positionals.slice(2).join(' ').trim() || undefined;
56
+ const trigger = (0, args_1.str)(args.values, 'trigger');
57
+ const page = await client.actionGallery.list({ q, trigger });
58
+ if ((0, shared_1.wantsJson)(args.values))
59
+ (0, output_1.printJson)(ctx.io, page);
60
+ else {
61
+ ctx.io.out((0, output_1.renderTable)(GALLERY_COLUMNS, page.data));
62
+ ctx.io.out('');
63
+ ctx.io.out("Details: 'atlas actions show <slug>'. Install: 'atlas actions install <slug> [--secrets-file .env.action]'.");
64
+ }
65
+ return 0;
66
+ }
67
+ async function show(ctx, args) {
68
+ const slug = (0, shared_1.requireArg)(args.positionals, 2, 'slug');
69
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
70
+ const t = await client.actionGallery.get(slug);
71
+ if ((0, shared_1.wantsJson)(args.values)) {
72
+ (0, output_1.printJson)(ctx.io, t);
73
+ return 0;
74
+ }
75
+ ctx.io.out(`${t.name} (${t.slug} ${t.latest_version}, ${t.trigger})`);
76
+ ctx.io.out(`By ${t.author.first_party ? 'Atlas' : t.author.name}${t.verified && !t.author.first_party ? ' (verified)' : ''} · ${t.license} · ${t.install_count} install(s)`);
77
+ ctx.io.out('');
78
+ ctx.io.out(t.summary);
79
+ if (t.uses_http)
80
+ ctx.io.out('Sends outbound HTTPS requests (after the sign-in completes).');
81
+ ctx.io.out('');
82
+ ctx.io.out('Secrets:');
83
+ if (t.secrets.length === 0)
84
+ ctx.io.out(' (none)');
85
+ for (const s of t.secrets)
86
+ ctx.io.out(` ${s.name}${s.required ? ' (required)' : ''} ${s.description}`);
87
+ ctx.io.out('');
88
+ ctx.io.out('Code:');
89
+ ctx.io.out(t.code.replace(/^/gm, ' '));
90
+ return 0;
91
+ }
92
+ async function install(ctx, args) {
93
+ const slug = (0, shared_1.requireArg)(args.positionals, 2, 'slug');
94
+ const secrets = secretsFrom(ctx, args);
95
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
96
+ const res = await client.actionGallery.install(slug, {
97
+ ...((0, args_1.str)(args.values, 'name') ? { name: (0, args_1.str)(args.values, 'name') } : {}),
98
+ ...(secrets ? { secrets } : {}),
99
+ });
100
+ if ((0, shared_1.wantsJson)(args.values)) {
101
+ (0, output_1.printJson)(ctx.io, res);
102
+ return 0;
103
+ }
104
+ ctx.io.out(`Installed ${res.template.slug} ${res.template.version} as action ${res.action.id} (${res.action.name}), DISABLED.`);
105
+ if (res.missing_secrets.length > 0) {
106
+ ctx.io.out(`Still needs: ${res.missing_secrets.join(', ')}. Set them with 'atlas actions update ${res.action.id} --secrets-file <file>' or in the dashboard.`);
107
+ }
108
+ ctx.io.out(`Next: bind it to the ${res.action.trigger} flow and enable it (dashboard → Actions), after a dry run.`);
109
+ return 0;
110
+ }
111
+ async function installs(ctx, args) {
112
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
113
+ const page = await client.actionGallery.installs();
114
+ if ((0, shared_1.wantsJson)(args.values))
115
+ (0, output_1.printJson)(ctx.io, page);
116
+ else
117
+ ctx.io.out((0, output_1.renderTable)(INSTALL_COLUMNS, page.data));
118
+ return 0;
119
+ }
120
+ async function update(ctx, args) {
121
+ const id = (0, shared_1.requireArg)(args.positionals, 2, 'action-id');
122
+ const secrets = secretsFrom(ctx, args);
123
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
124
+ const res = await client.actionGallery.update(id, secrets ? { secrets } : {});
125
+ if ((0, shared_1.wantsJson)(args.values))
126
+ (0, output_1.printJson)(ctx.io, res);
127
+ else if (res.updated)
128
+ ctx.io.out(`Updated ${id} from ${res.from_version} to ${res.version}.`);
129
+ else
130
+ ctx.io.out(`${id} already runs the latest version (${res.version}).`);
131
+ return 0;
132
+ }
133
+ async function publish(ctx, args) {
134
+ const file = (0, shared_1.requireArg)(args.positionals, 2, 'template.json');
135
+ let manifest;
136
+ try {
137
+ manifest = JSON.parse(ctx.readFile(file));
138
+ }
139
+ catch (err) {
140
+ throw new errors_1.CliError(`${file} is not valid JSON (${err.message}).`);
141
+ }
142
+ for (const key of ['slug', 'name', 'trigger', 'version']) {
143
+ if (!manifest[key])
144
+ throw new errors_1.CliError(`${file} needs "${key}".`);
145
+ }
146
+ const code = manifest.code ?? (manifest.code_file ? ctx.readFile((0, node_path_1.resolve)((0, node_path_1.dirname)(file), manifest.code_file)) : undefined);
147
+ if (!code?.trim())
148
+ throw new errors_1.CliError(`${file} needs "code" or "code_file".`);
149
+ const submit = args.values.draft !== true;
150
+ const { client } = (0, shared_1.requireClient)(ctx, args.values);
151
+ const mine = await client.actionTemplates.list();
152
+ const existing = mine.data.find((t) => t.slug === manifest.slug);
153
+ const version = { version: manifest.version, code, secrets: manifest.secrets ?? [], changelog: manifest.changelog, submit };
154
+ let result;
155
+ if (existing) {
156
+ const listing = {
157
+ name: manifest.name,
158
+ summary: manifest.summary,
159
+ description: manifest.description,
160
+ category: manifest.category,
161
+ tags: manifest.tags,
162
+ license: manifest.license,
163
+ repository_url: manifest.repository_url,
164
+ ...(manifest.author_name ? { author_name: manifest.author_name } : {}),
165
+ };
166
+ await client.actionTemplates.update(existing.id, listing);
167
+ result = await client.actionTemplates.addVersion(existing.id, version);
168
+ if (!(0, shared_1.wantsJson)(args.values))
169
+ ctx.io.out(`Added ${manifest.slug} ${manifest.version}${submit ? ' and submitted it for review' : ' as a draft'}.`);
170
+ }
171
+ else {
172
+ if (!manifest.author_name)
173
+ throw new errors_1.CliError(`${file} needs "author_name" (shown as the author) for a new template.`);
174
+ const body = {
175
+ slug: manifest.slug,
176
+ name: manifest.name,
177
+ author_name: manifest.author_name,
178
+ trigger: manifest.trigger,
179
+ summary: manifest.summary,
180
+ description: manifest.description,
181
+ category: manifest.category,
182
+ tags: manifest.tags,
183
+ license: manifest.license,
184
+ repository_url: manifest.repository_url,
185
+ ...version,
186
+ };
187
+ result = await client.actionTemplates.create(body);
188
+ if (!(0, shared_1.wantsJson)(args.values))
189
+ ctx.io.out(`Created ${manifest.slug} ${manifest.version}${submit ? ' and submitted it for review' : ' as a draft'}.`);
190
+ }
191
+ if ((0, shared_1.wantsJson)(args.values))
192
+ (0, output_1.printJson)(ctx.io, result);
193
+ else if (submit)
194
+ ctx.io.out('It is listed in the gallery once approved; follow its status with --json or in the dashboard.');
195
+ return 0;
196
+ }
197
+ //# sourceMappingURL=actions-gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-gallery.js","sourceRoot":"","sources":["../../src/commands/actions-gallery.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ import type { RunContext } from '../context';
7
7
  * deploy <file> --trigger <t> upload a file's code as a new action
8
8
  * test <file> [--trigger <t>] dry-run the file OFFLINE through @atlasauth/actions
9
9
  * logs <id> where to find an action's execution history
10
+ * gallery | show | install | installs | update | publish
11
+ * the Actions gallery (see ./actions-gallery.ts)
10
12
  */
11
13
  export declare function actions(ctx: RunContext, args: ParsedArgs): Promise<number>;
@@ -7,6 +7,7 @@ const args_1 = require("../args");
7
7
  const errors_1 = require("../errors");
8
8
  const output_1 = require("../output");
9
9
  const shared_1 = require("./shared");
10
+ const actions_gallery_1 = require("./actions-gallery");
10
11
  const COLUMNS = [
11
12
  { header: 'ID', get: (a) => a.id },
12
13
  { header: 'NAME', get: (a) => a.name },
@@ -32,6 +33,8 @@ function parseTrigger(raw) {
32
33
  * deploy <file> --trigger <t> upload a file's code as a new action
33
34
  * test <file> [--trigger <t>] dry-run the file OFFLINE through @atlasauth/actions
34
35
  * logs <id> where to find an action's execution history
36
+ * gallery | show | install | installs | update | publish
37
+ * the Actions gallery (see ./actions-gallery.ts)
35
38
  */
36
39
  async function actions(ctx, args) {
37
40
  const sub = args.positionals[1];
@@ -111,10 +114,22 @@ async function actions(ctx, args) {
111
114
  ctx.io.out(lines.join('\n'));
112
115
  return 0;
113
116
  }
117
+ case 'gallery':
118
+ return (0, actions_gallery_1.gallery)(ctx, args);
119
+ case 'show':
120
+ return (0, actions_gallery_1.show)(ctx, args);
121
+ case 'install':
122
+ return (0, actions_gallery_1.install)(ctx, args);
123
+ case 'installs':
124
+ return (0, actions_gallery_1.installs)(ctx, args);
125
+ case 'update':
126
+ return (0, actions_gallery_1.update)(ctx, args);
127
+ case 'publish':
128
+ return (0, actions_gallery_1.publish)(ctx, args);
114
129
  default:
115
130
  throw new errors_1.CliError(sub
116
- ? `Unknown subcommand 'actions ${sub}'. Try: list, deploy, test, logs.`
117
- : 'actions needs a subcommand: list, deploy, test, logs.');
131
+ ? `Unknown subcommand 'actions ${sub}'. Try: list, deploy, test, logs, gallery, show, install, installs, update, publish.`
132
+ : 'actions needs a subcommand: list, deploy, test, logs, gallery, show, install, installs, update, publish.');
118
133
  }
119
134
  }
120
135
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/commands/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/commands/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ParsedArgs } from '../args';
2
+ import type { RunContext } from '../context';
3
+ export declare function importUsers(ctx: RunContext, args: ParsedArgs): Promise<number>;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.importUsers = importUsers;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const node_fs_1 = require("node:fs");
6
+ const args_1 = require("../args");
7
+ const errors_1 = require("../errors");
8
+ const output_1 = require("../output");
9
+ const project_1 = require("../project");
10
+ const vendors_1 = require("../import/vendors");
11
+ const shared_1 = require("./shared");
12
+ async function importUsers(ctx, args) {
13
+ const vendor = (0, args_1.str)(args.values, 'from');
14
+ if (!vendor || !vendors_1.VENDORS.includes(vendor)) {
15
+ throw new errors_1.CliError(`import needs --from <${vendors_1.VENDORS.join('|')}>.`);
16
+ }
17
+ const file = args.positionals[1];
18
+ if (!file)
19
+ throw new errors_1.CliError(`import needs the export file: atlas import --from ${vendor} <file>`);
20
+ const text = ctx.readFile(file);
21
+ let doc;
22
+ let hashes;
23
+ try {
24
+ doc = (0, vendors_1.parseExport)(text, file);
25
+ const hashesFile = (0, args_1.str)(args.values, 'hashes');
26
+ if (hashesFile)
27
+ hashes = (0, vendors_1.parseExport)(ctx.readFile(hashesFile), hashesFile);
28
+ }
29
+ catch (err) {
30
+ throw new errors_1.CliError(err instanceof Error ? err.message : String(err));
31
+ }
32
+ const { rows, warnings } = (0, vendors_1.mapExport)(vendor, doc, hashes);
33
+ const json = (0, shared_1.wantsJson)(args.values);
34
+ const summary = (0, vendors_1.summarize)(rows);
35
+ let hashConfig;
36
+ const hashConfigFile = (0, args_1.str)(args.values, 'hash-config');
37
+ if (hashConfigFile) {
38
+ try {
39
+ hashConfig = JSON.parse(ctx.readFile(hashConfigFile));
40
+ }
41
+ catch {
42
+ throw new errors_1.CliError(`--hash-config ${hashConfigFile} is not valid JSON.`);
43
+ }
44
+ }
45
+ if (vendor === 'firebase' && (summary.with_password_hash ?? 0) > 0 && !hashConfig && !args.values['dry-run']) {
46
+ throw new errors_1.CliError('Firebase password hashes need the project hash parameters. Copy them from the Firebase console (Authentication > Users > Password hash parameters) into a JSON file and pass --hash-config <file>.');
47
+ }
48
+ if (args.values['dry-run']) {
49
+ if (json)
50
+ (0, output_1.printJson)(ctx.io, { vendor, summary, warnings, sample: rows.slice(0, 3).map(redact) });
51
+ else {
52
+ ctx.io.out(`Dry run: ${rows.length} user(s) mapped from ${vendor}. Nothing was sent.`);
53
+ for (const [k, v] of Object.entries(summary))
54
+ ctx.io.out(` ${k.replace(/_/g, ' ')}: ${v}`);
55
+ for (const w of warnings)
56
+ ctx.io.out(` note: ${w}`);
57
+ }
58
+ return 0;
59
+ }
60
+ if (rows.length === 0)
61
+ throw new errors_1.CliError('The export contains no users with an email address.');
62
+ const batchSize = Math.min(Math.max(Number((0, args_1.str)(args.values, 'batch-size') ?? 100) || 100, 1), 100);
63
+ const statePath = (0, args_1.str)(args.values, 'state-file') ?? `${file}.atlas-import.json`;
64
+ const sha = (0, node_crypto_1.createHash)('sha256').update(text).digest('hex');
65
+ let state = { vendor, input_sha256: sha, next_index: 0, total: rows.length, succeeded: 0, failed: 0, jobs: [] };
66
+ if ((0, node_fs_1.existsSync)(statePath)) {
67
+ const saved = JSON.parse((0, node_fs_1.readFileSync)(statePath, 'utf8'));
68
+ if (saved.input_sha256 !== sha || saved.vendor !== vendor) {
69
+ throw new errors_1.CliError(`${statePath} belongs to a different export. Delete it or pass --state-file to start over.`);
70
+ }
71
+ state = saved;
72
+ if (state.next_index >= rows.length) {
73
+ ctx.io.out(`Already imported: ${state.succeeded} succeeded, ${state.failed} failed. Delete ${statePath} to run again.`);
74
+ return 0;
75
+ }
76
+ ctx.io.err(`Resuming at user ${state.next_index + 1} of ${rows.length}.`);
77
+ }
78
+ const auth = (0, shared_1.resolveAuth)(ctx, args.values);
79
+ const http = (0, project_1.httpFor)(ctx, { secretKey: auth.secretKey, apiUrl: auth.apiUrl });
80
+ for (const w of warnings)
81
+ ctx.io.err(`note: ${w}`);
82
+ while (state.next_index < rows.length) {
83
+ const batch = rows.slice(state.next_index, state.next_index + batchSize);
84
+ const body = { users: batch, upsert: true };
85
+ if (args.values['create-orgs'])
86
+ body.create_organizations = true;
87
+ if (hashConfig)
88
+ body.password_hash_config = { firebase: hashConfig };
89
+ let job = await http.post('/v1/user_imports', body);
90
+ // A batch over the inline limit is queued; poll it to completion.
91
+ while (job.status === 'pending' || job.status === 'processing') {
92
+ await (ctx.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms))))(2000);
93
+ job = await http.get(`/v1/jobs/${job.id}`);
94
+ }
95
+ state.next_index += batch.length;
96
+ state.succeeded += job.succeeded;
97
+ state.failed += job.failed;
98
+ state.jobs.push(job.id);
99
+ (0, node_fs_1.writeFileSync)(statePath, JSON.stringify(state, null, 2));
100
+ if (!json)
101
+ ctx.io.err(` ${state.next_index}/${rows.length} sent (job ${job.id}: ${job.succeeded} ok, ${job.failed} issues)`);
102
+ }
103
+ if (json)
104
+ (0, output_1.printJson)(ctx.io, { ...state, summary, warnings });
105
+ else {
106
+ ctx.io.out(`Imported ${rows.length} user(s) from ${vendor}: ${state.succeeded} created or updated, ${state.failed} row issue(s).`);
107
+ if (state.failed)
108
+ ctx.io.out(`Per-row issues: GET /v1/jobs/<job-id>/errors for jobs ${state.jobs.join(', ')}`);
109
+ }
110
+ return state.failed > 0 ? 2 : 0;
111
+ }
112
+ /** A dry-run sample never prints a password hash. */
113
+ function redact(row) {
114
+ return row.password_hash ? { ...row, password_hash: '[redacted]', ...(row.password_salt ? { password_salt: '[redacted]' } : {}) } : row;
115
+ }
116
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}