instant-cli 0.22.172 → 0.22.173
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/.turbo/turbo-build.log
CHANGED
package/README.md
CHANGED
|
@@ -57,6 +57,25 @@ cd client/sandbox/cli-nodejs
|
|
|
57
57
|
INSTANT_CLI_DEV=1 npx instant-cli ...
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
## Testing local builds
|
|
61
|
+
|
|
62
|
+
You can link a local build of `instant-cli` globally so it's available as a regular command:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd client/packages/cli
|
|
66
|
+
pnpm build
|
|
67
|
+
pnpm link --global
|
|
68
|
+
which instant-cli # should point to your pnpm global bin dir
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Now you can run `instant-cli` anywhere and it will use your local build.
|
|
72
|
+
|
|
73
|
+
To unlink:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pnpm unlink --global instant-cli
|
|
77
|
+
```
|
|
78
|
+
|
|
60
79
|
# Questions?
|
|
61
80
|
|
|
62
81
|
If you have any questions, feel free to drop us a line on our [Discord](https://discord.com/invite/VU53p7uQcE)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderSchemaPlan.d.ts","sourceRoot":"","sources":["../src/renderSchemaPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAM7B,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAmE7D,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAiBD,KAAK,gBAAgB,GACjB,WAAW,GACX;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,UAAU,GAAI,OAAO,WAAW,EAAE,KAAG,gBAAgB,EAgEjE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,WAAW,gBAAgB,EAAE,kBAWxE,CAAC;AAaF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,gBAAgB,EAAE,EAC7B,YAAY,aAAa,EAAE,KAC1B,MAAM,
|
|
1
|
+
{"version":3,"file":"renderSchemaPlan.d.ts","sourceRoot":"","sources":["../src/renderSchemaPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAM7B,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAmE7D,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAiBD,KAAK,gBAAgB,GACjB,WAAW,GACX;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,UAAU,GAAI,OAAO,WAAW,EAAE,KAAG,gBAAgB,EAgEjE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,WAAW,gBAAgB,EAAE,kBAWxE,CAAC;AAaF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,gBAAgB,EAAE,EAC7B,YAAY,aAAa,EAAE,KAC1B,MAAM,EAyIR,CAAC"}
|
package/dist/renderSchemaPlan.js
CHANGED
|
@@ -153,6 +153,9 @@ export const renderSchemaPlan = (planSteps, prevAttrs) => {
|
|
|
153
153
|
getRelationship(step.cardinality, step['unique?'])
|
|
154
154
|
.join(' <-> ')
|
|
155
155
|
.toUpperCase());
|
|
156
|
+
if (step['required?']) {
|
|
157
|
+
addSecondaryLine(' REQUIRED');
|
|
158
|
+
}
|
|
156
159
|
}
|
|
157
160
|
else {
|
|
158
161
|
addLine(`${chalk.bgGreen.black(' + CREATE ATTR ')} ${createDotName(step)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderSchemaPlan.js","sourceRoot":"","sources":["../src/renderSchemaPlan.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,MAAM,gBAAgB,GAAG,CACvB,EAAmC,EACnC,iBAAmC,EAC3B,EAAE;IACV,IAAI,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB;QAC/B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS;gBACvD,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,QAAQ,CACvD,CAAC;QACJ,CAAC,CAAC,IAAI,IAAI;QACZ,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,UAAU,GAA2C,QAAQ,CAAC;IAElE,IACE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,QAAQ;QAC5C,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EACtE,CAAC;QACD,UAAU,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,EAAE,CAAC;QACZ,2BAA2B;QAC3B,IACE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,QAAQ;YAC5C,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAC7C,CAAC;YACD,UAAU,GAAG,gBAAgB,CAAC;QAChC,CAAC;QAED,YAAY,GAAG,QAAQ,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5F,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CACV,kBAAkB,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,mBAAmB,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,IAAI,CACV,kBAAkB,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,mBAAmB,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,GAAG,CACvG,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CACV,6BAA6B,OAAO,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,GAAG,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,IAAI,CACV,qCAAqC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtJ,CAAC,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,eAAe,GAAG,CACtB,WAA2B,EAC3B,MAAe,EACL,EAAE;IACZ,IAAI,WAAW,KAAK,MAAM,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,WAAW,KAAK,KAAK,IAAI,MAAM;QAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,WAAW,KAAK,MAAM,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,WAAW,KAAK,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC1C,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAsB,EAAE;IACrE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC5D,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,aAAa,EAAE,EAAuB,EAAE,UAAU,EAAE,EAAmB,EAAE,CAC5E,CAAC;IACF,qBAAqB;IACrB,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAmC,CACpC,CAAC;IAEF,MAAM,SAAS,GAAuB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAC1E,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,yBAAyB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACrE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,yBAAyB,EAAE,CAAC;YAC9B,OAAO;gBACL;oBACE,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;oBAC7C,UAAU,EAAE,UAAU;iBACwB;aACjD,CAAC;QACJ,CAAC;QAED,MAAM,yBAAyB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,yBAAyB,EAAE,CAAC;YAC9B,OAAO;gBACL;oBACE,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;oBAC7C,UAAU,EAAE,UAAU;iBACwB;aACjD,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,SAA6B,EAAE,EAAE;IAC3E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC;gBACxB,UAAU,EAAE,6CAA6C,IAAI,CAAC,SAAS,GAAG;aAC3E,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,iBAAiB,CAAC,yBAAyB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,EAAE;IAC1C,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,IAAwC,EAAE,EAAE;IAC5D,OAAO,CACL,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,QAAQ;QAC9C,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC5E,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAA6B,EAC7B,SAA2B,EACjB,EAAE;IACZ,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,OAAO,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,kBAAkB;gBACrB,OAAO,CACL,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CACnE,CAAC;gBACF,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAClE,gBAAgB,CAAC,UAAU,CAAC,CAC7B,CAAC;gBACF,MAAM;YACR,KAAK,kBAAkB;gBACrB,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACpE,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC7D,OAAO,CACL,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAClJ,CAAC;oBACF,gBAAgB,CACd,IAAI;wBACF,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;6BAC/C,IAAI,CAAC,OAAO,CAAC;6BACb,WAAW,EAAE,CACnB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CACL,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;oBACF,IAAI,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBAC9B,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACzD,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBACvB,gBAAgB,CAAC,aAAa,CAAC,CAAC;oBAClC,CAAC;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACnB,gBAAgB,CAAC,YAAY,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,aAAa;gBAChB,MAAM,OAAO,GAAG,SAAS;oBACvB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS;4BACzD,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzD,CAAC;oBACJ,CAAC,CAAC,IAAI,IAAI;oBACZ,CAAC,CAAC,IAAI,CAAC;gBAET,IAAI,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;oBACtC,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAC7F,CAAC;oBACF,MAAM;gBACR,CAAC;gBAED,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpE,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC7C,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnB,OAAO,CACL,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CACpL,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,OAAO,CACL,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;gBACF,MAAM;YACR,KAAK,cAAc;gBACjB,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;gBACF,MAAM;YACR,KAAK,UAAU;gBACb,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;gBACF,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAClE,CAAC;gBACF,MAAM;YACR,KAAK,iBAAiB;gBACpB,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;gBACF,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;gBACF,MAAM;YACR,KAAK,iBAAiB;gBACpB,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAC5G,CAAC;gBACF,MAAM;YACR,KAAK,kBAAkB;gBACrB,OAAO,CACL,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;gBACF,MAAM;YAER;gBACE,MAAM,WAAW,GAAU,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import {\n convertTxSteps,\n MigrationTx,\n MigrationTxSpecific,\n MigrationTxTypes,\n} from '@instantdb/platform';\nimport chalk from 'chalk';\nimport stripAnsi from 'strip-ansi';\nimport { promptOk } from './util/promptOk.js';\n\n// Hack to prevent using @instantdb/core as a dependency for cli\ntype InstantDBAttr = Parameters<typeof convertTxSteps>[1][0];\n\nconst renderLinkUpdate = (\n tx: MigrationTxTypes['update-attr'],\n possiblePrevAttrs?: InstantDBAttr[],\n): string => {\n if (tx.partialAttr['value-type'] !== 'ref') {\n throw new Error('Invalid value type for link update');\n }\n\n const oldAttr = possiblePrevAttrs\n ? possiblePrevAttrs.find((attr) => {\n return (\n attr['forward-identity'][1] === tx.identifier.namespace &&\n attr['forward-identity'][2] === tx.identifier.attrName\n );\n }) || null\n : null;\n\n let changeType: 'UPDATE' | 'RENAME' | 'RENAME REVERSE' = 'UPDATE';\n\n if (\n tx.partialAttr['forward-identity']?.attrName &&\n tx.identifier.attrName !== tx.partialAttr['forward-identity'].attrName\n ) {\n changeType = 'RENAME';\n }\n\n const details: string[] = [];\n let reverseLabel = '';\n if (oldAttr) {\n // Check for reverse rename\n if (\n tx.partialAttr['reverse-identity']?.attrName &&\n oldAttr['reverse-identity']?.[2] !==\n tx.partialAttr['reverse-identity'].attrName\n ) {\n changeType = 'RENAME REVERSE';\n }\n\n reverseLabel = ` <-> ${oldAttr['reverse-identity']![1]}.${oldAttr['reverse-identity']![2]}`;\n\n if (!oldAttr['on-delete'] && tx.partialAttr['on-delete']) {\n details.push(\n `(SET ON DELETE ${oldAttr['reverse-identity']![1]} CASCADE DELETE ${oldAttr['forward-identity'][1]})`,\n );\n }\n if (!oldAttr['on-delete-reverse'] && tx.partialAttr['on-delete-reverse']) {\n details.push(\n `(SET ON DELETE ${oldAttr['forward-identity']![1]} CASCADE DELETE ${oldAttr['reverse-identity']![1]})`,\n );\n }\n if (oldAttr['on-delete'] && !oldAttr['on-delete-reverse']) {\n details.push(\n `(REMOVE CASCADE DELETE ON ${oldAttr['reverse-identity']![1]})`,\n );\n }\n if (oldAttr['on-delete-reverse'] && !oldAttr['on-delete-reverse']) {\n details.push(\n `(REMOVE REVERSE CASCADE DELETE ON ${oldAttr['forward-identity'][1]})`,\n );\n }\n }\n\n return `${chalk.bgYellow.black(` * ${changeType} ATTR `)} ${tx.identifier.namespace}.${tx.identifier.attrName}${reverseLabel} ${details.join(' ')}`;\n};\n\nexport class CancelSchemaError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CancelSchemaError';\n }\n}\n\nconst getRelationship = (\n cardinality: 'one' | 'many',\n unique: boolean,\n): string[] => {\n if (cardinality === 'many' && !unique) return ['many', 'many'];\n if (cardinality === 'one' && unique) return ['one', 'one'];\n if (cardinality === 'many' && unique) return ['many', 'one'];\n if (cardinality === 'one' && !unique) return ['one', 'many'];\n throw new Error('Invalid relationship');\n};\n\ntype AddOrDeleteAttr =\n | MigrationTxSpecific<'add-attr'>\n | MigrationTxSpecific<'delete-attr'>;\n\ntype SuperMigrationTx =\n | MigrationTx\n | { type: 'create-namespace'; namespace: string; innerSteps: MigrationTx[] }\n | { type: 'delete-namespace'; namespace: string; innerSteps: MigrationTx[] };\n\nexport const groupSteps = (steps: MigrationTx[]): SuperMigrationTx[] => {\n const { addOrDelSteps, otherSteps } = steps.reduce(\n (acc, step) => {\n if (step.type === 'add-attr' || step.type === 'delete-attr') {\n acc.addOrDelSteps.push(step);\n } else {\n acc.otherSteps.push(step);\n }\n return acc;\n },\n { addOrDelSteps: [] as AddOrDeleteAttr[], otherSteps: [] as MigrationTx[] },\n );\n // Group by namespace\n const groupedAddOrDel = addOrDelSteps.reduce(\n (acc, step) => {\n const namespace = step.identifier.namespace;\n if (!acc[namespace]) {\n acc[namespace] = [];\n }\n acc[namespace].push(step);\n return acc;\n },\n {} as Record<string, MigrationTx[]>,\n );\n\n const collapsed: SuperMigrationTx[] = Object.values(groupedAddOrDel).flatMap(\n (namedGroup) => {\n const isWholeEntityBeingDeleted = namedGroup.some((step) => {\n if (step.type === 'delete-attr' && step.identifier.attrName === 'id') {\n return true;\n }\n });\n\n if (isWholeEntityBeingDeleted) {\n return [\n {\n type: 'delete-namespace',\n namespace: namedGroup[0].identifier.namespace,\n innerSteps: namedGroup,\n } satisfies SuperMigrationTx as SuperMigrationTx,\n ];\n }\n\n const isWholeEntityBeingCreated = namedGroup.some((step) => {\n if (step.type === 'add-attr' && step.identifier.attrName === 'id') {\n return true;\n }\n });\n\n if (isWholeEntityBeingCreated) {\n return [\n {\n type: 'create-namespace',\n namespace: namedGroup[0].identifier.namespace,\n innerSteps: namedGroup,\n } satisfies SuperMigrationTx as SuperMigrationTx,\n ];\n }\n\n return namedGroup;\n },\n );\n\n return [...collapsed, ...otherSteps];\n};\n\nexport const confirmImportantSteps = async (planSteps: SuperMigrationTx[]) => {\n for (const step of planSteps) {\n if (step.type === 'delete-namespace') {\n const ok = await promptOk({\n promptText: `Are you sure you want to delete namespace ${step.namespace}?`,\n });\n if (!ok) {\n throw new CancelSchemaError(`Deletion of namespace ${step.namespace}`);\n }\n }\n }\n};\n\nconst createDotName = (step: MigrationTx) => {\n return `${step.identifier.namespace}.${step.identifier.attrName}`;\n};\n\nconst isRename = (step: MigrationTxSpecific<'update-attr'>) => {\n return (\n step.partialAttr['forward-identity']?.attrName &&\n step.partialAttr['forward-identity']?.attrName !== step.identifier.attrName\n );\n};\n\nexport const renderSchemaPlan = (\n planSteps: SuperMigrationTx[],\n prevAttrs?: InstantDBAttr[],\n): string[] => {\n const result: string[] = [];\n\n const addLine = (line: string) => {\n result.push(line);\n };\n\n const addSecondaryLine = (line: string) => {\n addLine(` ${chalk.italic(chalk.gray(stripAnsi(line)))}`);\n };\n\n for (const step of planSteps) {\n switch (step.type) {\n case 'create-namespace':\n addLine(\n `${chalk.bgGreen.black(' + CREATE NAMESPACE ')} ${step.namespace}`,\n );\n renderSchemaPlan(step.innerSteps, prevAttrs).forEach((outputLine) =>\n addSecondaryLine(outputLine),\n );\n break;\n case 'delete-namespace':\n addLine(`${chalk.bgRed(' - DELETE NAMESPACE ')} ${step.namespace}`);\n break;\n case 'add-attr':\n if (step['value-type'] === 'ref' && step['reverse-identity']) {\n addLine(\n `${chalk.bgGreen.black(' + CREATE LINK ')} ${createDotName(step)} <-> ${step['reverse-identity'].namespace}.${step['reverse-identity'].attrName}`,\n );\n addSecondaryLine(\n ' ' +\n getRelationship(step.cardinality, step['unique?'])\n .join(' <-> ')\n .toUpperCase(),\n );\n } else {\n addLine(\n `${chalk.bgGreen.black(' + CREATE ATTR ')} ${createDotName(step)}`,\n );\n if (step['checked-data-type']) {\n addSecondaryLine(' DATA TYPE: ' + step['checked-data-type']);\n }\n if (step['unique?'] && step.identifier.attrName !== 'id') {\n addSecondaryLine(' UNIQUE');\n }\n if (!step['required?']) {\n addSecondaryLine(' OPTIONAL');\n }\n if (step['index?']) {\n addSecondaryLine(' INDEXED');\n }\n }\n break;\n case 'delete-attr':\n const oldAttr = prevAttrs\n ? prevAttrs.find((attr) => {\n return (\n attr['forward-identity'][1] === step.identifier.namespace &&\n attr['forward-identity'][2] === step.identifier.attrName\n );\n }) || null\n : null;\n\n if (oldAttr?.['value-type'] === 'ref') {\n addLine(\n `${chalk.bgRed(' - DELETE LINK ')} ${step.identifier.namespace}.${step.identifier.attrName}`,\n );\n break;\n }\n\n addLine(`${chalk.bgRed(' - DELETE ATTR ')} ${createDotName(step)}`);\n break;\n case 'update-attr':\n if (step.partialAttr['value-type'] === 'ref') {\n addLine(renderLinkUpdate(step, prevAttrs));\n } else {\n if (isRename(step)) {\n addLine(\n `${chalk.bgYellow.black(' * RENAME ATTR ')} ${createDotName(step)} -> ${step.partialAttr['forward-identity']?.['namespace']}.${step.partialAttr['forward-identity']?.['attrName']}`,\n );\n } else {\n addLine(\n `${chalk.bgYellow.black(' * UPDATE ATTR ')} ${createDotName(step)}`,\n );\n }\n }\n break;\n case 'index':\n addLine(\n `${chalk.bgBlue.black(' + CREATE INDEX ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-index':\n addLine(\n `${chalk.bgBlue.black(' - DELETE INDEX ')} ${createDotName(step)}`,\n );\n break;\n case 'required':\n addLine(\n `${chalk.bgBlue.black(' + MAKE REQUIRED ')} ${createDotName(step)}`,\n );\n break;\n case 'unique':\n addLine(\n `${chalk.bgBlue.black(' * MAKE UNIQUE ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-required':\n addLine(\n `${chalk.bgBlue.black(' - MAKE OPTIONAL ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-unique':\n addLine(\n `${chalk.bgBlue.black(' - REMOVE UNIQUE CONSTRAINT')} ${createDotName(step)}`,\n );\n break;\n case 'check-data-type':\n addLine(\n `${chalk.bgBlue.black(' + SET DATA TYPE ')} ${createDotName(step)} ${chalk.dim(step['checked-data-type'])}`,\n );\n break;\n case 'remove-data-type':\n addLine(\n `${chalk.bgBlue.black(' - REMOVE DATA TYPE CONSTRAINT ')} ${createDotName(step)}`,\n );\n break;\n\n default:\n const unknownStep: never = step;\n }\n }\n\n return result;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"renderSchemaPlan.js","sourceRoot":"","sources":["../src/renderSchemaPlan.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n convertTxSteps,\n MigrationTx,\n MigrationTxSpecific,\n MigrationTxTypes,\n} from '@instantdb/platform';\nimport chalk from 'chalk';\nimport stripAnsi from 'strip-ansi';\nimport { promptOk } from './util/promptOk.js';\n\n// Hack to prevent using @instantdb/core as a dependency for cli\ntype InstantDBAttr = Parameters<typeof convertTxSteps>[1][0];\n\nconst renderLinkUpdate = (\n tx: MigrationTxTypes['update-attr'],\n possiblePrevAttrs?: InstantDBAttr[],\n): string => {\n if (tx.partialAttr['value-type'] !== 'ref') {\n throw new Error('Invalid value type for link update');\n }\n\n const oldAttr = possiblePrevAttrs\n ? possiblePrevAttrs.find((attr) => {\n return (\n attr['forward-identity'][1] === tx.identifier.namespace &&\n attr['forward-identity'][2] === tx.identifier.attrName\n );\n }) || null\n : null;\n\n let changeType: 'UPDATE' | 'RENAME' | 'RENAME REVERSE' = 'UPDATE';\n\n if (\n tx.partialAttr['forward-identity']?.attrName &&\n tx.identifier.attrName !== tx.partialAttr['forward-identity'].attrName\n ) {\n changeType = 'RENAME';\n }\n\n const details: string[] = [];\n let reverseLabel = '';\n if (oldAttr) {\n // Check for reverse rename\n if (\n tx.partialAttr['reverse-identity']?.attrName &&\n oldAttr['reverse-identity']?.[2] !==\n tx.partialAttr['reverse-identity'].attrName\n ) {\n changeType = 'RENAME REVERSE';\n }\n\n reverseLabel = ` <-> ${oldAttr['reverse-identity']![1]}.${oldAttr['reverse-identity']![2]}`;\n\n if (!oldAttr['on-delete'] && tx.partialAttr['on-delete']) {\n details.push(\n `(SET ON DELETE ${oldAttr['reverse-identity']![1]} CASCADE DELETE ${oldAttr['forward-identity'][1]})`,\n );\n }\n if (!oldAttr['on-delete-reverse'] && tx.partialAttr['on-delete-reverse']) {\n details.push(\n `(SET ON DELETE ${oldAttr['forward-identity']![1]} CASCADE DELETE ${oldAttr['reverse-identity']![1]})`,\n );\n }\n if (oldAttr['on-delete'] && !oldAttr['on-delete-reverse']) {\n details.push(\n `(REMOVE CASCADE DELETE ON ${oldAttr['reverse-identity']![1]})`,\n );\n }\n if (oldAttr['on-delete-reverse'] && !oldAttr['on-delete-reverse']) {\n details.push(\n `(REMOVE REVERSE CASCADE DELETE ON ${oldAttr['forward-identity'][1]})`,\n );\n }\n }\n\n return `${chalk.bgYellow.black(` * ${changeType} ATTR `)} ${tx.identifier.namespace}.${tx.identifier.attrName}${reverseLabel} ${details.join(' ')}`;\n};\n\nexport class CancelSchemaError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CancelSchemaError';\n }\n}\n\nconst getRelationship = (\n cardinality: 'one' | 'many',\n unique: boolean,\n): string[] => {\n if (cardinality === 'many' && !unique) return ['many', 'many'];\n if (cardinality === 'one' && unique) return ['one', 'one'];\n if (cardinality === 'many' && unique) return ['many', 'one'];\n if (cardinality === 'one' && !unique) return ['one', 'many'];\n throw new Error('Invalid relationship');\n};\n\ntype AddOrDeleteAttr =\n | MigrationTxSpecific<'add-attr'>\n | MigrationTxSpecific<'delete-attr'>;\n\ntype SuperMigrationTx =\n | MigrationTx\n | { type: 'create-namespace'; namespace: string; innerSteps: MigrationTx[] }\n | { type: 'delete-namespace'; namespace: string; innerSteps: MigrationTx[] };\n\nexport const groupSteps = (steps: MigrationTx[]): SuperMigrationTx[] => {\n const { addOrDelSteps, otherSteps } = steps.reduce(\n (acc, step) => {\n if (step.type === 'add-attr' || step.type === 'delete-attr') {\n acc.addOrDelSteps.push(step);\n } else {\n acc.otherSteps.push(step);\n }\n return acc;\n },\n { addOrDelSteps: [] as AddOrDeleteAttr[], otherSteps: [] as MigrationTx[] },\n );\n // Group by namespace\n const groupedAddOrDel = addOrDelSteps.reduce(\n (acc, step) => {\n const namespace = step.identifier.namespace;\n if (!acc[namespace]) {\n acc[namespace] = [];\n }\n acc[namespace].push(step);\n return acc;\n },\n {} as Record<string, MigrationTx[]>,\n );\n\n const collapsed: SuperMigrationTx[] = Object.values(groupedAddOrDel).flatMap(\n (namedGroup) => {\n const isWholeEntityBeingDeleted = namedGroup.some((step) => {\n if (step.type === 'delete-attr' && step.identifier.attrName === 'id') {\n return true;\n }\n });\n\n if (isWholeEntityBeingDeleted) {\n return [\n {\n type: 'delete-namespace',\n namespace: namedGroup[0].identifier.namespace,\n innerSteps: namedGroup,\n } satisfies SuperMigrationTx as SuperMigrationTx,\n ];\n }\n\n const isWholeEntityBeingCreated = namedGroup.some((step) => {\n if (step.type === 'add-attr' && step.identifier.attrName === 'id') {\n return true;\n }\n });\n\n if (isWholeEntityBeingCreated) {\n return [\n {\n type: 'create-namespace',\n namespace: namedGroup[0].identifier.namespace,\n innerSteps: namedGroup,\n } satisfies SuperMigrationTx as SuperMigrationTx,\n ];\n }\n\n return namedGroup;\n },\n );\n\n return [...collapsed, ...otherSteps];\n};\n\nexport const confirmImportantSteps = async (planSteps: SuperMigrationTx[]) => {\n for (const step of planSteps) {\n if (step.type === 'delete-namespace') {\n const ok = await promptOk({\n promptText: `Are you sure you want to delete namespace ${step.namespace}?`,\n });\n if (!ok) {\n throw new CancelSchemaError(`Deletion of namespace ${step.namespace}`);\n }\n }\n }\n};\n\nconst createDotName = (step: MigrationTx) => {\n return `${step.identifier.namespace}.${step.identifier.attrName}`;\n};\n\nconst isRename = (step: MigrationTxSpecific<'update-attr'>) => {\n return (\n step.partialAttr['forward-identity']?.attrName &&\n step.partialAttr['forward-identity']?.attrName !== step.identifier.attrName\n );\n};\n\nexport const renderSchemaPlan = (\n planSteps: SuperMigrationTx[],\n prevAttrs?: InstantDBAttr[],\n): string[] => {\n const result: string[] = [];\n\n const addLine = (line: string) => {\n result.push(line);\n };\n\n const addSecondaryLine = (line: string) => {\n addLine(` ${chalk.italic(chalk.gray(stripAnsi(line)))}`);\n };\n\n for (const step of planSteps) {\n switch (step.type) {\n case 'create-namespace':\n addLine(\n `${chalk.bgGreen.black(' + CREATE NAMESPACE ')} ${step.namespace}`,\n );\n renderSchemaPlan(step.innerSteps, prevAttrs).forEach((outputLine) =>\n addSecondaryLine(outputLine),\n );\n break;\n case 'delete-namespace':\n addLine(`${chalk.bgRed(' - DELETE NAMESPACE ')} ${step.namespace}`);\n break;\n case 'add-attr':\n if (step['value-type'] === 'ref' && step['reverse-identity']) {\n addLine(\n `${chalk.bgGreen.black(' + CREATE LINK ')} ${createDotName(step)} <-> ${step['reverse-identity'].namespace}.${step['reverse-identity'].attrName}`,\n );\n addSecondaryLine(\n ' ' +\n getRelationship(step.cardinality, step['unique?'])\n .join(' <-> ')\n .toUpperCase(),\n );\n if (step['required?']) {\n addSecondaryLine(' REQUIRED');\n }\n } else {\n addLine(\n `${chalk.bgGreen.black(' + CREATE ATTR ')} ${createDotName(step)}`,\n );\n if (step['checked-data-type']) {\n addSecondaryLine(' DATA TYPE: ' + step['checked-data-type']);\n }\n if (step['unique?'] && step.identifier.attrName !== 'id') {\n addSecondaryLine(' UNIQUE');\n }\n if (!step['required?']) {\n addSecondaryLine(' OPTIONAL');\n }\n if (step['index?']) {\n addSecondaryLine(' INDEXED');\n }\n }\n break;\n case 'delete-attr':\n const oldAttr = prevAttrs\n ? prevAttrs.find((attr) => {\n return (\n attr['forward-identity'][1] === step.identifier.namespace &&\n attr['forward-identity'][2] === step.identifier.attrName\n );\n }) || null\n : null;\n\n if (oldAttr?.['value-type'] === 'ref') {\n addLine(\n `${chalk.bgRed(' - DELETE LINK ')} ${step.identifier.namespace}.${step.identifier.attrName}`,\n );\n break;\n }\n\n addLine(`${chalk.bgRed(' - DELETE ATTR ')} ${createDotName(step)}`);\n break;\n case 'update-attr':\n if (step.partialAttr['value-type'] === 'ref') {\n addLine(renderLinkUpdate(step, prevAttrs));\n } else {\n if (isRename(step)) {\n addLine(\n `${chalk.bgYellow.black(' * RENAME ATTR ')} ${createDotName(step)} -> ${step.partialAttr['forward-identity']?.['namespace']}.${step.partialAttr['forward-identity']?.['attrName']}`,\n );\n } else {\n addLine(\n `${chalk.bgYellow.black(' * UPDATE ATTR ')} ${createDotName(step)}`,\n );\n }\n }\n break;\n case 'index':\n addLine(\n `${chalk.bgBlue.black(' + CREATE INDEX ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-index':\n addLine(\n `${chalk.bgBlue.black(' - DELETE INDEX ')} ${createDotName(step)}`,\n );\n break;\n case 'required':\n addLine(\n `${chalk.bgBlue.black(' + MAKE REQUIRED ')} ${createDotName(step)}`,\n );\n break;\n case 'unique':\n addLine(\n `${chalk.bgBlue.black(' * MAKE UNIQUE ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-required':\n addLine(\n `${chalk.bgBlue.black(' - MAKE OPTIONAL ')} ${createDotName(step)}`,\n );\n break;\n case 'remove-unique':\n addLine(\n `${chalk.bgBlue.black(' - REMOVE UNIQUE CONSTRAINT')} ${createDotName(step)}`,\n );\n break;\n case 'check-data-type':\n addLine(\n `${chalk.bgBlue.black(' + SET DATA TYPE ')} ${createDotName(step)} ${chalk.dim(step['checked-data-type'])}`,\n );\n break;\n case 'remove-data-type':\n addLine(\n `${chalk.bgBlue.black(' - REMOVE DATA TYPE CONSTRAINT ')} ${createDotName(step)}`,\n );\n break;\n\n default:\n const unknownStep: never = step;\n }\n }\n\n return result;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instant-cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.22.
|
|
4
|
+
"version": "0.22.173",
|
|
5
5
|
"description": "Instant's CLI",
|
|
6
6
|
"homepage": "https://github.com/instantdb/instant/tree/main/client/packages/cli",
|
|
7
7
|
"repository": {
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"strip-ansi": "^7.1.2",
|
|
43
43
|
"terminal-link": "^3.0.0",
|
|
44
44
|
"unconfig": "^0.5.5",
|
|
45
|
-
"@instantdb/
|
|
46
|
-
"@instantdb/
|
|
47
|
-
"@instantdb/version": "0.22.
|
|
45
|
+
"@instantdb/platform": "0.22.173",
|
|
46
|
+
"@instantdb/core": "0.22.173",
|
|
47
|
+
"@instantdb/version": "0.22.173"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@babel/core": "^7.17.9",
|
package/src/renderSchemaPlan.ts
CHANGED