@sealcode/sealgen 0.8.52 → 0.9.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 (95) hide show
  1. package/@types/forms/controls/array.d.ts +1 -1
  2. package/@types/forms/controls/checkbox-group.d.ts +1 -1
  3. package/@types/forms/controls/collapsible-field-group.d.ts +1 -1
  4. package/@types/forms/controls/derived-frame.d.ts +1 -0
  5. package/@types/forms/controls/dropdown.d.ts +2 -2
  6. package/@types/forms/controls/form-field-control.d.ts +1 -1
  7. package/@types/forms/controls/html.d.ts +1 -1
  8. package/@types/forms/controls/multiple-files.d.ts +1 -1
  9. package/@types/forms/controls/number.d.ts +1 -1
  10. package/@types/forms/controls/simple-input.d.ts +1 -1
  11. package/@types/forms/controls/tickable.d.ts +1 -1
  12. package/@types/forms/fields/field.d.ts +6 -6
  13. package/@types/forms/fields/file.d.ts +1 -1
  14. package/@types/forms/form.d.ts +7 -7
  15. package/@types/index.d.ts +1 -0
  16. package/@types/page/list.d.ts +13 -17
  17. package/@types/page/mountable-with-fields.d.ts +2 -2
  18. package/@types/page/props-parser.d.ts +1 -1
  19. package/@types/page/sealious-list.d.ts +18 -0
  20. package/@types/utils/utils.d.ts +3 -3
  21. package/lib/add-collection.js +7 -7
  22. package/lib/add-route.js +8 -8
  23. package/lib/add-route.test.js +4 -4
  24. package/lib/build.js +44 -11
  25. package/lib/components/components.js +5 -1
  26. package/lib/components/tabs.js +2 -2
  27. package/lib/components/toggle-modal.js +2 -2
  28. package/lib/find-scss-includes.js +3 -3
  29. package/lib/forms/controls/array.js +5 -5
  30. package/lib/forms/controls/big-radio-group.js +2 -2
  31. package/lib/forms/controls/checkboxed-list-input.js +3 -3
  32. package/lib/forms/controls/collapsible-field-group.js +1 -1
  33. package/lib/forms/controls/controls.js +5 -1
  34. package/lib/forms/controls/derived-frame.js +3 -3
  35. package/lib/forms/controls/derived.js +2 -2
  36. package/lib/forms/controls/dropdown.js +2 -2
  37. package/lib/forms/controls/editable-collection-subset.js +3 -3
  38. package/lib/forms/controls/field-group.js +1 -1
  39. package/lib/forms/controls/file.js +1 -1
  40. package/lib/forms/controls/hidden-input.js +1 -1
  41. package/lib/forms/controls/multiple-files.js +5 -5
  42. package/lib/forms/controls/multiple-photos.js +1 -1
  43. package/lib/forms/controls/photo.js +1 -1
  44. package/lib/forms/controls/simple-input.js +2 -2
  45. package/lib/forms/controls/tickable.js +3 -3
  46. package/lib/forms/fields/boolean.js +3 -3
  47. package/lib/forms/fields/checkboxed-list.js +3 -3
  48. package/lib/forms/fields/enum-multiple.js +3 -3
  49. package/lib/forms/fields/enum.js +2 -2
  50. package/lib/forms/fields/field.js +6 -2
  51. package/lib/forms/fields/file.js +6 -6
  52. package/lib/forms/fields/number.js +5 -5
  53. package/lib/forms/fields/pick-from-list.js +1 -1
  54. package/lib/forms/fields/regexp.js +2 -2
  55. package/lib/forms/fields/simple-form-field.js +4 -4
  56. package/lib/forms/form.js +9 -9
  57. package/lib/forms/form.test.js +12 -12
  58. package/lib/forms/multiform.js +5 -5
  59. package/lib/forms/multiform.test.js +26 -26
  60. package/lib/generate-collections.js +9 -5
  61. package/lib/generate-routes.js +13 -9
  62. package/lib/index.js +6 -1
  63. package/lib/make-env.js +1 -1
  64. package/lib/make-hidden-inputs.js +3 -3
  65. package/lib/page/list.js +85 -65
  66. package/lib/page/mountable-with-fields.js +2 -2
  67. package/lib/page/page.js +1 -1
  68. package/lib/page/sealious-list.js +53 -0
  69. package/lib/page/stateful-page.js +9 -9
  70. package/lib/templates/form.js +1 -1
  71. package/lib/templates/list.js +10 -9
  72. package/lib/templates/multiform.js +1 -1
  73. package/lib/templates/page.js +1 -1
  74. package/lib/templates/route-test.js +1 -1
  75. package/lib/templates/stateful-page.js +1 -1
  76. package/lib/test_utils/locator_is_visible.js +1 -1
  77. package/lib/utils/exec.js +1 -1
  78. package/lib/utils/import-path.js +2 -2
  79. package/lib/utils/input-wrapper.js +1 -1
  80. package/lib/utils/list-collections.js +2 -2
  81. package/lib/utils/prettier.js +6 -2
  82. package/lib/utils/question.js +1 -1
  83. package/lib/utils/render-attributes.js +1 -1
  84. package/lib/utils/utils.js +5 -1
  85. package/lib/utils/walk.js +1 -1
  86. package/package.json +2 -2
  87. package/src/add-route.ts +1 -1
  88. package/src/build.ts +56 -1
  89. package/src/generate-collections.ts +1 -1
  90. package/src/generate-routes.ts +1 -1
  91. package/src/index.ts +1 -0
  92. package/src/page/list.ts +106 -96
  93. package/src/page/sealious-list.ts +76 -0
  94. package/src/templates/list.ts +8 -7
  95. package/src/utils/import-path.ts +1 -1
@@ -40,7 +40,7 @@ exports.form_factory = form_factory;
40
40
  describe("form test", () => {
41
41
  let page;
42
42
  before(async () => {
43
- const browser = await browser_creator_1.getBrowser();
43
+ const browser = await (0, browser_creator_1.getBrowser)();
44
44
  const context = await browser.newContext();
45
45
  page = await context.newPage();
46
46
  });
@@ -49,7 +49,7 @@ describe("form test", () => {
49
49
  before(async () => {
50
50
  const app = new koa_1.default();
51
51
  const router = new router_1.default();
52
- mount_1.mount(router, "/", form_factory(), true);
52
+ (0, mount_1.mount)(router, "/", form_factory(), true);
53
53
  app.use(router.routes()).use(router.allowedMethods());
54
54
  server = app.listen(8080);
55
55
  await page.goto("http://localhost:8080");
@@ -59,7 +59,7 @@ describe("form test", () => {
59
59
  });
60
60
  it("does not allow to submit an empty form when there's a required field", async () => {
61
61
  await page.getByRole("button", { name: "Submit", exact: true }).click();
62
- await utils_1.assertThrowsAsync(async () => {
62
+ await (0, utils_1.assertThrowsAsync)(async () => {
63
63
  return page.getByText("Done").click({ timeout: 500 });
64
64
  });
65
65
  });
@@ -92,7 +92,7 @@ describe("form test", () => {
92
92
  it("allows visit when configured when canAccess returns true", async () => {
93
93
  const app = new koa_1.default();
94
94
  const router = new router_1.default();
95
- mount_1.mount(router, "/", form_factory(async (ctx) => {
95
+ (0, mount_1.mount)(router, "/", form_factory(async (ctx) => {
96
96
  return { canAccess: true, message: "" };
97
97
  }), true);
98
98
  app.use(router.routes()).use(router.allowedMethods());
@@ -106,7 +106,7 @@ describe("form test", () => {
106
106
  const app = new koa_1.default();
107
107
  const router = new router_1.default();
108
108
  before(async () => {
109
- mount_1.mount(router, "/", form_factory(async (ctx) => {
109
+ (0, mount_1.mount)(router, "/", form_factory(async (ctx) => {
110
110
  return { canAccess: false, message: "" };
111
111
  }), true);
112
112
  app.use(router.routes()).use(router.allowedMethods());
@@ -135,7 +135,7 @@ describe("form test", () => {
135
135
  it("passes the context to canAccess (false case)", async () => {
136
136
  const app = new koa_1.default();
137
137
  const router = new router_1.default();
138
- mount_1.mount(router, "/", form_factory(async (ctx) => {
138
+ (0, mount_1.mount)(router, "/", form_factory(async (ctx) => {
139
139
  return ctx.$context && ctx.$context.user_id
140
140
  ? { canAccess: true, message: "" }
141
141
  : { canAccess: false, message: "" };
@@ -156,7 +156,7 @@ describe("form test", () => {
156
156
  };
157
157
  await next();
158
158
  });
159
- mount_1.mount(router, "/", form_factory(async (ctx) => {
159
+ (0, mount_1.mount)(router, "/", form_factory(async (ctx) => {
160
160
  return ctx.$context && ctx.$context.user_id
161
161
  ? { canAccess: true, message: "" }
162
162
  : { canAccess: false, message: "" };
@@ -175,7 +175,7 @@ describe("form test", () => {
175
175
  before(async () => {
176
176
  const app = new koa_1.default();
177
177
  const router = new router_1.default();
178
- mount_1.mount(router, "/", new (class extends index_1.Form {
178
+ (0, mount_1.mount)(router, "/", new (class extends index_1.Form {
179
179
  constructor() {
180
180
  super(...arguments);
181
181
  this.fields = fields;
@@ -210,14 +210,14 @@ describe("form test", () => {
210
210
  await page.getByPlaceholder("password").click();
211
211
  await page.getByPlaceholder("password").fill("incorrect");
212
212
  await page.getByRole("button", { name: "Submit" }).click();
213
- if (!(await locator_is_visible_1.locator_is_visible(page.getByText("Incorrect input"))))
213
+ if (!(await (0, locator_is_visible_1.locator_is_visible)(page.getByText("Incorrect input"))))
214
214
  throw new Error("validation message doens't show up when input is incorrect");
215
215
  });
216
216
  it("doesn't show when correct input is given", async () => {
217
217
  await page.getByPlaceholder("password").click();
218
218
  await page.getByPlaceholder("password").fill("correct");
219
219
  await page.getByRole("button", { name: "Submit" }).click();
220
- await utils_1.assertThrowsAsync(async () => {
220
+ await (0, utils_1.assertThrowsAsync)(async () => {
221
221
  return page.getByText("Incorrect input").click({ timeout: 500 });
222
222
  });
223
223
  });
@@ -230,7 +230,7 @@ describe("form test", () => {
230
230
  const fields = {
231
231
  text: new index_1.Fields.EmailField(true),
232
232
  };
233
- mount_1.mount(router, "/", new (class extends index_1.Form {
233
+ (0, mount_1.mount)(router, "/", new (class extends index_1.Form {
234
234
  constructor() {
235
235
  super(...arguments);
236
236
  this.fields = fields;
@@ -263,7 +263,7 @@ describe("form test", () => {
263
263
  await page.getByPlaceholder("text").click();
264
264
  await page.getByPlaceholder("text").fill("yes@an.email");
265
265
  await page.getByRole("button", { name: "Submit" }).click();
266
- utils_1.assertThrowsAsync(async () => {
266
+ (0, utils_1.assertThrowsAsync)(async () => {
267
267
  return page
268
268
  .getByText("Please enter a proper email address")
269
269
  .click({ timeout: 500 });
@@ -14,8 +14,8 @@ class Multiform extends mountable_with_fields_1.MountableWithFields {
14
14
  init() {
15
15
  super.init();
16
16
  for (const [key, form] of Object.entries(this.forms)) {
17
- if (key !== sanitize_1.attribute(key)) {
18
- throw new Error(`Form name "${key}" is not url-safe. Try: "${sanitize_1.attribute(key)}"`);
17
+ if (key !== (0, sanitize_1.attribute)(key)) {
18
+ throw new Error(`Form name "${key}" is not url-safe. Try: "${(0, sanitize_1.attribute)(key)}"`);
19
19
  }
20
20
  form.makeOpenFormTag = () => `<div>`;
21
21
  form.makeCloseFormTag = () => `</div>`;
@@ -53,7 +53,7 @@ class Multiform extends mountable_with_fields_1.MountableWithFields {
53
53
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
54
  getSubformsToRender(ctx) {
55
55
  const requested_frame = ctx.headers["turbo-frame"];
56
- if (!ts_predicates_1.is(requested_frame, ts_predicates_1.predicates.or(ts_predicates_1.predicates.undefined, ts_predicates_1.predicates.string))) {
56
+ if (!(0, ts_predicates_1.is)(requested_frame, ts_predicates_1.predicates.or(ts_predicates_1.predicates.undefined, ts_predicates_1.predicates.string))) {
57
57
  throw new Error("Wrong turbo-frame header value type");
58
58
  }
59
59
  const forms_to_render = requested_frame && this.forms[requested_frame]
@@ -82,7 +82,7 @@ class Multiform extends mountable_with_fields_1.MountableWithFields {
82
82
  return result;
83
83
  }
84
84
  async render(ctx, messages, prerenderedForms = {}, show_field_errors) {
85
- return tempstream_1.tempstream /* HTML */ `${this.renderMessages(ctx, {
85
+ return (0, tempstream_1.tempstream /* HTML */) `${this.renderMessages(ctx, {
86
86
  raw_values: {},
87
87
  messages,
88
88
  })}
@@ -96,7 +96,7 @@ class Multiform extends mountable_with_fields_1.MountableWithFields {
96
96
  ></form>
97
97
  ${this.getSubformsToRender(ctx).map(([form_name]) => {
98
98
  const frame_form_id = this.name + "_" + form_name + "_frame_form";
99
- return tempstream_1.tempstream /* HTML */ `<turbo-frame
99
+ return (0, tempstream_1.tempstream /* HTML */) `<turbo-frame
100
100
  id="${form_name}"
101
101
  contains-subform
102
102
  subform-id="${frame_form_id}"
@@ -48,12 +48,12 @@ function multiform_factory(canAccessFun1, canAccessFun2) {
48
48
  super(...arguments);
49
49
  this.name = "multiform_test";
50
50
  this.forms = {
51
- form1: form_test_1.form_factory(canAccessFun1),
52
- form2: form_test_1.form_factory(canAccessFun2),
51
+ form1: (0, form_test_1.form_factory)(canAccessFun1),
52
+ form2: (0, form_test_1.form_factory)(canAccessFun2),
53
53
  };
54
54
  }
55
55
  async render(...args) {
56
- return tempstream_1.tempstream /* HTML */ `<!DOCTYPE html>
56
+ return (0, tempstream_1.tempstream /* HTML */) `<!DOCTYPE html>
57
57
  <html>
58
58
  <head>
59
59
  <title>Multiform Test - Sealgen</title>
@@ -71,7 +71,7 @@ function multiform_factory(canAccessFun1, canAccessFun2) {
71
71
  async function tests(js_enabled) {
72
72
  let page;
73
73
  before(async () => {
74
- const browser = await browser_creator_1.getBrowser();
74
+ const browser = await (0, browser_creator_1.getBrowser)();
75
75
  const context = await browser.newContext({
76
76
  javaScriptEnabled: js_enabled,
77
77
  });
@@ -85,18 +85,18 @@ async function tests(js_enabled) {
85
85
  });
86
86
  it("checking whether only one submit handler is run", async () => {
87
87
  await page.getByText("Form1 done!").click();
88
- await utils_1.assertThrowsAsync(async () => {
88
+ await (0, utils_1.assertThrowsAsync)(async () => {
89
89
  return page.getByText("Form2 done!").click({ timeout: 500 });
90
90
  });
91
91
  });
92
92
  it("checking whether the input in the not submitted form prevails", async () => {
93
- await test_1.expect(page.getByLabel("name")).toHaveValue("sample2");
93
+ await (0, test_1.expect)(page.getByLabel("name")).toHaveValue("sample2");
94
94
  });
95
95
  }
96
96
  async function general_form_validation_e2e_tests(js_enabled) {
97
97
  let browser;
98
98
  let page;
99
- browser = await browser_creator_1.getBrowser();
99
+ browser = await (0, browser_creator_1.getBrowser)();
100
100
  const context = await browser.newContext({
101
101
  javaScriptEnabled: js_enabled,
102
102
  });
@@ -107,7 +107,7 @@ async function general_form_validation_e2e_tests(js_enabled) {
107
107
  await page.getByPlaceholder("password").click();
108
108
  await page.getByPlaceholder("password").fill("test");
109
109
  await page.locator("#multiform_test_form2_submit").click();
110
- utils_1.assertThrowsAsync(async () => {
110
+ (0, utils_1.assertThrowsAsync)(async () => {
111
111
  page.getByText("Incorrect input").click({ timeout: 500 });
112
112
  });
113
113
  }
@@ -115,7 +115,7 @@ async function individual_field_validation_e2e_tests(javaScriptEnabled) {
115
115
  let browser;
116
116
  let page;
117
117
  before(async () => {
118
- browser = await browser_creator_1.getBrowser();
118
+ browser = await (0, browser_creator_1.getBrowser)();
119
119
  const context = await browser.newContext({
120
120
  javaScriptEnabled,
121
121
  });
@@ -132,7 +132,7 @@ async function individual_field_validation_e2e_tests(javaScriptEnabled) {
132
132
  await page.getByPlaceholder("text").click();
133
133
  await page.getByPlaceholder("text").fill("yes@an.email");
134
134
  await page.locator("#multiform_test_form1_submit").click();
135
- utils_1.assertThrowsAsync(async () => {
135
+ (0, utils_1.assertThrowsAsync)(async () => {
136
136
  return page.getByText("Please enter a proper email address").click({ timeout: 500 });
137
137
  });
138
138
  });
@@ -143,14 +143,14 @@ describe("multiform test", () => {
143
143
  before(async () => {
144
144
  const app = new koa_1.default();
145
145
  const router = new router_1.default();
146
- mount_1.mount(router, "/", new (class extends multiform_1.Multiform {
146
+ (0, mount_1.mount)(router, "/", new (class extends multiform_1.Multiform {
147
147
  constructor() {
148
148
  super(...arguments);
149
149
  this.name = "multiform_test";
150
150
  this.forms = { form1, form2 };
151
151
  }
152
152
  async render(ctx, messages, prerenderedForms, show_field_errors = true) {
153
- return tempstream_1.tempstream /* HTML */ `<!DOCTYPE html>
153
+ return (0, tempstream_1.tempstream /* HTML */) `<!DOCTYPE html>
154
154
  <html>
155
155
  <head>
156
156
  <title>Multiform Test - Sealgen</title>
@@ -180,14 +180,14 @@ describe("multiform test", () => {
180
180
  before(async () => {
181
181
  const app = new koa_1.default();
182
182
  const router = new router_1.default();
183
- mount_1.mount(router, "/", multiform_factory(async (ctx) => {
183
+ (0, mount_1.mount)(router, "/", multiform_factory(async (ctx) => {
184
184
  return { canAccess: true, message: "" };
185
185
  }, async (ctx) => {
186
186
  return { canAccess: true, message: "" };
187
187
  }), true);
188
188
  app.use(router.routes()).use(router.allowedMethods());
189
189
  server = app.listen(8080);
190
- const browser = await browser_creator_1.getBrowser();
190
+ const browser = await (0, browser_creator_1.getBrowser)();
191
191
  const context = await browser.newContext();
192
192
  page = await context.newPage();
193
193
  });
@@ -218,14 +218,14 @@ describe("multiform test", () => {
218
218
  before(async () => {
219
219
  const app = new koa_1.default();
220
220
  const router = new router_1.default();
221
- mount_1.mount(router, "/", multiform_factory(async (ctx) => {
221
+ (0, mount_1.mount)(router, "/", multiform_factory(async (ctx) => {
222
222
  return { canAccess: false, message: "" };
223
223
  }, async (ctx) => {
224
224
  return { canAccess: false, message: "" };
225
225
  }), true);
226
226
  app.use(router.routes()).use(router.allowedMethods());
227
227
  server = app.listen(8080);
228
- const browser = await browser_creator_1.getBrowser();
228
+ const browser = await (0, browser_creator_1.getBrowser)();
229
229
  const context = await browser.newContext();
230
230
  page = await context.newPage();
231
231
  });
@@ -234,7 +234,7 @@ describe("multiform test", () => {
234
234
  });
235
235
  it("check wether forms didnt render", async () => {
236
236
  await page.goto("http://localhost:8080");
237
- await utils_1.assertThrowsAsync(async () => {
237
+ await (0, utils_1.assertThrowsAsync)(async () => {
238
238
  return page
239
239
  .locator("#form1")
240
240
  .getByText("This is a test:")
@@ -257,14 +257,14 @@ describe("multiform test", () => {
257
257
  before(async () => {
258
258
  const app = new koa_1.default();
259
259
  const router = new router_1.default();
260
- mount_1.mount(router, "/", multiform_factory(async (ctx) => {
260
+ (0, mount_1.mount)(router, "/", multiform_factory(async (ctx) => {
261
261
  return { canAccess: true, message: "" };
262
262
  }, async (ctx) => {
263
263
  return { canAccess: false, message: "" };
264
264
  }), true);
265
265
  app.use(router.routes()).use(router.allowedMethods());
266
266
  server = app.listen(8080);
267
- const browser = await browser_creator_1.getBrowser();
267
+ const browser = await (0, browser_creator_1.getBrowser)();
268
268
  const context = await browser.newContext({});
269
269
  page = await context.newPage();
270
270
  });
@@ -288,7 +288,7 @@ describe("multiform test", () => {
288
288
  });
289
289
  it("check wether form2 does not render", async () => {
290
290
  await page.goto("http://localhost:8080");
291
- await utils_1.assertThrowsAsync(async () => {
291
+ await (0, utils_1.assertThrowsAsync)(async () => {
292
292
  return page
293
293
  .locator("#form2")
294
294
  .getByText("This is a test:")
@@ -314,7 +314,7 @@ describe("multiform test", () => {
314
314
  before(async () => {
315
315
  const app = new koa_1.default();
316
316
  const router = new router_1.default();
317
- mount_1.mount(router, "/", new (class extends multiform_1.Multiform {
317
+ (0, mount_1.mount)(router, "/", new (class extends multiform_1.Multiform {
318
318
  constructor() {
319
319
  super(...arguments);
320
320
  this.name = "multiform_test";
@@ -343,11 +343,11 @@ describe("multiform test", () => {
343
343
  return { valid: true, error: "" };
344
344
  }
345
345
  })(),
346
- form2: form_test_1.form_factory(),
346
+ form2: (0, form_test_1.form_factory)(),
347
347
  };
348
348
  }
349
349
  async render(...args) {
350
- return tempstream_1.tempstream /* HTML */ `<!DOCTYPE html>
350
+ return (0, tempstream_1.tempstream /* HTML */) `<!DOCTYPE html>
351
351
  <html>
352
352
  <head>
353
353
  <title>Multiform Test - Sealgen</title>
@@ -378,7 +378,7 @@ describe("multiform test", () => {
378
378
  const fields = {
379
379
  text: new __1.Fields.EmailField(true),
380
380
  };
381
- mount_1.mount(router, "/", new (class extends multiform_1.Multiform {
381
+ (0, mount_1.mount)(router, "/", new (class extends multiform_1.Multiform {
382
382
  constructor() {
383
383
  super(...arguments);
384
384
  this.name = "multiform_test";
@@ -399,11 +399,11 @@ describe("multiform test", () => {
399
399
  return;
400
400
  }
401
401
  })(),
402
- form2: form_test_1.form_factory(),
402
+ form2: (0, form_test_1.form_factory)(),
403
403
  };
404
404
  }
405
405
  async render(...args) {
406
- return tempstream_1.tempstream /* HTML */ `<!DOCTYPE html>
406
+ return (0, tempstream_1.tempstream /* HTML */) `<!DOCTYPE html>
407
407
  <html>
408
408
  <head>
409
409
  <title>Multiform Test - Sealgen</title>
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -28,14 +32,14 @@ const prettier = __importStar(require("prettier"));
28
32
  const fs_1 = require("fs");
29
33
  const ts_predicates_1 = require("@sealcode/ts-predicates");
30
34
  const prettier_1 = require("./utils/prettier");
31
- const target_locreq = locreq_1.default(process.cwd());
35
+ const target_locreq = (0, locreq_1.default)(process.cwd());
32
36
  async function extractCollectionClassname(full_file_path) {
33
37
  const file_content = await fs_1.promises.readFile(full_file_path, "utf-8");
34
38
  const result = /export default class (\w+)/.exec(file_content);
35
39
  if (result === null) {
36
40
  throw new Error("Missing 'export default class' statement?");
37
41
  }
38
- return ts_predicates_1.assertType(result[1], ts_predicates_1.predicates.string, `Missing export default class in '${full_file_path}'?`);
42
+ return (0, ts_predicates_1.assertType)(result[1], ts_predicates_1.predicates.string, `Missing export default class in '${full_file_path}'?`);
39
43
  }
40
44
  async function generateCollections() {
41
45
  const collections_dir = target_locreq.resolve("src/back/collections");
@@ -57,7 +61,7 @@ async function generateCollections() {
57
61
  import { App } from "sealious";
58
62
 
59
63
  ${file_data
60
- .map(({ class_name, urlname }) => `import _${class_name} from "./${urlname}";`)
64
+ .map(({ class_name, urlname }) => `import _${class_name} from "./${urlname}.js";`)
61
65
  .join("\n")}
62
66
 
63
67
  ${file_data
@@ -70,7 +74,7 @@ ${file_data
70
74
  .map(({ class_name, urlname }) => ` "${urlname}": ${class_name},`)
71
75
  .join("\n")}
72
76
  };`;
73
- await fs_1.promises.writeFile(target_locreq.resolve("src/back/collections/collections.ts"), prettier.format(content, await prettier_1.getPrettierConfig()));
77
+ await fs_1.promises.writeFile(target_locreq.resolve("src/back/collections/collections.ts"), prettier.format(content, await (0, prettier_1.getPrettierConfig)()));
74
78
  // eslint-disable-next-line no-console
75
79
  console.log("Successfuly generated new src/back/collections/collections.ts file");
76
80
  }
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -32,14 +36,14 @@ const import_path_1 = require("./utils/import-path");
32
36
  const ts_predicates_1 = require("@sealcode/ts-predicates");
33
37
  const escape_url_params_1 = require("./utils/escape-url-params");
34
38
  const prettier_1 = require("./utils/prettier");
35
- const target_locreq = locreq_1.default(process.cwd());
39
+ const target_locreq = (0, locreq_1.default)(process.cwd());
36
40
  async function extractActionName(full_file_path) {
37
41
  const file_content = await fs_1.promises.readFile(full_file_path, "utf-8");
38
42
  const result = /export const actionName = "(\w+)"/.exec(file_content);
39
43
  if (result === null) {
40
44
  throw new Error("Missing 'export const actionName' statement?");
41
45
  }
42
- return ts_predicates_1.assertType(result[1], ts_predicates_1.predicates.string, "Missing export default class?");
46
+ return (0, ts_predicates_1.assertType)(result[1], ts_predicates_1.predicates.string, "Missing export default class?");
43
47
  }
44
48
  function generateURL(actionName, url) {
45
49
  const parts = url.split("/");
@@ -60,7 +64,7 @@ function generateURL(actionName, url) {
60
64
  ${actionName}URL.rawURL = "${url}";`;
61
65
  }
62
66
  async function generateRoutes() {
63
- const files = await Promise.all((await walk_1.walkDir(target_locreq.resolve("src/back/routes")))
67
+ const files = await Promise.all((await (0, walk_1.walkDir)(target_locreq.resolve("src/back/routes")))
64
68
  .filter((f) => f.endsWith(".page.ts") ||
65
69
  f.endsWith(".form.ts") ||
66
70
  f.endsWith(".multiform.ts") ||
@@ -71,8 +75,8 @@ async function generateRoutes() {
71
75
  .map(async (fullpath) => ({
72
76
  fullpath,
73
77
  actionName: await extractActionName(fullpath),
74
- url: escape_url_params_1.unescape_url_params("/" +
75
- path_1.relative(target_locreq.resolve("src/back/routes"), fullpath).replace(/\..+/, "") +
78
+ url: (0, escape_url_params_1.unescape_url_params)("/" +
79
+ (0, path_1.relative)(target_locreq.resolve("src/back/routes"), fullpath).replace(/\..+/, "") +
76
80
  "/" // trailing slash is important here, as it enables to use the entire path while building relative URLs. For example, while visiting /users/123, the path ./add-photo leads to /users/add-photo. While visiting /users/123/ (note the trailing slash), the path ./add-photo leads to /users/123/add-photo
77
81
  ),
78
82
  })));
@@ -80,10 +84,10 @@ async function generateRoutes() {
80
84
 
81
85
  import Router from "@koa/router";
82
86
  import { mount } from "@sealcode/sealgen";
83
- import * as URLs from "./urls"
87
+ import * as URLs from "./urls.js"
84
88
 
85
89
  ${files
86
- .map(({ actionName, fullpath }) => `import { default as ${actionName} } from "${import_path_1.importPath(target_locreq.resolve("src/back/routes/routes.ts"), fullpath)}";`)
90
+ .map(({ actionName, fullpath }) => `import { default as ${actionName} } from "${(0, import_path_1.importPath)(target_locreq.resolve("src/back/routes/routes.ts"), fullpath)}";`)
87
91
  .join("\n")}
88
92
 
89
93
  export default function mountAutoRoutes(router: Router) {
@@ -96,7 +100,7 @@ ${files
96
100
  .map(({ actionName, url }) => generateURL(actionName, url))
97
101
  .join("\n")}
98
102
  `;
99
- const prettier_config = await prettier_1.getPrettierConfig();
103
+ const prettier_config = await (0, prettier_1.getPrettierConfig)();
100
104
  await fs_1.promises.writeFile(target_locreq.resolve("src/back/routes/routes.ts"), prettier.format(routes_content, prettier_config));
101
105
  await fs_1.promises.writeFile(target_locreq.resolve("src/back/routes/urls.ts"), prettier.format(urls_content, prettier_config));
102
106
  // eslint-disable-next-line no-console
package/lib/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -32,6 +36,7 @@ __exportStar(require("./forms/form"), exports);
32
36
  __exportStar(require("./page/props-parser"), exports);
33
37
  __exportStar(require("./utils/utils"), exports);
34
38
  __exportStar(require("./page/list"), exports);
39
+ __exportStar(require("./page/sealious-list"), exports);
35
40
  __exportStar(require("./utils/translate"), exports);
36
41
  exports.sanitize = __importStar(require("./sanitize"));
37
42
  __exportStar(require("./forms/multiform"), exports);
package/lib/make-env.js CHANGED
@@ -7,7 +7,7 @@ exports.makeEnv = void 0;
7
7
  const os_1 = __importDefault(require("os"));
8
8
  const fs_1 = require("fs");
9
9
  const locreq_1 = __importDefault(require("locreq"));
10
- const target_locreq = locreq_1.default(process.cwd());
10
+ const target_locreq = (0, locreq_1.default)(process.cwd());
11
11
  async function makeEnv() {
12
12
  const { uid, gid } = os_1.default.userInfo();
13
13
  const content = `USER_ID=${uid}
@@ -4,14 +4,14 @@ exports.makeHiddenInputs = void 0;
4
4
  const tempstream_1 = require("tempstream");
5
5
  const sanitize_1 = require("./sanitize");
6
6
  function makeHiddenInputs(ctx, fields, values, fields_to_skip) {
7
- return tempstream_1.tempstream `${Object.entries(fields)
7
+ return (0, tempstream_1.tempstream) `${Object.entries(fields)
8
8
  .filter(([key]) => !fields_to_skip.includes(key))
9
- .map(([key, field]) => tempstream_1.tempstream /* HTML */ `<input
9
+ .map(([key, field]) => (0, tempstream_1.tempstream /* HTML */) `<input
10
10
  type="hidden"
11
11
  name="${key}"
12
12
  value="${field
13
13
  .getValue(ctx, values)
14
- .then((r) => sanitize_1.attribute(JSON.stringify(r.raw) || ""))}"
14
+ .then((r) => (0, sanitize_1.attribute)(JSON.stringify(r.raw) || ""))}"
15
15
  />`)}`;
16
16
  }
17
17
  exports.makeHiddenInputs = makeHiddenInputs;